libjmmcg  build_2176
A C++ library containing an eclectic mix of useful, advanced components.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
jmmcg::exchanges::FIX::common Namespace Reference

Classes

class  connectivity_policy
 An implementation of the connectivity policy for the FIX protocol. More...
 
class  server_hb_t
 Generate heartbeats from the containing simulator. More...
 
struct  logon_args_t
 
struct  logoff_args_t
 
class  Header
 
class  Message
 The basic, underlying type used to implement FIX message reading. More...
 
class  client_to_exchange_transformations
 An FIX-protocol message handler. More...
 
class  exchange_to_client_transformations
 A FIX-protocol-to-client message handler. More...
 
class  simulator_responses
 A simple, FIX-protocol exchange simulator. More...
 

Typedefs

using element_type = char
 
using underlying_fix_data_buffer = std::array< element_type, max_size_of_fix_message >
 An underlying data-buffer into which the fix message may be created. More...
 
using pointer = element_type *
 
using const_pointer = element_type const *
 
using data_block_t = pointer
 The type of the internal data-buffer. More...
 
using MsgTypes_t = uint16_t
 
using SecurityID_t = std::array< char, 20 >
 
using ClientOrderID_t = std::array< char, 20 >
 
using Reason_t = std::array< char, 20 >
 
using Password_t = std::array< char, 25 >
 
using UserName_t = std::array< char, 25 >
 
using Price_t = std::array< char, 25 >
 
using checksum_t = std::array< char, CheckSumLength+1 >
 The checksum type used by FIX. More...
 
using field_str_range_t = std::pair< const_pointer, const_pointer >
 

Enumerations

enum  : std::size_t { max_size_of_fix_message =sizeof(__uint128_t)*32 }
 
