41 template <
typename Holder>
45 enum class IncrementalRefreshTradeSummaryInitializationTag {};
48 template <Messaging::UpdateAction::Enum Action>
50 Action == Messaging::UpdateAction::New ||
51 Action == Messaging::UpdateAction::Change ||
52 Action == Messaging::UpdateAction::Delete>
55 template <Messaging::UpdateAction::Enum Action,
typename Holder>
59 template <Messaging::UpdateAction::Enum Action,
typename Holder>
65 typename decltype(message->entries())::Size size) { return message->entries(size); });
67 entry.setUpdateAction(Action);
69 entry.setRptSeq(rptSeq);
70 entry.setEntryPx(price);
71 entry.setEntrySize(quantity);
72 entry.setNumberOfOrders(numberOfOrders);
73 entry.tradeEntryIdNull();
74 entry.aggressorSideNull();
79 template <
typename Holder>
84 typename decltype(message->orderIdEntries())::Size size) { return message->orderIdEntries(size); });
86 entry.setOrderId(orderId);
87 entry.setLastQty(lastQuantity);
99template <
typename Holder, details::IncrementalRefreshTradeSummaryInitializationTag...>
101 ->
details::EnableIncrementalRefreshTradeSummary<Holder>
111template <
typename Holder, details::IncrementalRefreshTradeSummaryInitializationTag...>
130template <Messaging::UpdateAction::Enum Action,
typename Holder>
137 message,
securityId, rptSeq, price, quantity, numberOfOrders);
149template <
typename Holder>
160 template <Messaging::UpdateAction::Enum Action>
163 template <
typename Holder,
typename... Arguments>
164 static auto apply(Holder& message, Arguments&&... arguments) ->
decltype(
165 addEntry<Action>(message, std::forward<Arguments>(arguments)...),
174 template <
typename Holder,
typename... Arguments>
175 static auto apply(Holder& message, Arguments&&... arguments) ->
decltype(
176 addOrderIdEntry(message, std::forward<Arguments>(arguments)...),
187 static auto apply(Holder& message, Arguments&&... arguments) ->
typename std::enable_if<
190 message, std::forward<Arguments>(arguments)...))>::type
193 message, std::forward<Arguments>(arguments)...);
230#define ONIXS_CMEMDH_TRADE_ENTRY(...) \
231 ONIXS_CME_MDH_TESTING_NAMESPACE::details::deferMessageOperation([&]() { \
232 return ONIXS_CME_MDH_TESTING_NAMESPACE::tradeEntry(__VA_ARGS__); \
#define ONIXS_CME_MDH_TESTING_NAMESPACE_END
#define ONIXS_CME_MDH_TESTING_NAMESPACE_BEGIN
#define ONIXS_CMEMDH_NODISCARD
The time point without the time-zone information.
Owns fixed-capacity storage for a prefixed CME message.
static Messaging::Timestamp now() noexcept
Returns current UTC time.
FixedPointDecimal< Int64, IntegralConstant< Int8, -9 > > Decimal9
Decimal with constant exponent -9.
std::uint32_t UInt32
uInt32.
EnableMutableMessageHolder< IncrementalRefreshTradeSummary, Holder > EnableIncrementalRefreshTradeSummary
auto makeInitializationRecipe(Arguments &&... arguments) -> typename std::enable_if< IsMutableMessageHolder< ExpectedHolder, Holder >::value, decltype(makeMessageRecipe< typename std::decay< Holder >::type >(makeMessageOperation< Operation >(std::forward< Arguments >(arguments)...)))>::type
typename std::enable_if< IsMutableMessageHolder< ExpectedHolder, Holder >::value, Holder & >::type EnableMutableMessageHolder
Messaging::IncrementalRefreshBook46::OrderIDEntry appendOrderIdEntry(Holder &message, OrderId orderId, OrderPriority orderPriority, DisplayQuantity quantity, Messaging::UInt8 referenceId)
MessageOperation< Operation, typename std::decay< Arguments >::type... > makeMessageOperation(Arguments &&... arguments)
auto initializeMessage(Holder &message, EventFlags::Bits eventIndicator, Messaging::Timestamp transactTime) noexcept -> EnableMutableMessageHolder< ExpectedHolder, Holder >
Messaging::IncrementalRefreshTradeSummary48::Entry appendTradeSummaryEntry(Holder &message, SecurityId securityId, Messaging::UInt32 rptSeq, Messaging::Decimal9 price, Messaging::Int32 quantity, Messaging::Int32 numberOfOrders)
typename std::enable_if< IsTradeSummaryAction< Action >::value, EnableIncrementalRefreshTradeSummary< Holder > >::type EnableTradeSummaryEntry
Group::Entry appendGroupEntry(Group group, Resize resize)
auto tradeEntry(OrderId orderId, Messaging::Int32 lastQuantity) -> decltype(details::makeMessageOperation< details::TradeEntryOperation >(orderId, lastQuantity))
Creates a pipeline operation that appends an order-level fill entry.
MessageHolder< Messaging::IncrementalRefreshTradeSummary48 > IncrementalRefreshTradeSummary
Owns storage for an incremental trade-summary refresh test message.
SecurityId securityId(const Messaging::FIX::MultiContainer &message)
Messaging::Int32 SecurityId
Identifies a security in CME MDP 3.0 market data.
Messaging::UInt64 OrderId
Identifies an order in a Market By Order book.
Messaging::MatchEventIndicator::Bits Bits
Protocol storage type for combined event flags.
static auto apply(Holder &message, Arguments &&... arguments) -> typename std::enable_if< IsTradeSummaryAction< Action >::value, decltype(TradeSummaryEntryOperation< Action >::apply(message, std::forward< Arguments >(arguments)...))>::type
static auto apply(Holder &message, Arguments &&... arguments) -> decltype(addOrderIdEntry(message, std::forward< Arguments >(arguments)...), appendOrderIdEntry(message, std::forward< Arguments >(arguments)...))
static auto apply(Holder &message, Arguments &&... arguments) -> decltype(addEntry< Action >(message, std::forward< Arguments >(arguments)...), appendTradeSummaryEntry< Action >(message, std::forward< Arguments >(arguments)...))