OnixS C++ CME MDP Premium Market Data Handler 5.10.3
Users' manual and API documentation
Loading...
Searching...
No Matches
SecurityListener.h
Go to the documentation of this file.
1// Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2//
3// This software owned by Onix Solutions Limited [OnixS] and is
4// protected by copyright law and international copyright treaties.
5//
6// Access to and use of the software is governed by the terms of the applicable
7// OnixS Software Services Agreement (the Agreement) and Customer end user license
8// agreements granting a non-assignable, non-transferable and non-exclusive license
9// to use the software for it's own data processing purposes under the terms defined
10// in the Agreement.
11//
12// Except as otherwise granted within the terms of the Agreement, copying or
13// reproduction of any part of this source code or associated reference material
14// to any other location for further reproduction or redistribution, and any
15// amendments to this copyright notice, are expressly prohibited.
16//
17// Any reproduction or redistribution for sale or hiring of the Software not in
18// accordance with the terms of the Agreement is a violation of copyright law.
19//
20
21#pragma once
22
23#include <ostream>
24
29
31
34
36
37#include <OnixS/CME/MDH/Auxiliary/DeprecatedHeaderWarnings.Disable.h>
39#include <OnixS/CME/MDH/Auxiliary/DeprecatedHeaderWarnings.Restore.h>
40
42
45
49template <class Container, class Data = typename Container::Entry>
51{
52public:
55 typedef Container Message;
56
59 typedef Data Entry;
60
64 : entry_(entry)
65 , message_(message)
66 , packet_(packet)
67 {
68 }
69
71 explicit SecurityDataArgs(const SecurityDataArgs& other)
72 : entry_(other.entry_)
73 , message_(other.message_)
74 , packet_(other.packet_)
75 {
76 }
77
81 const NetPacket& packet() const noexcept
82 {
83 return packet_;
84 }
85
88 const Message& message() const noexcept
89 {
90 return message_;
91 }
92
95 const Entry& entry() const noexcept
96 {
97 return entry_;
98 }
99
100private:
101 const Data entry_;
102 const Container message_;
103 const NetPacket& packet_;
104
106 SecurityDataArgs& operator=(const SecurityDataArgs&);
107};
108
109namespace {
111inline const TradeOrderIds& nullOrders()
112{
113 static const TradeOrderIds theNull;
114
115 return theNull;
116}
117} // namespace
118
120template <class Summary, class Data = typename Summary::Entry>
121class TradeSummaryArgs : public SecurityDataArgs<Summary, Data>
122{
123public:
125
128 typedef typename Base::Message Message;
129
131 typedef typename Base::Entry Entry;
132
135
138 const NetPacket& packet,
139 const Message& message,
140 const Entry& entry,
141 const OrderIds& ids = nullOrders()
142 )
144 , orderIds_(ids)
145 {
146 }
147
150 : Base(static_cast<const Base&>(other))
151 , orderIds_(other.orderIds_)
152 {
153 }
154
161 const OrderIds& orderIds() const
162 {
163 return orderIds_;
164 }
165
166private:
167 const TradeOrderIds& orderIds_;
168
169 TradeSummaryArgs& operator=(const TradeSummaryArgs&);
170};
171
173
175
178
181
184
188
192
195
198
201
204
207
210
213
216
219
222
224template <class Book>
226{
227public:
230 BookUpdateErrorArgs(const Book& book, const std::string& description)
231 : book_(book)
232 , description_(description)
233 {
234 }
235
237 const Book& book() const
238 {
239 return book_;
240 }
241
243 const std::string& description() const
244 {
245 return description_;
246 }
247
248private:
249 const Book& book_;
250 const std::string& description_;
251
253
254 BookUpdateErrorArgs& operator=(const BookUpdateErrorArgs&);
255};
256
260
264
268
271{
274 virtual void onReset(Handler&) {}
275
278
281
284
287
290
293 virtual void onDefinition(Handler&, const Security&, const MultiContainerArgs&) {}
294
298 virtual void onUndefined(Handler&, Security&) {}
299
303 virtual void onRecovery(Handler&, const Security&, const SnapshotFullRefresh52Args&) {}
304
309
314
317 virtual void onTrade(Handler&, const Security&, const Recovery52EntryArgs&) {}
318
321 virtual void onTrade(Handler&, const Security&, const Recovery69EntryArgs&) {}
322
325 virtual void onTrade(Handler&, const Security&, const TradeSummary48Args&) {}
326
329 virtual void onTrade(Handler&, const Security&, const TradeSummary65Args&) {}
330
333 virtual void onElectronicVolume(Handler&, const Security&, const Recovery52EntryArgs&) {}
334
337 virtual void onElectronicVolume(Handler&, const Security&, const Recovery69EntryArgs&) {}
338
341 virtual void onElectronicVolume(Handler&, const Security&, const Volume37Args&) {}
342
345 virtual void onElectronicVolume(Handler&, const Security&, const Volume66Args&) {}
346
348 // the security is recovered from snapshot.
350
352 // the security is recovered from snapshot.
353 virtual void onBookAtomicUpdate(Handler&, const Security&, const Recovery52EntryArgs&) {}
354
356 // the security is recovered from snapshot.
357 virtual void onBookAtomicUpdate(Handler&, const Security&, const Recovery69EntryArgs&) {}
358
362
366
370
374
378
387 virtual void onBookUpdate(Handler&, const Security&, const MboBook&) {}
388
397 virtual void onBookUpdate(Handler&, const Security&, const DirectBook&) {}
398
407 virtual void onBookUpdate(Handler&, const Security&, const ImpliedBook&) {}
408
417 virtual void onBookUpdate(Handler&, const Security&, const ConsolidatedBook&) {}
418
422
426
430
433 virtual void onSettlementPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
434
437 virtual void onSettlementPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
438
441 virtual void onSettlementPrice(Handler&, const Security&, const DailyStatistics49Args&) {}
442
445 virtual void onClearedVolume(Handler&, const Security&, const Recovery52EntryArgs&) {}
446
449 virtual void onClearedVolume(Handler&, const Security&, const Recovery69EntryArgs&) {}
450
453 virtual void onClearedVolume(Handler&, const Security&, const DailyStatistics49Args&) {}
454
457 virtual void onOpenInterest(Handler&, const Security&, const Recovery52EntryArgs&) {}
458
461 virtual void onOpenInterest(Handler&, const Security&, const Recovery69EntryArgs&) {}
462
465 virtual void onOpenInterest(Handler&, const Security&, const DailyStatistics49Args&) {}
466
469 virtual void onFixingPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
470
473 virtual void onFixingPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
474
477 virtual void onFixingPrice(Handler&, const Security&, const DailyStatistics49Args&) {}
478
481 virtual void onOpeningPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
482
485 virtual void onOpeningPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
486
489 virtual void onOpeningPrice(Handler&, const Security&, const SessionStatistics51Args&) {}
490
493 virtual void onOpeningPrice(Handler&, const Security&, const SessionStatistics67Args&) {}
494
497 virtual void onHighTradePrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
498
501 virtual void onHighTradePrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
502
503
507
511
514 virtual void onLowTradePrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
515
518 virtual void onLowTradePrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
519
522 virtual void onLowTradePrice(Handler&, const Security&, const SessionStatistics51Args&) {}
523
526 virtual void onLowTradePrice(Handler&, const Security&, const SessionStatistics67Args&) {}
527
530 virtual void onHighestBid(Handler&, const Security&, const Recovery52EntryArgs&) {}
531
534 virtual void onHighestBid(Handler&, const Security&, const Recovery69EntryArgs&) {}
535
538 virtual void onHighestBid(Handler&, const Security&, const SessionStatistics51Args&) {}
539
542 virtual void onHighestBid(Handler&, const Security&, const SessionStatistics67Args&) {}
543
546 virtual void onLowestOffer(Handler&, const Security&, const Recovery52EntryArgs&) {}
547
550 virtual void onLowestOffer(Handler&, const Security&, const Recovery69EntryArgs&) {}
551
554 virtual void onLowestOffer(Handler&, const Security&, const SessionStatistics51Args&) {}
555
558 virtual void onLowestOffer(Handler&, const Security&, const SessionStatistics67Args&) {}
559
563
567
570 virtual void onStatus(Handler&, const Security&, const SnapshotFullRefresh52Args&) {}
571
575
578 virtual void onStatus(Handler&, const Security&, const SecurityStatus30Args&) {}
579
583
586 virtual void onGap(Handler&, const Security&, Messaging::UInt32) {}
587
590 {
591 return Security::UserData(0);
592 }
593};
594
595template <class Book>
596std::ostream& operator<<(std::ostream& stream, const BookUpdateErrorArgs<Book>& args)
597{
598 return stream << args.description();
599}
600
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition Bootstrap.h:54
#define ONIXS_CMEMDH_EXPORTED_CLASS_DECL(typeName)
Definition Bootstrap.h:35
#define ONIXS_CMEMDH_NAMESPACE_END
Definition Bootstrap.h:55
#define ONIXS_CMEMDH_FORCEINLINE
Definition Compiler.h:161
#define ONIXS_CMEMDH_EXPORTED
Definition Compiler.h:148
Exposes details of book maintenance failure.
BookUpdateErrorArgs(const Book &book, const std::string &description)
Market By Order book.
Definition MboBook.h:72
SecurityDataArgs(const SecurityDataArgs &other)
Initializes instance as copy of other one.
SecurityDataArgs(const NetPacket &packet, const Message &message, const Entry &entry)
Attributes associated with security.
Definition Security.h:31
Messaging::UInt64 UserData
User-defined data to be attached.
Definition Security.h:91
Attributes of trade summary.
SecurityDataArgs< Summary, Data > Base
Base::Entry Entry
Aliases trade summary data entry.
TradeSummaryArgs(const NetPacket &packet, const Message &message, const Entry &entry, const OrderIds &ids=nullOrders())
Initializes instance with data to be referenced.
TradeSummaryArgs(const TradeSummaryArgs &other)
Initializes the instance as ref-copy of the other one.
TradeOrderIds OrderIds
Aliases collection of order ids.
const OrderIds & orderIds() const
std::uint32_t UInt32
uInt32.
Definition Integral.h:35
BookUpdateErrorArgs< DirectBook > DirectBookUpdateErrorArgs
MessageArgs< Messaging::InstrumentDefinitionFX63 > InstrumentDefinitionFX63Args
MessageArgs template instantiation for InstrumentDefinitionFX63 message type.
SecurityDataArgs< Messaging::QuoteRequest39, Messaging::QuoteRequest39::RelatedSymEntry > QuoteRequest39RelatedSymArgs
Instantiation of security data attributes for quote request related symbols.
SecurityDataArgs< Messaging::IncrementalRefreshBook46 > MbpBook46AtomicUpdateArgs
Instantiation of security data attributes for MBP book atomic updates.
SecurityDataArgs< Messaging::IncrementalRefreshSessionStatistics51 > SessionStatistics51Args
Instantiation of security data attributes for session statistics.
MbpBook< ImpliedPriceLevel, MbpBookDepth > ImpliedBook
Defines implied book.
Definition ImpliedBook.h:30
SecurityDataArgs< Messaging::SnapshotFullRefreshLongQty69 > Recovery69EntryArgs
Instantiation of security data attributes for recovery data.
MessageArgs< Messaging::InstrumentDefinitionFixedIncome57 > InstrumentDefinitionFixedIncome57Args
MessageArgs template instantiation for InstrumentDefinitionFixedIncome57 message type.
SecurityDataArgs< Messaging::IncrementalRefreshOrderBook47 > MboBook47AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
SecurityDataArgs< Messaging::IncrementalRefreshVolume37 > Volume37Args
Instantiation of security data attributes for volumes.
MessageArgs< Messaging::SecurityStatus30 > SecurityStatus30Args
MessageArgs template instantiation for SecurityStatus30 message type.
SecurityDataArgs< Messaging::SnapshotFullRefresh52 > Recovery52EntryArgs
Instantiation of security data attributes for recovery data.
SecurityDataArgs< Messaging::IncrementalRefreshBookLongQty64, IncrementalRefreshBook64CombinedEntry > MboBookCombined64AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
MessageArgs< Messaging::SnapshotFullRefresh52 > SnapshotFullRefresh52Args
MessageArgs template instantiation for SnapshotFullRefresh52 message type.
MbpBook< ConsolidatedPriceLevel, MbpBookDepth > ConsolidatedBook
SecurityDataArgs< Messaging::IncrementalRefreshLimitsBanding50 > LimitsAndBanding50Args
Instantiation of security data attributes for limits and banding.
BookUpdateErrorArgs< ImpliedBook > ImpliedBookUpdateErrorArgs
SecurityDataArgs< Messaging::IncrementalRefreshSessionStatisticsLongQty67 > SessionStatistics67Args
Instantiation of security data attributes for session statistics.
MessageArgs< Messaging::InstrumentDefinitionFuture54 > InstrumentDefinitionFuture54Args
MessageArgs template instantiation for InstrumentDefinitionFuture54 message type.
MessageArgs< Messaging::SnapshotFullRefreshLongQty69 > SnapshotFullRefreshLongQty69Args
MessageArgs template instantiation for SnapshotFullRefreshLongQty69 message type.
SecurityDataArgs< Messaging::SnapshotFullRefreshOrderBook53 > MboRecovery53EntryArgs
Instantiation of security data attributes for MBO recovery data.
TradeSummaryArgs< Messaging::IncrementalRefreshTradeSummary48 > TradeSummary48Args
TradeSummaryArgs< Messaging::IncrementalRefreshTradeSummaryLongQty65 > TradeSummary65Args
SecurityDataArgs< Messaging::IncrementalRefreshDailyStatistics49 > DailyStatistics49Args
Instantiation of security data attributes for daily statistics.
SecurityDataArgs< Messaging::IncrementalRefreshBook46, IncrementalRefreshBook46CombinedEntry > MboBookCombined46AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
MessageArgs< Messaging::SnapshotFullRefreshOrderBook53 > SnapshotFullRefreshOrderBook53Args
MessageArgs template instantiation for SnapshotFullRefreshOrderBook53 message type.
MessageArgs< Messaging::InstrumentDefinitionOption55 > InstrumentDefinitionOption55Args
MessageArgs template instantiation for InstrumentDefinitionOption55 message type.
MessageArgs< Messaging::InstrumentDefinitionSpread56 > InstrumentDefinitionSpread56Args
MessageArgs template instantiation for InstrumentDefinitionSpread56 message type.
SecurityDataArgs< Messaging::IncrementalRefreshBookLongQty64 > MbpBook64AtomicUpdateArgs
Instantiation of security data attributes for MBP book atomic updates.
MessageArgs< Messaging::FIX::MultiContainer > MultiContainerArgs
MessageArgs template instantiation for a FIX multi-container.
std::ostream & operator<<(std::ostream &stream, const IssueArgs &args)
SecurityDataArgs< Messaging::IncrementalRefreshVolumeLongQty66 > Volume66Args
Instantiation of security data attributes for volumes.
MbpBook< DirectPriceLevel, MbpBookDepth > DirectBook
Multi-depth (direct) order book.
Definition DirectBook.h:30
BookUpdateErrorArgs< MboBook > MboBookUpdateErrorArgs
Callbacks invoked by Handler to expose market data entities.
virtual void onOpeningPrice(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onTrade(Handler &, const Security &, const TradeSummary65Args &)
virtual void onSettlementPrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onStatus(Handler &, const Security &, const SecurityStatus30Args &)
virtual void onRecovery(Handler &, const Security &, const SnapshotFullRefreshLongQty69Args &)
virtual void onHighestBid(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onHighTradePrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onLimitsAndBanding(Handler &, const Security &, const LimitsAndBanding50Args &)
virtual void onHighTradePrice(Handler &, const Security &, const SessionStatistics51Args &)
virtual void onClearedVolume(Handler &, const Security &, const DailyStatistics49Args &)
virtual void onHighTradePrice(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onLowTradePrice(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const MbpBook64AtomicUpdateArgs &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const MboBook47AtomicUpdateArgs &)
virtual void onLowestOffer(Handler &, const Security &, const SessionStatistics51Args &)
virtual void onOpeningPrice(Handler &, const Security &, const SessionStatistics67Args &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const MboBookCombined46AtomicUpdateArgs &)
virtual void onSettlementPrice(Handler &, const Security &, const DailyStatistics49Args &)
virtual void onBookUpdate(Handler &, const Security &, const ImpliedBook &)
virtual void onGap(Handler &, const Security &, Messaging::UInt32)
virtual Security::UserData onSecurityCreated(Handler &, const Security &)
Invoked when the Security object is created. The returned value is attached to Security::userData.
virtual void onBookAtomicUpdate(Handler &, const Security &, const MboBookCombined64AtomicUpdateArgs &)
virtual void onHighestBid(Handler &, const Security &, const SessionStatistics67Args &)
virtual void onLowTradePrice(Handler &, const Security &, const SessionStatistics51Args &)
virtual void onFixingPrice(Handler &, const Security &, const DailyStatistics49Args &)
virtual void onStatus(Handler &, const Security &, const SnapshotFullRefreshLongQty69Args &)
virtual void onClearedVolume(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const Recovery52EntryArgs &)
Invoked when atomic book update for.
virtual void onHighestBid(Handler &, const Security &, const SessionStatistics51Args &)
virtual void onOpenInterest(Handler &, const Security &, const DailyStatistics49Args &)
virtual void onOpeningPrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionFX63Args &)
Invoked upon instrument definition reception.
virtual void onLowestOffer(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const Recovery69EntryArgs &)
Invoked when atomic book update for.
virtual void onElectronicVolume(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onFixingPrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onClearedVolume(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onLowestOffer(Handler &, const Security &, const SessionStatistics67Args &)
virtual void onLowestOffer(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onBookUpdate(Handler &, const Security &, const MboBook &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const MbpBook46AtomicUpdateArgs &)
virtual void onHighTradePrice(Handler &, const Security &, const SessionStatistics67Args &)
virtual void onQuoteRequest(Handler &, const Security &, const QuoteRequest39RelatedSymArgs &)
virtual void onElectronicVolume(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onOpeningPrice(Handler &, const Security &, const SessionStatistics51Args &)
virtual void onBookAtomicUpdate(Handler &, const Security &, const MboRecovery53EntryArgs &)
Invoked when atomic book update for.
virtual void onLowTradePrice(Handler &, const Security &, const SessionStatistics67Args &)
virtual void onOpenInterest(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onGroupStatus(Handler &, const SecurityStatus30Args &)
virtual void onOpenInterest(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onRecovery(Handler &, const Security &, const SnapshotFullRefreshOrderBook53Args &)
virtual void onBookUpdate(Handler &, const Security &, const DirectBook &)
virtual void onElectronicVolume(Handler &, const Security &, const Volume37Args &)
virtual void onElectronicVolume(Handler &, const Security &, const Volume66Args &)
virtual void onSettlementPrice(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onUndefined(Handler &, Security &)
virtual void onDefinition(Handler &, const Security &, const MultiContainerArgs &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionSpread56Args &)
Invoked upon instrument definition reception.
virtual void onHighestBid(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onBookUpdateError(Handler &, const Security &, const ImpliedBookUpdateErrorArgs &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionFixedIncome57Args &)
Invoked upon instrument definition reception.
virtual void onBookUpdateError(Handler &, const Security &, const DirectBookUpdateErrorArgs &)
virtual void onRecovery(Handler &, const Security &, const SnapshotFullRefresh52Args &)
virtual void onBookUpdateError(Handler &, const Security &, const MboBookUpdateErrorArgs &)
virtual void onTrade(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onLowTradePrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onFixingPrice(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onStatus(Handler &, const Security &, const SnapshotFullRefresh52Args &)
virtual void onBookUpdate(Handler &, const Security &, const ConsolidatedBook &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionFuture54Args &)
Invoked upon instrument definition reception.
virtual void onTrade(Handler &, const Security &, const Recovery52EntryArgs &)
virtual void onTrade(Handler &, const Security &, const TradeSummary48Args &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionOption55Args &)
Invoked upon instrument definition reception.