FIX 4.0 Demo 1.0
Loading...
Searching...
No Matches
order_event.hpp
Go to the documentation of this file.
1
9#pragma once
10
11#include <string>
12#include <variant>
13#include "app/model/order.hpp"
14
15namespace fix40 {
16
27
41struct OrderEvent {
44 std::string userId;
45
50 std::variant<std::monostate, Order, CancelRequest> data;
51
52 // =========================================================================
53 // 构造函数
54 // =========================================================================
55
61 , data(std::monostate{})
62 {}
63
67 OrderEvent(OrderEventType t, const SessionID& sid, const std::string& uid = "")
68 : type(t)
69 , sessionID(sid)
70 , userId(uid)
71 , data(std::monostate{})
72 {}
73
79 static OrderEvent newOrder(const Order& order, const std::string& uid) {
80 OrderEvent event;
82 event.sessionID = order.sessionID;
83 event.userId = uid;
84 event.data = order;
85 return event;
86 }
87
93 static OrderEvent cancelRequest(const CancelRequest& req, const std::string& uid) {
94 OrderEvent event;
96 event.sessionID = req.sessionID;
97 event.userId = uid;
98 event.data = req;
99 return event;
100 }
101
102 // =========================================================================
103 // 访问器
104 // =========================================================================
105
110 const Order* getOrder() const {
111 return std::get_if<Order>(&data);
112 }
113
119 return std::get_if<CancelRequest>(&data);
120 }
121};
122
123} // namespace fix40
Definition matching_engine.hpp:23
OrderEventType
订单事件类型
Definition order_event.hpp:21
@ SESSION_LOGOUT
会话登出
@ SESSION_LOGON
会话登录
@ CANCEL_REQUEST
撤单请求
内部订单数据结构
Order order
Definition simulation_app.cpp:46
撤单请求
Definition order.hpp:176
SessionID sessionID
来源会话
Definition order.hpp:180
订单事件
Definition order_event.hpp:41
OrderEvent(OrderEventType t, const SessionID &sid, const std::string &uid="")
构造会话事件(登录/登出)
Definition order_event.hpp:67
std::variant< std::monostate, Order, CancelRequest > data
Definition order_event.hpp:50
static OrderEvent cancelRequest(const CancelRequest &req, const std::string &uid)
构造撤单事件
Definition order_event.hpp:93
std::string userId
用户ID(从 Session 提取的真实身份)
Definition order_event.hpp:44
SessionID sessionID
来源会话标识
Definition order_event.hpp:43
OrderEvent()
默认构造函数
Definition order_event.hpp:59
const CancelRequest * getCancelRequest() const
获取撤单请求(仅 CANCEL_REQUEST 有效)
Definition order_event.hpp:118
OrderEventType type
事件类型
Definition order_event.hpp:42
const Order * getOrder() const
获取订单数据(仅 NEW_ORDER 有效)
Definition order_event.hpp:110
static OrderEvent newOrder(const Order &order, const std::string &uid)
构造新订单事件
Definition order_event.hpp:79
内部订单表示
Definition order.hpp:90
FIX 会话标识符
Definition application.hpp:28