enum  MsgTypes : MsgTypes_t {
  MsgTypes::Heartbeat =enum_tags::mpl::to_tag<'0'>::value, MsgTypes::TestRequest =enum_tags::mpl::to_tag<'1'>::value, MsgTypes::ResendRequest =enum_tags::mpl::to_tag<'2'>::value, MsgTypes::Reject =enum_tags::mpl::to_tag<'3'>::value,
  MsgTypes::SequenceReset =enum_tags::mpl::to_tag<'4'>::value, MsgTypes::Logout =enum_tags::mpl::to_tag<'5'>::value, MsgTypes::IOI =enum_tags::mpl::to_tag<'6'>::value, MsgTypes::Advertisement =enum_tags::mpl::to_tag<'7'>::value,
  MsgTypes::ExecutionReport =enum_tags::mpl::to_tag<'8'>::value, MsgTypes::OrderCancelReject =enum_tags::mpl::to_tag<'9'>::value, MsgTypes::LogonRequest =enum_tags::mpl::to_tag<'A'>::value, MsgTypes::DerivativeSecurityList =enum_tags::mpl::to_tag<'A', 'A'>::value,
  MsgTypes::NewOrderMultileg =enum_tags::mpl::to_tag<'A', 'B'>::value, MsgTypes::MultilegOrderCancelReplace =enum_tags::mpl::to_tag<'A', 'C'>::value, MsgTypes::TradeCaptureReportRequest =enum_tags::mpl::to_tag<'A', 'D'>::value, MsgTypes::TradeCaptureReport =enum_tags::mpl::to_tag<'A', 'E'>::value,
  MsgTypes::OrderMassStatusRequest =enum_tags::mpl::to_tag<'A', 'F'>::value, MsgTypes::QuoteRequestReject =enum_tags::mpl::to_tag<'A', 'G'>::value, MsgTypes::RFQRequest =enum_tags::mpl::to_tag<'A', 'H'>::value, MsgTypes::QuoteStatusReport =enum_tags::mpl::to_tag<'A', 'I'>::value,
  MsgTypes::QuoteResponse =enum_tags::mpl::to_tag<'A', 'J'>::value, MsgTypes::Confirmation =enum_tags::mpl::to_tag<'A', 'K'>::value, MsgTypes::PositionMaintenanceRequest =enum_tags::mpl::to_tag<'A', 'L'>::value, MsgTypes::PositionMaintenanceReport =enum_tags::mpl::to_tag<'A', 'M'>::value,
  MsgTypes::RequestForPositions =enum_tags::mpl::to_tag<'A', 'N'>::value, MsgTypes::RequestForPositionsAck =enum_tags::mpl::to_tag<'A', 'O'>::value, MsgTypes::PositionReport =enum_tags::mpl::to_tag<'A', 'P'>::value, MsgTypes::TradeCaptureReportRequestAck =enum_tags::mpl::to_tag<'A', 'Q'>::value,
  MsgTypes::TradeCaptureReportAck =enum_tags::mpl::to_tag<'A', 'R'>::value, MsgTypes::AllocationReport =enum_tags::mpl::to_tag<'A', 'S'>::value, MsgTypes::AllocationReportAck =enum_tags::mpl::to_tag<'A', 'T'>::value, MsgTypes::ConfirmationAck =enum_tags::mpl::to_tag<'A', 'U'>::value,
  MsgTypes::SettlementInstructionRequest =enum_tags::mpl::to_tag<'A', 'V'>::value, MsgTypes::AssignmentReport =enum_tags::mpl::to_tag<'A', 'W'>::value, MsgTypes::CollateralRequest =enum_tags::mpl::to_tag<'A', 'X'>::value, MsgTypes::CollateralAssignment =enum_tags::mpl::to_tag<'A', 'Y'>::value,
  MsgTypes::CollateralResponse =enum_tags::mpl::to_tag<'A', 'Z'>::value, MsgTypes::News =enum_tags::mpl::to_tag<'B'>::value, MsgTypes::CollateralReport =enum_tags::mpl::to_tag<'B', 'A'>::value, MsgTypes::CollateralInquiry =enum_tags::mpl::to_tag<'B', 'B'>::value,
  MsgTypes::NetworkCounterpartySystemStatusRequest =enum_tags::mpl::to_tag<'B', 'C'>::value, MsgTypes::NetworkCounterpartySystemStatusResponse =enum_tags::mpl::to_tag<'B', 'D'>::value, MsgTypes::UserRequest =enum_tags::mpl::to_tag<'B', 'E'>::value, MsgTypes::UserResponse =enum_tags::mpl::to_tag<'B', 'F'>::value,
  MsgTypes::CollateralInquiryAck =enum_tags::mpl::to_tag<'B', 'G'>::value, MsgTypes::ConfirmationRequest =enum_tags::mpl::to_tag<'B', 'H'>::value, MsgTypes::TradingSessionListRequest =enum_tags::mpl::to_tag<'B', 'I'>::value, MsgTypes::TradingSessionList =enum_tags::mpl::to_tag<'B', 'J'>::value,
  MsgTypes::SecurityListUpdateReport =enum_tags::mpl::to_tag<'B', 'K'>::value, MsgTypes::AdjustedPositionReport =enum_tags::mpl::to_tag<'B', 'L'>::value, MsgTypes::AllocationInstructionAlert =enum_tags::mpl::to_tag<'B', 'M'>::value, MsgTypes::ExecutionAcknowledgement =enum_tags::mpl::to_tag<'B', 'N'>::value,
  MsgTypes::ContraryIntentionReport =enum_tags::mpl::to_tag<'B', 'O'>::value, MsgTypes::SecurityDefinitionUpdateReport =enum_tags::mpl::to_tag<'B', 'P'>::value, MsgTypes::SettlementObligationReport =enum_tags::mpl::to_tag<'B', 'Q'>::value, MsgTypes::DerivativeSecurityListUpdateReport =enum_tags::mpl::to_tag<'B', 'R'>::value,
  MsgTypes::TradingSessionListUpdateReport =enum_tags::mpl::to_tag<'B', 'S'>::value, MsgTypes::MarketDefinitionRequest =enum_tags::mpl::to_tag<'B', 'T'>::value, MsgTypes::MarketDefinition =enum_tags::mpl::to_tag<'B', 'U'>::value, MsgTypes::MarketDefinitionUpdateReport =enum_tags::mpl::to_tag<'B', 'V'>::value,
  MsgTypes::ApplicationMessageRequest =enum_tags::mpl::to_tag<'B', 'W'>::value, MsgTypes::ApplicationMessageRequestAck =enum_tags::mpl::to_tag<'B', 'X'>::value, MsgTypes::ApplicationMessageReport =enum_tags::mpl::to_tag<'B', 'Y'>::value, MsgTypes::OrderMassActionReport =enum_tags::mpl::to_tag<'B', 'Z'>::value,
  MsgTypes::Email =enum_tags::mpl::to_tag<'C'>::value, MsgTypes::OrderMassActionRequest =enum_tags::mpl::to_tag<'C', 'A'>::value, MsgTypes::UserNotification =enum_tags::mpl::to_tag<'C', 'B'>::value, MsgTypes::StreamAssignmentRequest =enum_tags::mpl::to_tag<'C', 'C'>::value,
  MsgTypes::StreamAssignmentReport =enum_tags::mpl::to_tag<'C', 'D'>::value, MsgTypes::StreamAssignmentReportACK =enum_tags::mpl::to_tag<'C', 'E'>::value, MsgTypes::NewOrderSingle =enum_tags::mpl::to_tag<'D'>::value, MsgTypes::NewOrderList =enum_tags::mpl::to_tag<'E'>::value,
  MsgTypes::OrderCancelRequest =enum_tags::mpl::to_tag<'F'>::value, MsgTypes::OrderCancelReplaceRequest =enum_tags::mpl::to_tag<'G'>::value, MsgTypes::OrderStatusRequest =enum_tags::mpl::to_tag<'H'>::value, MsgTypes::AllocationInstruction =enum_tags::mpl::to_tag<'J'>::value,
  MsgTypes::ListCancelRequest =enum_tags::mpl::to_tag<'K'>::value, MsgTypes::ListExecute =enum_tags::mpl::to_tag<'L'>::value, MsgTypes::ListStatusRequest =enum_tags::mpl::to_tag<'M'>::value, MsgTypes::ListStatus =enum_tags::mpl::to_tag<'N'>::value,
  MsgTypes::AllocationInstructionAck =enum_tags::mpl::to_tag<'P'>::value, MsgTypes::DontKnowTrade =enum_tags::mpl::to_tag<'Q'>::value, MsgTypes::QuoteRequest =enum_tags::mpl::to_tag<'R'>::value, MsgTypes::Quote =enum_tags::mpl::to_tag<'S'>::value,
  MsgTypes::SettlementInstructions =enum_tags::mpl::to_tag<'T'>::value, MsgTypes::MarketDataRequest =enum_tags::mpl::to_tag<'V'>::value, MsgTypes::MarketDataSnapshotFullRefresh =enum_tags::mpl::to_tag<'W'>::value, MsgTypes::MarketDataIncrementalRefresh =enum_tags::mpl::to_tag<'X'>::value,
  MsgTypes::MarketDataRequestReject =enum_tags::mpl::to_tag<'Y'>::value, MsgTypes::QuoteCancel =enum_tags::mpl::to_tag<'Z'>::value, MsgTypes::QuoteStatusRequest =enum_tags::mpl::to_tag<'a'>::value, MsgTypes::MassQuoteAcknowledgement =enum_tags::mpl::to_tag<'b'>::value,
  MsgTypes::SecurityDefinitionRequest =enum_tags::mpl::to_tag<'c'>::value, MsgTypes::SecurityDefinition =enum_tags::mpl::to_tag<'d'>::value, MsgTypes::SecurityStatusRequest =enum_tags::mpl::to_tag<'e'>::value, MsgTypes::SecurityStatus =enum_tags::mpl::to_tag<'f'>::value,
  MsgTypes::TradingSessionStatusRequest =enum_tags::mpl::to_tag<'g'>::value, MsgTypes::TradingSessionStatus =enum_tags::mpl::to_tag<'h'>::value, MsgTypes::MassQuote =enum_tags::mpl::to_tag<'i'>::value, MsgTypes::BusinessMessageReject =enum_tags::mpl::to_tag<'j'>::value,
  MsgTypes::BidRequest =enum_tags::mpl::to_tag<'k'>::value, MsgTypes::BidResponse =enum_tags::mpl::to_tag<'l'>::value, MsgTypes::ListStrikePrice =enum_tags::mpl::to_tag<'m'>::value, MsgTypes::XMLnonFIX =enum_tags::mpl::to_tag<'n'>::value,
  MsgTypes::RegistrationInstructions =enum_tags::mpl::to_tag<'o'>::value, MsgTypes::RegistrationInstructionsResponse =enum_tags::mpl::to_tag<'p'>::value, MsgTypes::OrderMassCancelRequest =enum_tags::mpl::to_tag<'q'>::value, MsgTypes::OrderMassCancelReport =enum_tags::mpl::to_tag<'r'>::value,
  MsgTypes::NewOrderCross =enum_tags::mpl::to_tag<'s'>::value, MsgTypes::CrossOrderCancelReplaceRequest =enum_tags::mpl::to_tag<'t'>::value, MsgTypes::CrossOrderCancelRequest =enum_tags::mpl::to_tag<'u'>::value, MsgTypes::SecurityTypeRequest =enum_tags::mpl::to_tag<'v'>::value,
  MsgTypes::SecurityTypes =enum_tags::mpl::to_tag<'w'>::value, MsgTypes::SecurityListRequest =enum_tags::mpl::to_tag<'x'>::value, MsgTypes::SecurityList =enum_tags::mpl::to_tag<'y'>::value, MsgTypes::DerivativeSecurityListRequest =enum_tags::mpl::to_tag<'z'>::value
}
 
