1 #ifndef ISIMUD_EXCHANGES_BATSBOE_common_MESSAGES_HPP
2 #define ISIMUD_EXCHANGES_BATSBOE_common_MESSAGES_HPP
25 #include "../../common/iso_10383_mic_codes.hpp"
27 #include "core/memops.hpp"
53 template<
class MsgT, MsgT Msg>
58 enum :
typename std::underlying_type<MsgType_t>::type {
59 static_type=
static_cast<
typename std::underlying_type<MsgType_t>::type>(Msg)
78 const MsgType_t
type()
const noexcept(
true) {
83 std::uint16_t
length()
const noexcept(
true);
93 }
__attribute__((packed));
98 template<
class MsgT, MsgT Msg>
125 LogonRequest(SeqNum_t seqNum,
const SessionSubID_t sessionSubID,
const UserName_t &UN,
const Password_t &P,
const bool noUnspec)
noexcept(
true)
FORCE_INLINE;
134 template<
class SrcMsg>
__stdcall
136 }
__attribute__((packed));
156 template<
class SrcMsg>
explicit __stdcall
158 }
__attribute__((packed));
168 enum : common::Quantity_t {
180 template<
class SrcMsg>
explicit __stdcall
182 }
__attribute__((packed));
187 template<
class MsgT, MsgT Msg>
209 }
__attribute__((packed));
227 }
__attribute__((packed));
237 enum : common::Quantity_t {
249 template<
class SrcMsg>
explicit __stdcall
251 }
__attribute__((packed));
263 }
__attribute__((packed));
276 explicit NewOrder(SeqNum_t seqNum, ClientOrderID_t
const &clID,
OrdType const oT,
TIF const t,
Side const s, SecurityID_t instID,
common::Quantity_t ordQty, Price_t p)
noexcept(
true)
FORCE_INLINE;
283 template<
class SrcMsg>
explicit __stdcall
287 return clientOrderID_;
290 libjmmcg::memcpy_opt(clID, clientOrderID_);
310 SecurityID_t
const &
instrumentID()
const noexcept(
true);
311 void instrumentID(SecurityID_t
const &i)
noexcept(
true);
316 TIF tif()
const noexcept(
true);
317 void tif(
TIF t)
noexcept(
true);
320 ClientOrderID_t clientOrderID_;
322 common::Quantity_t orderQty_;
323 bitfields_to_type_map bitfields;
324 }
__attribute__((packed));
344 template<
class SrcMsg>
__stdcall
348 return originalClientOrderID_;
351 libjmmcg::memcpy_opt(origclID, originalClientOrderID_);
355 ClientOrderID_t originalClientOrderID_;
356 bitfields_to_type_map bitfields;
357 }
__attribute__((packed));
378 template<
class SrcMsg>
explicit __stdcall
382 return originalClientOrderID_;
385 libjmmcg::memcpy_opt(clID, originalClientOrderID_);
398 ClientOrderID_t clientOrderID_;
399 ClientOrderID_t originalClientOrderID_;
400 bitfields_to_type_map bitfields;
401 }
__attribute__((packed));
419 return clientOrderID_;
422 libjmmcg::memcpy_opt(clID, clientOrderID_);
426 ClientOrderID_t clientOrderID_;
428 bitfields_to_type_map bitfields;
429 }
__attribute__((packed));
438 using RejectCode_t=
int;
450 return clientOrderID_;
453 libjmmcg::memcpy_opt(clID, clientOrderID_);
457 ClientOrderID_t clientOrderID_;
464 bitfields_to_type_map bitfields;
465 }
__attribute__((packed));
484 return clientOrderID_;
487 libjmmcg::memcpy_opt(clID, clientOrderID_);
500 ClientOrderID_t clientOrderID_;
502 bitfields_to_type_map bitfields;
503 }
__attribute__((packed));
521 return clientOrderID_;
524 libjmmcg::memcpy_opt(clID, clientOrderID_);
528 ClientOrderID_t clientOrderID_;
531 bitfields_to_type_map bitfields;
532 }
__attribute__((packed));
540 using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
551 return clientOrderID_;
554 libjmmcg::memcpy_opt(clID, clientOrderID_);
558 ClientOrderID_t clientOrderID_;
566 bitfields_to_type_map bitfields;
567 }
__attribute__((packed));
586 return clientOrderID_;
589 libjmmcg::memcpy_opt(clID, clientOrderID_);
600 Price_t
lastPrice()
const noexcept(
true);
603 ClientOrderID_t clientOrderID_;
609 bitfields_to_type_map bitfields;
610 }
__attribute__((packed));
618 using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
629 return clientOrderID_;
632 libjmmcg::memcpy_opt(clID, clientOrderID_);
636 ClientOrderID_t clientOrderID_;
643 bitfields_to_type_map bitfields;
644 }
__attribute__((packed));
660 OrderExecution(SeqNum_t seqNum, ClientOrderID_t
const &clID, Price_t
const price, SecurityID_t
const &instID,
Side s)
noexcept(
true)
FORCE_INLINE;
663 return clientOrderID_;
666 libjmmcg::memcpy_opt(clID, clientOrderID_);
669 SecurityID_t
const &
instrumentID()
const noexcept(
true);
670 void instrumentID(SecurityID_t
const &i)
noexcept(
true);
697 ClientOrderID_t clientOrderID_;
699 common::Quantity_t lastShares;
701 common::Quantity_t leavesQty_;
705 ContraBroker_t contraBroker;
706 bitfields_to_type_map bitfields;
707 }
__attribute__((packed));
725 return clientOrderID_;
728 libjmmcg::memcpy_opt(clID, clientOrderID_);
732 ClientOrderID_t clientOrderID_;
737 ClearingFirm_t clearingFirm;
738 ClearingAccount_t clearingAccount;
739 Quantity_t lastShares;
741 Price_t correctedPrice;
743 bitfields_to_type_map bitfields;
744 }
__attribute__((packed));