libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
messages.hpp File Reference
#include "config.h"
#include "reject_codes.hpp"
#include "../common/messages.hpp"
#include "../common/ref_data.hpp"
#include "core/max_min.hpp"
#include <boost/mpl/assert.hpp>
#include <boost/mpl/deref.hpp>
#include <boost/mpl/max_element.hpp>
#include <boost/mpl/min_element.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/sizeof.hpp>
#include <boost/mpl/transform_view.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/variant/variant.hpp>
#include <iostream>
#include "messages_impl.hpp"
Include dependency graph for messages.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewOrderSpecific1
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewOrderSpecific2
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewOrderSpecific3
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewQuoteSpecific1
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewQuoteSpecific2
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::OrderCancelReplaceRequestSpecific
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::ExecutionReportSpecific1
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::ExecutionReportSpecific2
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::OrderMassCancelRequestSpecific1
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::LogonReply
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewOrder
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::OrderCancelReplaceRequest
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::OrderCancelRequest
 
struct  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::MsgTypes
 

Namespaces

namespace  isimud
 
namespace  isimud::ISIMUD_VER_NAMESPACE
 
namespace  isimud::ISIMUD_VER_NAMESPACE::exchanges
 
namespace  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT
 
namespace  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT
 
namespace  isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests
 

Typedefs

using order_qty_t = std::uint64_t
 
using RejectCode_t = mit_bit::reject_codes_enum
 
using RejectCodes_t = std::underlying_type< RejectCode_t >::type
 
using base_t = common::NewOrder< NewOrderSpecific1, NewOrderSpecific2, NewOrderSpecific3 >
 

Functions

struct isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::NewOrderSpecific1 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::__attribute__ ((packed))
 
constexpr NewOrderSpecific1 (common::SecurityID_t instID) noexcept(true) FORCE_INLINE
 
common::SecurityID_t instrumentID () const noexcept(true)
 
void instrumentID (common::SecurityID_t i) noexcept(true)
 
constexpr NewOrderSpecific2 (order_qty_t ordQty) noexcept(true) FORCE_INLINE
 
order_qty_t orderQty () const noexcept(true)
 
void orderQty (order_qty_t i) noexcept(true)
 
void FORCE_INLINE orderSource (common::OrderSource os) noexcept(true)
 
constexpr OrderMassCancelRequestSpecific1 (common::SecurityID_t instID) noexcept(true) FORCE_INLINE
 
template<class SrcMsg >
__stdcall NewOrder (SrcMsg const &msg, common::ref_data const &rd) noexcept(true) FORCE_INLINE
 Create a message from the source message. More...
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::Header_t),<=, MsgTypes::max_size_client_to_exchange_msg)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::Header_t),<=, MsgTypes::max_size_exchange_to_client_msg)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::Header_t),<=, MsgTypes::max_msg_size)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::LogonRequest),==, 80)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::LogonReply),==, 38)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::LogoutRequest),==, 24)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::ClientHeartbeat),==, 4)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::MissedMessageRequest),==, 9)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::MissedMessageRequestAck),==, 5)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::MissedMessageReport),==, 5)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::Reject),==, 59)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::SystemStatus),==, 6)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::NewOrder_t),==, 106)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::NewQuote),==, 86)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::OrderCancelReplaceRequest),==, 120)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::OrderCancelRequest),==, 73)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::OrderMassCancelRequest),==, 46)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::ExecutionReport),==, 229)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::OrderCancelReject),==, 73)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::OrderMassCancelReport),==, 56)
 
 isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::tests::BOOST_MPL_ASSERT_RELATION (sizeof(MsgTypes::BusinessReject),==, 63)
 

Variables

common::SecurityID_t instrumentID_
 
const std::int8_t reservedField1 =0
 
const std::int8_t reservedField2 =0
 
order_qty_t orderQty_
 
order_qty_t displayQty {}
 
common::Anonymity anonymity =common::Anonymity::Anonymous
 
common::Price_t stoppedPrice =0
 
common::ReservedField10_t reservedField
 
common::OrderSource orderSource_ =common::OrderSource::MarketParticipantDealsOnOwnAccount
 
common::Price_t bidPrice
 
uint64_t bidSize
 
common::Price_t askPrice
 
uint64_t askSize
 
common::TIF tif
 
order_qty_t executedQty
 
order_qty_t leavesQty
 
common::Container container
 
common::OrderSource orderSource
 
common::Price_t avgPx
 
common::Price_t impliedPrice
 
common::CrossID_t crossID
 
uint8_t crossType
 
common::CrossID_t originalCrossID
 
common::RestatementReason restatementReason
 
common::OrderID_t publicOrderID
 
common::TypeOfTrade typeOfTrade
 
common::Segment_t segment {}
 
isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::LogonReply isimud::ISIMUD_VER_NAMESPACE::exchanges::MIT::BIT::__attribute__
 

Typedef Documentation

◆ base_t

Definition at line 0 of file messages.hpp.

◆ order_qty_t

