Added puml diagram

More execution strategy ideas

Signed-off-by: Greg Wilkins <gregw@webtide.com>
This commit is contained in:
Greg Wilkins 2021-09-13 11:22:20 +10:00 committed by Simone Bordet
parent ab16e625e0
commit feb3a24f06
1 changed files with 27 additions and 10 deletions

View File

@ -84,6 +84,13 @@ loop as packets received
loop while task==null loop while task==null
alt if instruction available alt if instruction available
QuicSession -> Decoder : takeInstruction QuicSession -> Decoder : takeInstruction
note right
I'm not sure how we ensure a taken instruction
is always written? Do we queue them or only take them
when writable? If we queue, then perhaps they are just
queued during production rather than returned as produced
tasks
end note
return task return task
else if metadata available else if metadata available
QuicStream -> Decoder : takeMetaData QuicStream -> Decoder : takeMetaData
@ -98,19 +105,29 @@ loop as packets received
end end
end end
else normal stream else normal stream
QuicStream -> QuicSession : fill loop task==null
QuicSession -> Quiche : drainClearText\nForStream alt if instruction available
return bytes filled QuicStream -> Decoder : takeInstruction
return bytes filled return task
QuicStream -> QuicStream : parse else if metadata available
alt if header frame
QuicStream -> Decoder : decode
return
QuicStream -> Decoder : takeMetaData QuicStream -> Decoder : takeMetaData
return task return task
else data frame else
QuicStream -> QuicSession : fill
QuicSession -> Quiche : drainClearText\nForStream
return bytes filled
return bytes filled
QuicStream -> QuicStream : parse
alt if header frame
QuicStream -> Decoder : decode
return
else data frame
QuicStream -> HttpChannel : getCallback
return task
end
return
end end
return task end
end end
return task return task
end end