enum  FieldsFast : uint64_t {
  FieldsFast::BodyLength =enum_tags::mpl::to_tag<'\001', '9', '='>::value, FieldsFast::ClOrdID =enum_tags::mpl::to_tag<'\001', '1', '1', '='>::value, FieldsFast::Currency =enum_tags::mpl::to_tag<'\001', '1', '5', '='>::value, FieldsFast::SecurityIDSource =enum_tags::mpl::to_tag<'\001', '2', '2', '='>::value,
  FieldsFast::MsgSeqNum =enum_tags::mpl::to_tag<'\001', '3', '4', '='>::value, FieldsFast::MsgType =enum_tags::mpl::to_tag<'\001', '3', '5', '='>::value, FieldsFast::OrderID =enum_tags::mpl::to_tag<'\001', '3', '7', '='>::value, FieldsFast::OrderQty =enum_tags::mpl::to_tag<'\001', '3', '8', '='>::value,
  FieldsFast::OrdStatus =enum_tags::mpl::to_tag<'\001', '3', '9', '='>::value, FieldsFast::OrdType =enum_tags::mpl::to_tag<'\001', '4', '0', '='>::value, FieldsFast::OrigClOrdID =enum_tags::mpl::to_tag<'\001', '4', '1', '='>::value, FieldsFast::Price =enum_tags::mpl::to_tag<'\001', '4', '4', '='>::value,
  FieldsFast::RefSeqNum =enum_tags::mpl::to_tag<'\001', '4', '5', '='>::value, FieldsFast::SecurityID =enum_tags::mpl::to_tag<'\001', '4', '8', '='>::value, FieldsFast::SenderCompID =enum_tags::mpl::to_tag<'\001', '4', '9', '='>::value, FieldsFast::Symbol =enum_tags::mpl::to_tag<'\001', '5', '5', '='>::value,
  FieldsFast::SendingTime =enum_tags::mpl::to_tag<'\001', '5', '2', '='>::value, FieldsFast::Side =enum_tags::mpl::to_tag<'\001', '5', '4', '='>::value, FieldsFast::TargetCompID =enum_tags::mpl::to_tag<'\001', '5', '6', '='>::value, FieldsFast::TimeInForce =enum_tags::mpl::to_tag<'\001', '5', '9', '='>::value,
  FieldsFast::TransactTime =enum_tags::mpl::to_tag<'\001', '6', '0', '='>::value, FieldsFast::XDestination =enum_tags::mpl::to_tag<'\001', '1', '0', '0', '='>::value, FieldsFast::CountryOfIssue =enum_tags::mpl::to_tag<'\001', '4', '7', '0', '='>::value, FieldsFast::Username =enum_tags::mpl::to_tag<'\001', '5', '5', '3', '='>::value,
  FieldsFast::Password =enum_tags::mpl::to_tag<'\001', '5', '5', '4', '='>::value, FieldsFast::NewPassword =enum_tags::mpl::to_tag<'\001', '9', '2', '5', '='>::value, FieldsFast::ExecType =enum_tags::mpl::to_tag<'\001', '1', '5', '0', '='>::value, FieldsFast::MarketSegmentID =enum_tags::mpl::to_tag<'\001', '1', '5', '1', '='>::value,
  FieldsFast::LeavesQty =enum_tags::mpl::to_tag<'\001', '1', '3', '0', '0', '='>::value, FieldsFast::CheckSum =enum_tags::mpl::to_tag<'\001', '1', '0', '='>::value
}
 