typedef NewOrderSpecific2::order_qty_t order_qty_t

Definition at line 0 of file messages.hpp.

◆ RejectCode_t

using RejectCode_t = mit_bit::reject_codes_enum

Definition at line 0 of file messages.hpp.

◆ RejectCodes_t

typedef std::underlying_type< RejectCode_t >::type RejectCodes_t

Definition at line 1 of file messages.hpp.

Function Documentation

◆ instrumentID() [1/2]

common::SecurityID_t __attribute__::instrumentID ( ) const
constexprnoexcept

Definition at line 7 of file messages.hpp.

◆ instrumentID() [2/2]

void instrumentID ( common::SecurityID_t  i)
noexcept

Definition at line 10 of file messages.hpp.

◆ NewOrder()

template<class SrcMsg >
__stdcall __attribute__::NewOrder ( SrcMsg const &  msg,
common::ref_data const &  rd 
)
noexcept

Create a message from the source message.

If a linker error is generated, then this function will need to be specialised for the particular Msg-type.

Parameters
msgThe source message from which the target message should be created.

◆ NewOrderSpecific1()

constexpr __attribute__::NewOrderSpecific1 ( common::SecurityID_t  instID)
explicitconstexprnoexcept

Definition at line 4 of file messages.hpp.

◆ NewOrderSpecific2()

constexpr __attribute__::NewOrderSpecific2 ( order_qty_t  ordQty)
explicitconstexprnoexcept

Definition at line 5 of file messages.hpp.

◆ OrderMassCancelRequestSpecific1()

constexpr __attribute__::OrderMassCancelRequestSpecific1 ( common::SecurityID_t  instID)
explicitconstexprnoexcept

Definition at line 5 of file messages.hpp.

◆ orderQty() [1/2]

order_qty_t __attribute__::orderQty ( ) const
constexprnoexcept

Definition at line 8 of file messages.hpp.

◆ orderQty() [2/2]

void orderQty ( order_qty_t  i)
noexcept

Definition at line 11 of file messages.hpp.

◆ orderSource()

void FORCE_INLINE __attribute__::orderSource ( common::OrderSource  os)
noexcept

Definition at line 13 of file messages.hpp.

Variable Documentation

◆ anonymity

common::Anonymity anonymity =common::Anonymity::Anonymous

Definition at line 0 of file messages.hpp.

◆ askPrice

common::Price_t askPrice

Definition at line 2 of file messages.hpp.

◆ askSize

uint64_t askSize

Definition at line 3 of file messages.hpp.

◆ avgPx

common::Price_t avgPx

Definition at line 2 of file messages.hpp.

◆ bidPrice

common::Price_t bidPrice

Definition at line 0 of file messages.hpp.

◆ bidSize

uint64_t bidSize

Definition at line 1 of file messages.hpp.

◆ container

common::Container container

Definition at line 6 of file messages.hpp.

◆ crossID

common::CrossID_t crossID

Definition at line 4 of file messages.hpp.

◆ crossType

uint8_t crossType

Definition at line 5 of file messages.hpp.

◆ displayQty

order_qty_t displayQty {}

Definition at line 3 of file messages.hpp.

◆ executedQty

order_qty_t executedQty

Definition at line 4 of file messages.hpp.

◆ impliedPrice

common::Price_t impliedPrice

Definition at line 3 of file messages.hpp.

◆ instrumentID_

common::SecurityID_t instrumentID_

Definition at line 0 of file messages.hpp.

◆ leavesQty

common::Quantity_t leavesQty
noexcept

Definition at line 5 of file messages.hpp.

◆ orderQty_

order_qty_t orderQty_

Definition at line 2 of file messages.hpp.

◆ orderSource

static void FORCE_INLINE orderSource
constexprnoexcept

Definition at line 1 of file messages.hpp.

◆ orderSource_

common::OrderSource orderSource_ =common::OrderSource::MarketParticipantDealsOnOwnAccount

Definition at line 3 of file messages.hpp.

◆ originalCrossID

common::CrossID_t originalCrossID

Definition at line 6 of file messages.hpp.

◆ publicOrderID

common::OrderID_t publicOrderID

Definition at line 8 of file messages.hpp.

◆ reservedField

common::ReservedField9_t reservedField

Definition at line 2 of file messages.hpp.

◆ reservedField1

const std::int8_t reservedField1 =0

Definition at line 1 of file messages.hpp.

◆ reservedField2

const std::int8_t reservedField2 =0

Definition at line 2 of file messages.hpp.

◆ restatementReason

common::RestatementReason restatementReason

Definition at line 7 of file messages.hpp.

◆ segment

common::Segment_t segment {}

Definition at line 3 of file messages.hpp.

◆ stoppedPrice

common::Price_t stoppedPrice =0

Definition at line 1 of file messages.hpp.

◆ tif

void tif
noexcept

Definition at line 1 of file messages.hpp.

◆ typeOfTrade

common::TypeOfTrade typeOfTrade

Definition at line 9 of file messages.hpp.