1 #ifndef ISIMUD_EXCHANGES_MIT_COMMON_TYPES_HPP
2 #define ISIMUD_EXCHANGES_MIT_COMMON_TYPES_HPP
22 #include "../../common/config.h"
30 using CrossType_t=
std::uint8_t;
32 using SeqNum_t=
std::int32_t;
33 using Price_t=
std::int64_t;
34 using SecurityID_t=
std::int32_t;
35 using TransactTime_t=
std::uint64_t;
37 using Account_t=
std::array<
char, 10>;
38 using ClientOrderID_t=
std::array<
char, 20>;
39 using CommonSymbol_t=
std::array<
char, 8>;
40 using Counterparty_t=
std::array<
char, 11>;
41 using CrossID_t=
std::array<
char, 20>;
42 using ExecutionID_t=
std::array<
char, 12>;
43 using ExecutionReportRefID_t=
std::array<
char, 12>;
44 using ExpireDateTime_t=
std::uint32_t;
45 using OrderID_t=
std::array<
char, 12>;
46 using Password_t=
std::array<
char, 25>;
47 using PasswordExpiryDayCount_t=
std::array<
char, 30>;
48 using PublicOrderID_t=
std::array<
char, 12>;
49 using Reason_t=
std::array<
char, 20>;
50 using RejectReason_t=
std::array<
char, 30>;
51 using Segment_t=
std::array<
char, 4>;
52 using TraderID_t=
std::array<
char, 11>;
53 using UserName_t=
std::array<
char, 25>;
55 using ReservedField2_t=
std::array<
char, 2>;
56 using ReservedField3_t=
std::array<
char, 3>;
57 using ReservedField4_t=
std::array<
char, 4>;
58 using ReservedField6_t=
std::array<
char, 6>;
59 using ReservedField9_t=
std::array<
char, 9>;
60 using ReservedField10_t=
std::array<
char, 10>;
61 using ReservedField12_t=
std::array<
char, 12>;
62 using ReservedField20_t=
std::array<
char, 20>;
86 Exit=
std::numeric_limits<MsgType_t>::max()
91 os<<
static_cast<std::underlying_type<AdminMsgType>::type>(v);
109 Exit=
std::numeric_limits<MsgType_t>::max()
114 os<<
static_cast<std::underlying_type<ClientMsgType>::type>(v);
129 Exit=
std::numeric_limits<MsgType_t>::max()
134 os<<
static_cast<std::underlying_type<ServerMsgType>::type>(v);
145 os<<
static_cast<std::underlying_type<ClearingAccount>::type>(v);
158 os<<
static_cast<std::underlying_type<Capacity>::type>(v);
169 os<<
static_cast<std::underlying_type<AutoCancel>::type>(v);
184 os<<
static_cast<std::underlying_type<OrderType>::type>(v);
188 inline std::istream &
190 std::underlying_type<OrderType>::type t;
192 v=
static_cast<OrderType>(t);
203 os<<
static_cast<std::underlying_type<Anonymity>::type>(v);
224 operator<<(
std::ostream &os,
TIF v) {
225 os<<
static_cast<std::underlying_type<TIF>::type>(v);
229 inline std::istream &
231 std::underlying_type<TIF>::type t;
233 v=
static_cast<TIF>(t);
243 operator<<(
std::ostream &os,
Side v) {
244 os<<
static_cast<std::underlying_type<Side>::type>(v);
248 inline std::istream &
250 std::underlying_type<Side>::type t;
252 v=
static_cast<Side>(t);
267 os<<
static_cast<std::underlying_type<PassiveOnlyOrder>::type>(v);
282 os<<
static_cast<std::underlying_type<OrderSubType>::type>(v);
293 operator<<(
std::ostream &os,
AppID v) {
294 os<<
static_cast<std::underlying_type<AppID>::type>(v);
307 os<<
static_cast<std::underlying_type<MESQualifier>::type>(v);
321 os<<
static_cast<std::underlying_type<OrderSource>::type>(v);
335 os<<
static_cast<std::underlying_type<RestatementReason>::type>(v);
355 os<<
static_cast<std::underlying_type<ExecType>::type>(v);
371 os<<
static_cast<std::underlying_type<OrderStatus>::type>(v);