diff --git a/resources/uml.txt b/resources/uml.txt new file mode 100644 index 0000000..422a290 --- /dev/null +++ b/resources/uml.txt @@ -0,0 +1,37 @@ +#Paste this on http://www.websequencediagrams.com/ +participant Initiator as I +participant Acceptor as A +participant StringEncoder +participant StringDecoder +participant MsgValidator +participant MapEncoder +participant MapDecoder +participant FieldChecker +participant SequenceNumberHandler +participant LogOnHandler +participant HeartbeatHandler +participant TestRequestHandler +participant ResendRequestHandler +participant GapFillHandler +participant SeqResetHandler +participant LogOffHandler + +I->A: LogOn Msg +activate I +A->StringEncoder: Convert bytes\n to string +StringEncoder->MsgValidator: Chk BodyLength \n& ChkSum field vals +MsgValidator-->I:OnERROR:DISCONNECT +MsgValidator->MapEncoder: Convert to\n tag/value map +MapEncoder->FieldChecker: Check required\n session fields +FieldChecker-->I:OnERROR:DISCONNECT +FieldChecker->SequenceNumberHandler: Check sequence numbers +SequenceNumberHandler->LogOnHandler: Process logon +LogOnHandler->HeartbeatHandler: Do heartbeats +loop until disconnect (if no outgoing msg in X seconds) +HeartbeatHandler->SequenceNumberHandler: Send Heartbeat +end +SequenceNumberHandler->MapDecoder: Convert to\n FIX string +MapDecoder->StringDecoder: Convert string to bytes +StringDecoder->I:Response + +note over MapEncoder: Convert to a map\n like data structure\n for ease