enum  ExecType : char {
  ExecType::New ='0', ExecType::DoneForDay ='3', ExecType::Cancelled ='4', ExecType::Replaced ='5',
  ExecType::PendingCancel ='6', ExecType::Stopped ='7', ExecType::Rejected ='8', ExecType::Suspended ='9',
  ExecType::PendingNew ='A', ExecType::Calculated ='B', ExecType::Expired ='C', ExecType::Restated ='D',
  ExecType::PendingReplace ='E', ExecType::Trade_PartialFillOrFill ='F', ExecType::TradeCorrect ='G', ExecType::TradeCancel ='H',
  ExecType::OrderStatus ='I', ExecType::TradeInAClearingHold ='J', ExecType::TradeHasBeenReleasedToClearing ='K', ExecType::TriggeredOrActivatedBySystem ='L'
}
 
enum  OrdStatus : char {
  OrdStatus::New ='0', OrdStatus::PartiallyFilled ='1', OrdStatus::Filled ='2', OrdStatus::DoneForDay ='3',
  OrdStatus::Cancelled ='4', OrdStatus::Replaced ='5', OrdStatus::PendingCancel ='6', OrdStatus::Stopped ='7',
  OrdStatus::Rejected ='8', OrdStatus::Suspended ='9', OrdStatus::PendingNew ='A', OrdStatus::Calculated ='B',
  OrdStatus::Expired ='C', OrdStatus::AcceptedForBidding ='D', OrdStatus::PendingReplace ='E'
}
 
