|
FIX 4.0 Demo 1.0
|
FIX 应用层抽象接口 More...
#include <application.hpp>


Public Member Functions | |
| virtual | ~Application ()=default |
| 虚析构函数 | |
| virtual void | onLogon (const SessionID &sessionID)=0 |
| 会话登录成功回调 | |
| virtual void | onLogout (const SessionID &sessionID)=0 |
| 会话登出回调 | |
| virtual void | fromApp (const FixMessage &msg, const SessionID &sessionID)=0 |
| 收到业务消息回调 | |
| virtual void | toApp (FixMessage &msg, const SessionID &sessionID) |
| 发送业务消息前回调 | |
| virtual void | fromAdmin (const FixMessage &msg, const SessionID &sessionID) |
| 收到管理消息回调 | |
| virtual void | toAdmin (FixMessage &msg, const SessionID &sessionID) |
| 发送管理消息前回调 | |
| virtual IStore * | getStore () const |
| 获取持久化存储接口(可选) | |
FIX 应用层抽象接口
该接口将业务逻辑与 FIX 会话层分离。Session 负责处理会话层消息 (Logon、Logout、Heartbeat、TestRequest),而业务消息(如订单、 执行报告等)则委托给 Application 实现类处理。
由于 FixServer 使用线程池,不同客户端连接绑定到不同工作线程, 当多个客户端同时发送消息时,fromApp() 会被并发调用。
推荐的线程安全实现方式:
|
virtualdefault |
虚析构函数
|
inlinevirtual |
收到管理消息回调
| msg | 收到的 FIX 管理消息 |
| sessionID | 消息来源的会话标识符 |
当收到会话层消息(Logon/Logout/Heartbeat/TestRequest)时调用。 默认实现为空,子类可选择性重写用于日志记录等。
|
pure virtual |
收到业务消息回调
| msg | 收到的 FIX 业务消息 |
| sessionID | 消息来源的会话标识符 |
当收到非会话层消息(MsgType 不是 A/0/1/5)时调用。 典型的业务消息包括:
Implemented in fix40::SimulationApp, and fix40::client::ClientApp.

|
inlinevirtual |
获取持久化存储接口(可选)
用于让网络层/会话层组件以“依赖倒置”的方式获取持久化能力:
Reimplemented in fix40::SimulationApp.
|
pure virtual |
会话登录成功回调
| sessionID | 已建立的会话标识符 |
当 FIX 会话成功建立(收到 Logon 确认)后调用。 可用于初始化交易状态、订阅行情等。
Implemented in fix40::SimulationApp, and fix40::client::ClientApp.
|
pure virtual |
会话登出回调
| sessionID | 即将断开的会话标识符 |
当 FIX 会话即将断开(收到 Logout 或连接关闭)时调用。 可用于清理交易状态、取消未完成订单等。
Implemented in fix40::SimulationApp, and fix40::client::ClientApp.

|
inlinevirtual |
发送管理消息前回调
| msg | 即将发送的 FIX 管理消息(可修改) |
| sessionID | 发送消息的会话标识符 |
在发送 Logon/Logout/Heartbeat/TestRequest 前调用。 默认实现为空,子类可选择性重写用于日志记录等。
|
inlinevirtual |
发送业务消息前回调
| msg | 即将发送的 FIX 业务消息(可修改) |
| sessionID | 发送消息的会话标识符 |
在业务消息发送前调用,可用于:
默认实现为空,子类可选择性重写。
Reimplemented in fix40::SimulationApp, and fix40::client::ClientApp.
