libjmmcg
release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
|
#include "conversions.hpp"
#include "core/memops.hpp"
#include "core/ttypes.hpp"
#include <boost/mpl/assert.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <numeric>
#include <cassert>
#include <cstring>
#include "messages_impl.hpp"
Go to the source code of this file.
Classes | |
struct | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::logon_args_t |
struct | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::logoff_args_t |
class | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::Header< MsgVer > |
class | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::Message< MsgVer > |
The basic, underlying type used to implement FIX message reading. More... | |
Namespaces | |
namespace | isimud |
namespace | isimud::ISIMUD_VER_NAMESPACE |
namespace | isimud::ISIMUD_VER_NAMESPACE::exchanges |
namespace | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX |
namespace | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common |
Typedefs | |
using | msg_version_t = MsgVer |
using | element_type = char |
using | pointer = element_type * |
using | const_pointer = element_type const * |
using | size_type = std::size_t |
using | MsgTypes_t = common::MsgTypes_t |
using | Header_t = Header< MsgVer > |
using | RejectCode_t = int |
Enumerations | |
enum | : bool { has_static_size =false } |
enum | : std::size_t { header_t_size =msg_version_t::fix_template_body_length_offset+sizeof(JMMCG_FIX_MSG_BODY_LENGTH_NULL)+1 } |
Functions | |
template<class MsgVer > | |
class isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::Header | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::__attribute__ ((packed)) |
constexpr __stdcall | Header () noexcept(true) |
Create a FIX message from an array of chars read from a socket or elsewhere. More... | |
constexpr size_type | length () const noexcept(true) |
Determine the total size of the referenced message. More... | |
template<FieldsFast field> | |
constexpr field_str_range_t __fastcall | find () noexcept(true) |
Determine if the specified tag is in the referenced message. More... | |
template<FieldsFast field> | |
constexpr field_str_const_range_t __fastcall | find () const noexcept(true) |
Determine if the specified tag is in the referenced message. More... | |
constexpr field_str_const_range_t __fastcall | find_ExDestination () const noexcept(true) |
constexpr ExDestination_t __fastcall | find_MIC () const noexcept(true) |
MsgTypes | type () const noexcept(true) __attribute__((pure)) |
constexpr bool | is_valid () const noexcept(true) |
Verify that the referenced FIX message is valid. More... | |
checksum_t | generate_checksum (size_type body_len) const noexcept(true) |
Generate the checksum for the referenced FIX message. More... | |
constexpr bool | is_checksum_valid (size_type body_len, const_pointer start_of_checksum_value) const noexcept(true) |
Verify that the checksum of the referenced FIX message is valid. More... | |
template<MsgTypes MsgType> | |
constexpr underlying_fix_data_buffer::iterator | set_header () noexcept(true) |
template<MsgTypes MsgType> | |
constexpr underlying_fix_data_buffer::iterator | set_sequence_num_int (SeqNum_t seq_num) noexcept(true) |
template<MsgTypes MsgType, class SrcMsg , class Ret = typename std::enable_if<std::is_class<SrcMsg>::value, underlying_fix_data_buffer::iterator>::type> | |
constexpr Ret | set_sequence_num (SrcMsg const &msg) noexcept(true) |
template<class MsgVer > | |
isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::Message Header | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::__attribute__ ((packed)) |
constexpr __stdcall | Message () noexcept(true) |
Wrap a FIX message contained in an array of chars that has been written into from a socket or elsewhere. More... | |
constexpr __stdcall | Message (logon_args_t const &) noexcept(true) |
constexpr __stdcall | Message (logoff_args_t const &) noexcept(true) |
constexpr __stdcall | Message (RejectCode_t const &) noexcept(true) |
__stdcall | Message (SeqNum_t seqNum, ClientOrderID_t const &clID, OrderType const oT, TIF const t, Side const s, SecurityID_t instID, Quantity_t ordQty, Price_t p, ExDestination_t mic) noexcept(true) |
Create a NewOrderSIngle. More... | |
__stdcall | Message (SeqNum_t seqNum, ClientOrderID_t const &clID, ExecType eT, Price_t const price, SecurityID_t instID, Side s, Quantity_t execdQty, Quantity_t leavesQty, ExDestination_t mic) noexcept(true) |
Create an ExecutionReport. More... | |
template<class SrcMsg > | |
__stdcall | Message (SrcMsg const &msg)=delete |
Create a message from the source message, into the underlying buffer. More... | |
template<class SrcMsg , class RefData > | |
__stdcall | Message (SrcMsg const &msg, RefData const &ref_data)=delete |
Create a message from the source message, into the underlying buffer. More... | |
template<class RefData , class ... Fields> | |
Message (RefData const &ref_data, Fields ... fields) | |
constexpr size_type __fastcall | size () const noexcept(true) |
Determine the size of the referenced message. More... | |
template<FieldsFast field> | |
constexpr bool __fastcall | search () const noexcept(true) |
Determine if the specified tag is in the referenced message. More... | |
std::string | to_string () const noexcept(false) |
constexpr ClientOrderID_t | clientOrderID () const noexcept(true) |
constexpr Side | side () const noexcept(true) |
constexpr Price_t | limitPrice () const noexcept(true) |
constexpr Quantity_t | orderQty () const noexcept(true) |
constexpr void | orderQty (Quantity_t q) noexcept(true) |
constexpr SecurityID_t | instrumentID () const noexcept(true) |
template<class OutIter > | |
OutIter | write_ClOrdID (ClientOrderID_t const &clID, OutIter data) noexcept(true) |
template<class OutIter > | |
OutIter | write_TransactTime (OutIter data) noexcept(true) |
template<class OutIter > | |
OutIter | write_ExDest (ExDestination_t mic, OutIter data) noexcept(true) |
template<FieldsFast field> | |
constexpr underlying_fix_data_buffer::iterator | add_field_tag (underlying_fix_data_buffer::iterator data) noexcept(true) |
constexpr void | finalise_msg (underlying_fix_data_buffer::iterator) noexcept(true) |
template<class MsgVer > | |
std::ostream & | isimud::ISIMUD_VER_NAMESPACE::exchanges::FIX::common::operator<< (std::ostream &os, Message< MsgVer > const &m) |
Variables | |
ALIGN_TO_L1_CACHE char | begin_string [sizeof(msg_version_t::MsgVer) -1] |
libjmmcg::enum_tags::mpl::to_array< FieldsFast, FieldsFast::BodyLength >::element_type_no_null | body_length_tag |
char | body_length_value [sizeof(JMMCG_FIX_MSG_BODY_LENGTH_NULL) -1] |
libjmmcg::enum_tags::mpl::to_array< FieldsFast, FieldsFast::MsgType >::element_type_no_null | msg_type_tag |
underlying_fix_data_buffer | data_ |
typedef typename Header_t::const_pointer const_pointer |
Definition at line 4 of file messages.hpp.
typedef typename Header_t::element_type element_type |
Definition at line 2 of file messages.hpp.
Definition at line 1 of file messages.hpp.
typedef typename Header_t::msg_version_t msg_version_t |
Definition at line 1 of file messages.hpp.
using MsgTypes_t = common::MsgTypes_t |
Definition at line 6 of file messages.hpp.
typedef typename Header_t::pointer pointer |
Definition at line 3 of file messages.hpp.
using RejectCode_t = int |
Definition at line 7 of file messages.hpp.
using size_type = typename Header_t::size_type |
Definition at line 5 of file messages.hpp.
anonymous enum : bool |
Enumerator | |
---|---|
has_static_size | The message is statically-sized, not dynamically, so sizeof(the derived message-type) is the amount to copy, i.e. length() returns sizeof(the derived message-type). |
Definition at line 8 of file messages.hpp.
anonymous enum : std::size_t |
Enumerator | |
---|---|
header_t_size |
Definition at line 11 of file messages.hpp.
|
constexprnoexcept |
|
constexprnoexcept |
Definition at line 17 of file messages.hpp.
|
constexprprotectednoexcept |
|
constexprnoexcept |
Determine if the specified tag is in the referenced message.
field | The field to be found. Note that the range must contain the field otherwise the behaviour shall be undefined. |
|
constexprnoexcept |
Determine if the specified tag is in the referenced message.
field | The field to be found. Note that the range must contain the field otherwise the behaviour shall be undefined. |
|
constexprnoexcept |
|
constexprnoexcept |
|
noexcept |
Generate the checksum for the referenced FIX message.
body_len | The length of the body of the referenced FIX message. |
|
constexprnoexcept |
Create a FIX message from an array of chars read from a socket or elsewhere.
In debug builds the validity of the FIX message is checked.
b | The array of chars that must comprise a valid FIX message. |
|
constexprnoexcept |
Definition at line 7 of file messages.hpp.
|
constexprnoexcept |
Verify that the checksum of the referenced FIX message is valid.
body_len | The length of the body of the referenced FIX message. |
start_of_checksum_value | A pointer to that start of the checksum value embedded in the referenced FIX message. |
|
constexprnoexcept |
Verify that the referenced FIX message is valid.
Definition at line 9 of file socket_server.cpp.
|
constexprnoexcept |
Determine the total size of the referenced message.
The referenced message must be valid.
Determine the total size of the referenced message.
Definition at line 9 of file socket_server.cpp.
|
constexprnoexcept |
Definition at line 64 of file messages.hpp.
|
explicitconstexprnoexcept |
Wrap a FIX message contained in an array of chars that has been written into from a socket or elsewhere.
b | The array of chars that must comprise a valid FIX message which is not automatically checked. |
|
explicitconstexprnoexcept |
|
explicitconstexprnoexcept |
__attribute__::Message | ( | RefData const & | ref_data, |
Fields ... | fields | ||
) |
|
explicitconstexprnoexcept |
|
noexcept |
Create an ExecutionReport.
|
noexcept |
Create a NewOrderSIngle.
|
explicitdelete |
Create a message from the source message, into the underlying buffer.
In debug builds the validity of the FIX message is checked.
If an error is generated, then this function will need to be specialised for the particular SrcMsg.
msg | The source message from which the target message should be created. |
|
delete |
Create a message from the source message, into the underlying buffer.
In debug builds the validity of the FIX message is checked.
If an error is generated, then this function will need to be specialised for the particular SrcMsg.
msg | The source message from which the target message should be created. |
ref_data | The reference data to map from exchange-based instrument identifiers to client-based symbology. |
|
constexprnoexcept |
Definition at line 24 of file messages.hpp.
|
constexprnoexcept |
|
constexprnoexcept |
Determine if the specified tag is in the referenced message.
field | The field to be found. Note that the range must contain the field otherwise the behaviour shall be undefined. |
|
constexprprotectednoexcept |
|
constexprprotectednoexcept |
|
constexprprotectednoexcept |
|
constexprnoexcept |
Definition at line 50 of file messages.hpp.
|
constexprnoexcept |
Determine the size of the referenced message.
The referenced message must be valid.
|
noexcept |
|
noexcept |
Definition at line 23 of file messages.hpp.
|
noexcept |
|
noexcept |
|
noexcept |
|
protected |
Definition at line 77 of file messages.hpp.
|
protected |
Definition at line 78 of file messages.hpp.
|
protected |
Definition at line 79 of file messages.hpp.
|
protected |
Definition at line 81 of file messages.hpp.
|
protected |
Definition at line 80 of file messages.hpp.