enum  SecurityIDSource : char {
  CUSIP ='1', SEDOL ='2', QUIK ='3', ISIN ='4',
  RIC ='5', ISOCurrencyCode ='6', ISOCountryCode ='7'
}
 
enum  Side : char { Buy ='1', Sell ='2', SellShort ='5', SellShortExempt ='6' }
 

Functions

int convert (uint32_t a, char *buff, std::size_t sz)
 
constexpr Side convert (BATSBOE::common::Side a)
 
int convert_price (BATSBOE::common::Price_t const &a, char *buff, std::size_t sz)
 
template<class RefData >
constexpr int convert (MIT::common::SecurityID_t const &key, RefData const &ref_data, char *buff, std::size_t __attribute__((unused)) sz)
 
ExecType convert (MIT::common::ExecType const &a) noexcept(false)
 
OrdStatus convert (MIT::common::OrderStatus const &a) noexcept(false)
 
int convert (std::int32_t a, char *buff, std::size_t sz)
 
int convert (MIT::common::Price_t const &a, char *buff, std::size_t sz)
 
constexpr char convert (MIT::common::Side const &a)
 
template<class DestMsg , class SrcMsg , class OutIter >
OutIter convert_ClOrdID (SrcMsg const &msg, OutIter data) noexcept(true)
 
template<class MsgVer >
class
jmmcg::exchanges::FIX::common::Header 
__attribute__ ((packed))
 
template<class MsgVer >
jmmcg::exchanges::FIX::common::Message
Header 
__attribute__ ((packed))
 
template<class MsgVer >
std::ostream & operator<< (std::ostream &os, Message< MsgVer > const &m)
 
template<class SrcMsgDetails , class DestMsgDetails , class SktT >
std::ostream & operator<< (std::ostream &os, client_to_exchange_transformations< SrcMsgDetails, DestMsgDetails, SktT > const &ec) noexcept(false)
 
template<class SrcMsgDetails , class DestMsgDetails , class SktT >
std::ostream & operator<< (std::ostream &os, exchange_to_client_transformations< SrcMsgDetails, DestMsgDetails, SktT > const &ec) noexcept(false)
 
