ExFix.Session (ex_fix v0.2.6)
FIX session protocol implementation
Summary
Functions
Returns session's extra bytes to be processed with the next segment
Returns session's last sequence number accepted
Returns inbound message queue (messages received with high sequence number)
Returns length of inbound message queue
Returns ID of last Test Request sent
Returns session's current status (offline, online, connecting, disconnecting). online
means "logged on".
Handle incoming binary data
Respond to timeout (receiving or transmiting messages)
State initialization
Process incoming message
Process invalid message
Process valid message
Send application message
Session start: send Logon msg
Session stop
Utility function for tests: set out_queue to an arbitrary list of messages
Utility function for tests: simulates a certain point in time
Types
@type session_in_queue() :: [ExFix.InMessage.t()]
@type session_name() :: String.t()
@type session_result() :: {:ok, [ExFix.Session.MessageToSend.t()], t()} | {:resend, [ExFix.Session.MessageToSend.t()], t()} | {:logout, [ExFix.Session.MessageToSend.t()], t()} | {:stop, t()}
@type session_status() :: :offline | :connecting | :online | :disconnecting
Functions
Returns session's extra bytes to be processed with the next segment
@spec get_in_lastseq(t()) :: non_neg_integer()
Returns session's last sequence number accepted
@spec get_in_queue(t()) :: session_in_queue()
Returns inbound message queue (messages received with high sequence number)
@spec get_in_queue_length(t()) :: non_neg_integer()
Returns length of inbound message queue
Returns ID of last Test Request sent
@spec get_status(t()) :: session_status()
Returns session's current status (offline, online, connecting, disconnecting). online
means "logged on".
@spec handle_incoming_data(t(), binary()) :: session_result()
Handle incoming binary data
@spec handle_timeout(t(), term()) :: session_result()
Respond to timeout (receiving or transmiting messages)
@spec init(ExFix.SessionConfig.t()) :: {:ok, t()}
State initialization
Process incoming message
@spec process_invalid_message(t(), integer(), ExFix.InMessage.t()) :: session_result()
Process invalid message
Process valid message
@spec send_message(t(), ExFix.OutMessage.t()) :: session_result()
Send application message
@spec session_start(t()) :: session_result()
Session start: send Logon msg
Session stop
Utility function for tests: set out_queue to an arbitrary list of messages
Utility function for tests: simulates a certain point in time