OnixS C++ CME MDP Premium Market Data Handler 5.11.1
Users' manual and API documentation
Loading...
Searching...
No Matches
IncrementalRefreshBook.h File Reference

Go to the source code of this file.

Classes

struct  IsDeleteMdEntryAction< Action >
struct  IsValueMdEntryAction< Action >
struct  IsOrderIdEntryAction< Action >
struct  MdEntryOperation< Action >
struct  OrderIdEntryOperation< Action >
struct  EntryOperationSelector< IncrementalRefreshBook::MessageType >

Namespaces

namespace  OnixS
namespace  OnixS::CME
namespace  OnixS::CME::MDH
namespace  OnixS::CME::MDH::Test
namespace  OnixS::CME::MDH::Test::details

Macros

#define ONIXS_CMEMDH_ORDER_ID_ENTRY(Action, ...)

Typedefs

using IncrementalRefreshBook = MessageHolder<Messaging::IncrementalRefreshBook46>
template<typename Holder>
using EnableIncrementalRefreshBook = EnableMutableMessageHolder<IncrementalRefreshBook, Holder>
template<Messaging::UpdateAction::Enum Action, typename Holder>
using EnableDeleteMdEntry
template<Messaging::UpdateAction::Enum Action, typename Holder>
using EnableValueMdEntry
template<Messaging::OrderUpdateAction::Enum Action, typename Holder>
using EnableOrderIdEntry

Functions

template<Messaging::UpdateAction::Enum Action, typename Holder>
Messaging::IncrementalRefreshBook46::Entry appendMdEntryBase (Holder &message, SecurityId securityId, Messaging::EntryTypeBook::Enum entryType, Messaging::UInt32 rptSeq, Messaging::UInt8 priceLevel)
template<Messaging::UpdateAction::Enum Action, typename Holder>
Messaging::IncrementalRefreshBook46::Entry appendMdEntry (Holder &message, SecurityId securityId, Messaging::EntryTypeBook::Enum entryType, Messaging::UInt32 rptSeq, Messaging::UInt8 priceLevel)
template<Messaging::UpdateAction::Enum Action, typename Holder>
Messaging::IncrementalRefreshBook46::Entry appendMdEntry (Holder &message, SecurityId securityId, Messaging::EntryTypeBook::Enum entryType, Messaging::UInt32 rptSeq, Messaging::UInt8 priceLevel, Messaging::Decimal9 price, Messaging::Int32 quantity, Messaging::Int32 numberOfOrders)
template<Messaging::OrderUpdateAction::Enum Action, typename Holder>
Messaging::IncrementalRefreshBook46::OrderIDEntry appendOrderIdEntry (Holder &message, OrderId orderId, OrderPriority orderPriority, DisplayQuantity quantity, Messaging::UInt8 referenceId)
template<typename Holder, details::IncrementalRefreshBookInitializationTag...>
auto initialize (Holder &message, EventFlags::Bits eventIndicator, Messaging::Timestamp transactTime=UtcWatch::now()) noexcept -> details::EnableIncrementalRefreshBook< Holder >
template<typename Holder, details::IncrementalRefreshBookInitializationTag...>
auto initialize (EventFlags::Bits eventIndicator, Messaging::Timestamp transactTime=UtcWatch::now()) -> decltype(details::makeInitializationRecipe< Holder, IncrementalRefreshBook >(eventIndicator, transactTime))
template<Messaging::UpdateAction::Enum Action, typename Holder>
auto addEntry (Holder &message, SecurityId securityId, Messaging::EntryTypeBook::Enum entryType, Messaging::UInt32 rptSeq, Messaging::UInt8 priceLevel) -> details::EnableDeleteMdEntry< Action, Holder >
template<Messaging::UpdateAction::Enum Action, typename Holder>
auto addEntry (Holder &message, SecurityId securityId, Messaging::EntryTypeBook::Enum entryType, Messaging::UInt32 rptSeq, Messaging::UInt8 priceLevel, Messaging::Decimal9 price, Messaging::Int32 quantity, Messaging::Int32 numberOfOrders) -> details::EnableValueMdEntry< Action, Holder >
template<Messaging::OrderUpdateAction::Enum Action, typename Holder>
auto addOrderIdEntry (Holder &message, OrderId orderId, OrderPriority orderPriority, DisplayQuantity quantity, Messaging::UInt8 referenceId) -> details::EnableOrderIdEntry< Action, Holder >
template<Messaging::OrderUpdateAction::Enum Action>
auto orderIdEntry (OrderId orderId, OrderPriority orderPriority, DisplayQuantity quantity, Messaging::UInt8 referenceId) -> typename std::enable_if< details::IsOrderIdEntryAction< Action >::value, decltype(details::makeMessageOperation< details::OrderIdEntryOperation< Action > >(orderId, orderPriority, quantity, referenceId))>::type

Macro Definition Documentation

◆ ONIXS_CMEMDH_ORDER_ID_ENTRY

#define ONIXS_CMEMDH_ORDER_ID_ENTRY ( Action,
... )
Value:
ONIXS_CME_MDH_TESTING_NAMESPACE::details::deferMessageOperation([&]() { \
return ONIXS_CME_MDH_TESTING_NAMESPACE::orderIdEntry< \
ONIXS_CMEMDH_MESSAGING_NAMESPACE::OrderUpdateAction::Action>(__VA_ARGS__); \
})

Creates a deferred order-ID entry pipeline stage.

Parameters
ActionUnqualified Messaging::OrderUpdateAction enumerator name.
...Arguments forwarded to orderIdEntry() when the stage is materialized.
Note
Stages are materialized in pipeline order. Argument evaluation within one orderIdEntry() call follows the normal C++ function-argument rules.
Apply % callable to customize the entry created by this stage.
Warning
An entry view passed to a customization callable is valid only for that invocation. Do not retain it; growing any earlier repeating group can relocate and invalidate the view.
Note
This macro must be expanded within function scope because its stage factory captures referenced arguments by reference.
Warning
The returned stage may retain references or pointers to objects used by the argument expressions. Materialize it by piping it into a holder or appending it to a MessageRecipe before any such object's lifetime ends. Do not return or retain an unmaterialized stage beyond those lifetimes.
Note
Once appended, the MessageRecipe owns decay-copied argument values and may be retained and reused. Objects referenced indirectly by pointer-like or view-like argument values must still remain valid while the recipe is applied.
The returned deferred stage is single-use. Append it to a MessageRecipe once, then reuse the recipe when repeated materialization is required.

Definition at line 316 of file IncrementalRefreshBook.h.