template<class SrcMsgDetails , class SktT >
std::ostream & operator<< (std::ostream &os, simulator_responses< SrcMsgDetails, SktT > const &ec) noexcept(false)
 
 BOOST_MPL_ASSERT_RELATION ((enum_tags::mpl::to_array< FieldsFast, FieldsFast::BodyLength >::size),==, sizeof(JMMCG_FIX_MSG_BODY_LENGTH_TAG)-1)
 
 BOOST_MPL_ASSERT_RELATION ((enum_tags::mpl::to_array< FieldsFast, FieldsFast::MsgType >::size), >=, sizeof(JMMCG_FIX_MSG_TYPE_TAG)-1)
 
std::ostream & operator<< (std::ostream &os, ExecType a)
 
std::ostream & operator<< (std::ostream &os, OrdStatus a)
 

Variables

const char Separator ='\001'
 
const unsigned short CheckSumLength =3
 
const std::size_t shortest_field_length =4u
 

Typedef Documentation

using jmmcg::exchanges::FIX::common::checksum_t = typedef std::array<char, CheckSumLength+1>

The checksum type used by FIX.

Definition at line 61 of file types.hpp.

using jmmcg::exchanges::FIX::common::ClientOrderID_t = typedef std::array<char, 20>

Definition at line 51 of file types.hpp.

Definition at line 41 of file types.hpp.

The type of the internal data-buffer.

FIX messages are basically an array of chars. so we need a type that is compatible with this char-array that is received from a socket.

Definition at line 46 of file types.hpp.

Definition at line 31 of file types.hpp.

Definition at line 63 of file types.hpp.

Definition at line 48 of file types.hpp.

using jmmcg::exchanges::FIX::common::Password_t = typedef std::array<char, 25>

Definition at line 53 of file types.hpp.

Definition at line 40 of file types.hpp.

using jmmcg::exchanges::FIX::common::Price_t = typedef std::array<char, 25>

Definition at line 55 of file types.hpp.

using jmmcg::exchanges::FIX::common::Reason_t = typedef std::array<char, 20>

Definition at line 52 of file types.hpp.

using jmmcg::exchanges::FIX::common::SecurityID_t = typedef std::array<char, 20>

Definition at line 50 of file types.hpp.

An underlying data-buffer into which the fix message may be created.

Ideally this should be suitably aligned, e.g. 64-it aligned. For optimal performance it would actually be the underlying memory of the network card or IP stack.

Definition at line 39 of file types.hpp.

using jmmcg::exchanges::FIX::common::UserName_t = typedef std::array<char, 25>

Definition at line 54 of file types.hpp.

Enumeration Type Documentation

anonymous enum : std::size_t
Enumerator
max_size_of_fix_message 

The largest size of FIX message that the library can accommodate including all components, e.g. type, size & checksum fields. Note that this must be in units of 256 bits, due to the use of AVX2 operations, if available.

Definition at line 32 of file types.hpp.

Enumerator
New 
DoneForDay 
Cancelled 
Replaced 
PendingCancel 
Stopped 
Rejected 
Suspended 
PendingNew 
Calculated 
Expired 
Restated 
PendingReplace 
Trade_PartialFillOrFill 
TradeCorrect 
TradeCancel 
OrderStatus 
TradeInAClearingHold 
TradeHasBeenReleasedToClearing 
TriggeredOrActivatedBySystem 

Definition at line 226 of file types.hpp.

Enumerator
BodyLength 
ClOrdID 
Currency 
SecurityIDSource 
MsgSeqNum 
MsgType 
OrderID 
OrderQty 
OrdStatus 
OrdType 
OrigClOrdID 
Price 
RefSeqNum 
SecurityID 
SenderCompID 
Symbol 
SendingTime 
Side 
TargetCompID 
TimeInForce 
TransactTime 
XDestination 
CountryOfIssue 
Username 
Password 
NewPassword 
ExecType 
MarketSegmentID 
LeavesQty 
CheckSum 

Definition at line 189 of file types.hpp.

