45 template <
typename Holder>
54 : size_((std::min)(
symbol.size(),
static_cast<std::size_t
>(
Capacity)))
59 std::copy_n(
symbol.data(), size_, value_.data());
68 std::array<Messaging::Char, Capacity> value_{};
73 enum class QuoteRequestInitializationTag {};
78 template <
typename Holder>
84 message->setQuoteReqId(quoteRequestId);
86 message->setTransactTime(transactTime);
92 template <
typename Holder>
98 typename decltype(message->relatedSym())::Size size) { return message->relatedSym(size); });
102 entry.setQuoteType(quoteType);
103 entry.setOrderQty(orderQuantity);
117template <
typename Holder, details::QuoteRequestInitializationTag...>
124 message, quoteRequestId, eventIndicator, transactTime);
136template <
typename Holder, details::QuoteRequestInitializationTag...>
143 quoteRequestId, eventIndicator, transactTime))
147 quoteRequestId, eventIndicator, transactTime);
151template <
typename Holder,
typename String, details::QuoteRequestInitializationTag...>
153 String&& quoteRequestId, EventFlags::Bits eventIndicator = EventFlags::None,
155 std::is_same<typename std::decay<String>::type, std::string>::value &&
156 !std::is_lvalue_reference<String>::value>::type =
delete;
168template <
typename Holder>
183 template <
typename Holder,
typename... Arguments>
184 static auto apply(Holder& message, Arguments&&... arguments) ->
decltype(
185 addQuoteEntry(message, std::forward<Arguments>(arguments)...),
233#define ONIXS_CMEMDH_QUOTE_ENTRY(...) \
234 ONIXS_CME_MDH_TESTING_NAMESPACE::details::deferMessageOperation([&]() { \
235 return ONIXS_CME_MDH_TESTING_NAMESPACE::quoteEntry(__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.
QuoteSymbol(Messaging::StrRef symbol) noexcept
static Messaging::Timestamp now() noexcept
Returns current UTC time.
std::basic_string_view< Char > StrRef
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
Messaging::QuoteRequest39::RelatedSymEntry appendQuoteEntry(Holder &message, SecurityId securityId, Messaging::StrRef symbol, Messaging::Int8 quoteType, Messaging::Int32 orderQuantity, Messaging::Int8 side)
typename std::enable_if< IsMutableMessageHolder< ExpectedHolder, Holder >::value, Holder & >::type EnableMutableMessageHolder
MessageOperation< Operation, typename std::decay< Arguments >::type... > makeMessageOperation(Arguments &&... arguments)
EnableMutableMessageHolder< QuoteRequest, Holder > EnableQuoteRequest
Group::Entry appendGroupEntry(Group group, Resize resize)
auto quoteEntry(SecurityId securityId, Messaging::StrRef symbol, Messaging::Int8 quoteType, Messaging::Int32 orderQuantity, Messaging::Int8 side) -> decltype(details::makeMessageOperation< details::QuoteEntryOperation >(securityId, details::QuoteSymbol(symbol), quoteType, orderQuantity, side))
Creates a pipeline operation that appends a quote-request entry.
MessageHolder< Messaging::QuoteRequest39 > QuoteRequest
Owns storage for a quote-request test message.
SecurityId securityId(const Messaging::FIX::MultiContainer &message)
Messaging::StrRef symbol(const Messaging::FIX::MultiContainer &message)
Messaging::Int32 SecurityId
Identifies a security in CME MDP 3.0 market data.
MatchEventIndicator type.
Messaging::MatchEventIndicator::Bits Bits
Protocol storage type for combined event flags.
@ None
No event flags are set.
static auto apply(Holder &message, Arguments &&... arguments) -> decltype(addQuoteEntry(message, std::forward< Arguments >(arguments)...), appendQuoteEntry(message, std::forward< Arguments >(arguments)...))
static auto apply(Holder &message, Messaging::StrRef quoteRequestId, EventFlags::Bits eventIndicator, Messaging::Timestamp transactTime) noexcept -> EnableQuoteRequest< Holder >