ExFix.SessionHandler behaviour (ex_fix v0.2.7)

FIX Session Handler behaviour. Declare callbacks to process received FIX messages and session events.

Summary

Callbacks

Callback - FIX message received (application level).

Called after a Logon message is received from counterparty

Called after a Logout message is received from counterparty or after a disconnection, which occurs first.

FIX message received (session level). Same arguments of on_message().

Callbacks

on_app_message(session_name, msg_type, msg, env)

@callback on_app_message(
  session_name :: ExFix.Session.session_name(),
  msg_type :: String.t(),
  msg :: ExFix.InMessage.t(),
  env :: map()
) :: any()

Callback - FIX message received (application level).

This function receives:

  • session id (String or PID), example: "simulator"
  • message type (String) see here for a complete list of FIX 5.0 SP2 message types.
  • msg - InMessage struct with message. If msg.complete == false, it is needed to call:
    msg = ExFix.Parser.parse2(msg)
  • env - Map sent to ExFix.start_session_initiator().

on_logon(session_name, env)

@callback on_logon(session_name :: ExFix.Session.session_name(), env :: map()) :: any()

Called after a Logon message is received from counterparty

on_logout(session_name, env)

@callback on_logout(session_name :: ExFix.Session.session_name(), env :: map()) :: any()

Called after a Logout message is received from counterparty or after a disconnection, which occurs first.

on_session_message(session_name, msg_type, msg, env)

@callback on_session_message(
  session_name :: ExFix.Session.session_name(),
  msg_type :: String.t(),
  msg :: ExFix.InMessage.t(),
  env :: map()
) :: any()

FIX message received (session level). Same arguments of on_message().