Enumerator
Heartbeat 
TestRequest 
ResendRequest 
Reject 
SequenceReset 
Logout 
IOI 
Advertisement 
ExecutionReport 
OrderCancelReject 
LogonRequest 
DerivativeSecurityList 
NewOrderMultileg 
MultilegOrderCancelReplace 
TradeCaptureReportRequest 
TradeCaptureReport 
OrderMassStatusRequest 
QuoteRequestReject 
RFQRequest 
QuoteStatusReport 
QuoteResponse 
Confirmation 
PositionMaintenanceRequest 
PositionMaintenanceReport 
RequestForPositions 
RequestForPositionsAck 
PositionReport 
TradeCaptureReportRequestAck 
TradeCaptureReportAck 
AllocationReport 
AllocationReportAck 
ConfirmationAck 
SettlementInstructionRequest 
AssignmentReport 
CollateralRequest 
CollateralAssignment 
CollateralResponse 
News 
CollateralReport 
CollateralInquiry 
NetworkCounterpartySystemStatusRequest 
NetworkCounterpartySystemStatusResponse 
UserRequest 
UserResponse 
CollateralInquiryAck 
ConfirmationRequest 
TradingSessionListRequest 
TradingSessionList 
SecurityListUpdateReport 
AdjustedPositionReport 
AllocationInstructionAlert 
ExecutionAcknowledgement 
ContraryIntentionReport 
SecurityDefinitionUpdateReport 
SettlementObligationReport 
DerivativeSecurityListUpdateReport 
TradingSessionListUpdateReport 
MarketDefinitionRequest 
MarketDefinition 
MarketDefinitionUpdateReport 
ApplicationMessageRequest 
ApplicationMessageRequestAck 
ApplicationMessageReport 
OrderMassActionReport 
Email 
OrderMassActionRequest 
UserNotification 
StreamAssignmentRequest 
StreamAssignmentReport 
StreamAssignmentReportACK 
NewOrderSingle 
NewOrderList 
OrderCancelRequest 
OrderCancelReplaceRequest 
OrderStatusRequest 
AllocationInstruction 
ListCancelRequest 
ListExecute 
ListStatusRequest 
ListStatus 
AllocationInstructionAck 
DontKnowTrade 
QuoteRequest 
Quote 
SettlementInstructions 
MarketDataRequest 
MarketDataSnapshotFullRefresh 
MarketDataIncrementalRefresh 
MarketDataRequestReject 
QuoteCancel 
QuoteStatusRequest 
MassQuoteAcknowledgement 
SecurityDefinitionRequest 
SecurityDefinition 
SecurityStatusRequest 
SecurityStatus 
TradingSessionStatusRequest 
TradingSessionStatus 
MassQuote 
BusinessMessageReject 
BidRequest 
BidResponse 
ListStrikePrice 
XMLnonFIX 
RegistrationInstructions 
RegistrationInstructionsResponse 
OrderMassCancelRequest 
OrderMassCancelReport 
NewOrderCross 
CrossOrderCancelReplaceRequest 
CrossOrderCancelRequest 
SecurityTypeRequest 
SecurityTypes 
SecurityListRequest 
SecurityList 
DerivativeSecurityListRequest 

Definition at line 65 of file types.hpp.

Enumerator
New 
PartiallyFilled 
Filled 
DoneForDay 
Cancelled 
Replaced 
PendingCancel 
Stopped 
Rejected 
Suspended 
PendingNew 
Calculated 
Expired 
AcceptedForBidding 
PendingReplace 

Definition at line 255 of file types.hpp.

Enumerator
CUSIP 
SEDOL 
QUIK 
ISIN 
RIC 
ISOCurrencyCode 
ISOCountryCode 

Definition at line 279 of file types.hpp.

Enumerator
Buy 
Sell 
SellShort 
SellShortExempt 

Definition at line 289 of file types.hpp.

Function Documentation

