Either SfAcceptor or SfInitiator, determines the starting states for new sessions
This is where we can send data back down to the client
Holds details of all the sessions in a cache, and can validate sendCompId etc
Just for debug strings
An actor for receiving decoded, validated fix messages. It is used when a session is established with the correct sender and target comp id's
An optional microsecond latency recorder.
An actor for receiving decoded, validated fix messages.
An actor for receiving decoded, validated fix messages. It is used when a session is established with the correct sender and target comp id's
This is where we can send data back down to the client
Could not find the session, so reject it and make up some fields for the header
Called by the decoder when the tag id is not a number, or some other bad formatting which means we cannot even work out what session this message is for.
Called by the decoder when the tag id is not a number, or some other bad formatting which means we cannot even work out what session this message is for.
The debug message.
An optional microsecond latency recorder.
called when it gets the final tuple of a message
called when it gets the final tuple of a message
Some of the validation done when decoding the string to tuples should result in a garbled message - ie just discard it, while others such as a null value in a tag value pair should result in a reject - which means we need the session
Just for debug strings
Holds details of all the sessions in a cache, and can validate sendCompId etc
Either SfAcceptor or SfInitiator, determines the starting states for new sessions
Every Socket sends TCP IO events to me. Bytes being received are the most obvious, which are decoded and some initial validation is performed. Providing it decodes to a fix message the comp id's etc are used to locate a configured session, if found then the message is handed off to the session actor for handling.
When a client connects to the server port this class is registered to handle incoming comms.
It calls the decoder to convert from bytes into a Strongly typed Fix Message.
If the message is badly formed, missing enough header fields and so on this this actor replies
If the session is established, and we know the SfSessionActor to use then the comms is forwarded to it and it does it all.
http://doc.akka.io/docs/akka/current/scala/io-tcp.html