template<class MsgVer >
class jmmcg::exchanges::FIX::common::Header jmmcg::exchanges::FIX::common::__attribute__ ( (packed)  )
template<class MsgVer >
jmmcg::exchanges::FIX::common::Message Header jmmcg::exchanges::FIX::common::__attribute__ ( (packed)  )
jmmcg::exchanges::FIX::common::BOOST_MPL_ASSERT_RELATION ( (enum_tags::mpl::to_array< FieldsFast, FieldsFast::BodyLength >::size ,
sizeof(JMMCG_FIX_MSG_BODY_LENGTH_TAG)-  1 
)
jmmcg::exchanges::FIX::common::BOOST_MPL_ASSERT_RELATION ( (enum_tags::mpl::to_array< FieldsFast, FieldsFast::MsgType >::size ,
>=  ,
sizeof(JMMCG_FIX_MSG_TYPE_TAG)-  1 
)
int jmmcg::exchanges::FIX::common::convert ( uint32_t  a,
char *  buff,
std::size_t  sz 
)
inline

Definition at line 30 of file batsboe_common_to_fix_conversions.hpp.

constexpr Side jmmcg::exchanges::FIX::common::convert ( BATSBOE::common::Side  a)
inline

Definition at line 35 of file batsboe_common_to_fix_conversions.hpp.

template<class RefData >
constexpr int jmmcg::exchanges::FIX::common::convert ( MIT::common::SecurityID_t const &  key,
RefData const &  ref_data,
char *  buff,
std::size_t __attribute__((unused))  sz 
)
inline

Note that only ISIN symbology is supported.

Definition at line 37 of file mit_to_fix_conversions.hpp.

ExecType jmmcg::exchanges::FIX::common::convert ( MIT::common::ExecType const &  a)
inlinenoexcept
Todo:
What should be done with ExecType's that cannot be mapped?.

Definition at line 49 of file mit_to_fix_conversions.hpp.

OrdStatus jmmcg::exchanges::FIX::common::convert ( MIT::common::OrderStatus const &  a)
inlinenoexcept
Todo:
What should be done with OrderStatus's that cannot be mapped?.

Definition at line 85 of file mit_to_fix_conversions.hpp.

int jmmcg::exchanges::FIX::common::convert ( std::int32_t  a,
char *  buff,
std::size_t  sz 
)
inline

Definition at line 110 of file mit_to_fix_conversions.hpp.

int jmmcg::exchanges::FIX::common::convert ( MIT::common::Price_t const &  a,
char *  buff,
std::size_t  sz 
)
inline

Definition at line 115 of file mit_to_fix_conversions.hpp.

constexpr char jmmcg::exchanges::FIX::common::convert ( MIT::common::Side const &  a)
inline
Todo:
What should be done with Side's that cannot be mapped?.

Definition at line 124 of file mit_to_fix_conversions.hpp.

template<class DestMsg , class SrcMsg , class OutIter >
OutIter jmmcg::exchanges::FIX::common::convert_ClOrdID ( SrcMsg const &  msg,
OutIter  data 
)
noexcept

Definition at line 137 of file mit_to_fix_conversions.hpp.

int jmmcg::exchanges::FIX::common::convert_price ( BATSBOE::common::Price_t const &  a,
char *  buff,
std::size_t  sz 
)
inline

Definition at line 50 of file batsboe_common_to_fix_conversions.hpp.

template<class SrcMsgDetails , class DestMsgDetails , class SktT >
std::ostream & jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
client_to_exchange_transformations< SrcMsgDetails, DestMsgDetails, SktT > const &  ec 
)
inlinenoexcept

Definition at line 38 of file processing_rules_impl.hpp.

template<class SrcMsgDetails , class DestMsgDetails , class SktT >
std::ostream & jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
exchange_to_client_transformations< SrcMsgDetails, DestMsgDetails, SktT > const &  ec 
)
inlinenoexcept

Definition at line 63 of file processing_rules_impl.hpp.

template<class SrcMsgDetails , class SktT >
std::ostream & jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
simulator_responses< SrcMsgDetails, SktT > const &  ec 
)
inlinenoexcept

Definition at line 94 of file processing_rules_impl.hpp.

template<class MsgVer >
std::ostream & jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
Message< MsgVer > const &  m 
)
inline

Definition at line 255 of file messages_impl.hpp.

std::ostream& jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
ExecType  a 
)
inline

Definition at line 250 of file types.hpp.

std::ostream& jmmcg::exchanges::FIX::common::operator<< ( std::ostream &  os,
OrdStatus  a 
)
inline

Definition at line 274 of file types.hpp.

Variable Documentation

const unsigned short jmmcg::exchanges::FIX::common::CheckSumLength =3

Definition at line 58 of file types.hpp.

const char jmmcg::exchanges::FIX::common::Separator ='\001'

Definition at line 57 of file types.hpp.

const std::size_t jmmcg::exchanges::FIX::common::shortest_field_length =4u

Definition at line 224 of file types.hpp.