OnixS C++ CME MDP Premium Market Data Handler 5.9.0
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
27
29
32
34
37
41template <class Container, class Data = typename Container::Entry>
43{
44public:
47 typedef Container Message;
48
51 typedef Data Entry;
52
56 : entry_(entry)
57 , message_(message)
58 , packet_(packet)
59 {
60 }
61
63 explicit SecurityDataArgs(const SecurityDataArgs& other)
64 : entry_(other.entry_)
65 , message_(other.message_)
66 , packet_(other.packet_)
67 {
68 }
69
72 const NetPacket& packet() const
73 {
74 return packet_;
75 }
76
78 const Message& message() const
79 {
80 return message_;
81 }
82
84 const Entry& entry() const
85 {
86 return entry_;
87 }
88
89private:
90 Data entry_;
91 Container message_;
92 const NetPacket& packet_;
93
95 SecurityDataArgs& operator=(const SecurityDataArgs&);
96};
97
98namespace {
100inline const TradeOrderIds& nullOrders()
101{
102 static const TradeOrderIds theNull;
103
104 return theNull;
105}
106} // namespace
107
109template <class Summary, class Data = typename Summary::Entry>
110class TradeSummaryArgs : public SecurityDataArgs<Summary, Data>
111{
112public:
114
117 typedef typename Base::Message Message;
118
120 typedef typename Base::Entry Entry;
121
124
127 const NetPacket& packet,
128 const Message& message,
129 const Entry& entry,
130 const OrderIds& ids = nullOrders()
131 )
133 , orderIds_(ids)
134 {
135 }
136
139 : Base(static_cast<const Base&>(other))
140 , orderIds_(other.orderIds_)
141 {
142 }
143
150 const OrderIds& orderIds() const
151 {
152 return orderIds_;
153 }
154
155private:
156 const TradeOrderIds& orderIds_;
157
158 TradeSummaryArgs& operator=(const TradeSummaryArgs&);
159};
160
162
164
167
170
173
177
181
184
187
190
193
196
199
202
205
208
211
213template <class Book>
215{
216public:
219 BookUpdateErrorArgs(const Book& book, const std::string& description)
220 : book_(book)
221 , description_(description)
222 {
223 }
224
226 const Book& book() const
227 {
228 return book_;
229 }
230
232 const std::string& description() const
233 {
234 return description_;
235 }
236
237private:
238 const Book& book_;
239 const std::string& description_;
240
242
243 BookUpdateErrorArgs& operator=(const BookUpdateErrorArgs&);
244};
245
249
253
257
260{
263 virtual void onReset(Handler&) {}
264
267
270
273
276
279
282 virtual void onDefinition(Handler&, const Security&, const FIX::MultiContainerArgs&) {}
283
287 virtual void onUndefined(Handler&, Security&) {}
288
292 virtual void onRecovery(Handler&, const Security&, const SnapshotFullRefresh52Args&) {}
293
297 virtual void onRecovery(Handler&, const Security&, const SnapshotFullRefresh69Args&) {}
298
303
306 virtual void onTrade(Handler&, const Security&, const Recovery52EntryArgs&) {}
307
310 virtual void onTrade(Handler&, const Security&, const Recovery69EntryArgs&) {}
311
314 virtual void onTrade(Handler&, const Security&, const TradeSummary48Args&) {}
315
318 virtual void onTrade(Handler&, const Security&, const TradeSummary65Args&) {}
319
322 virtual void onElectronicVolume(Handler&, const Security&, const Recovery52EntryArgs&) {}
323
326 virtual void onElectronicVolume(Handler&, const Security&, const Recovery69EntryArgs&) {}
327
330 virtual void onElectronicVolume(Handler&, const Security&, const Volume37Args&) {}
331
334 virtual void onElectronicVolume(Handler&, const Security&, const Volume66Args&) {}
335
337 // the security is recovered from snapshot.
339
341 // the security is recovered from snapshot.
342 virtual void onBookAtomicUpdate(Handler&, const Security&, const Recovery52EntryArgs&) {}
343
345 // the security is recovered from snapshot.
346 virtual void onBookAtomicUpdate(Handler&, const Security&, const Recovery69EntryArgs&) {}
347
351
355
359
363
367
376 virtual void onBookUpdate(Handler&, const Security&, const MboBook&) {}
377
386 virtual void onBookUpdate(Handler&, const Security&, const DirectBook&) {}
387
396 virtual void onBookUpdate(Handler&, const Security&, const ImpliedBook&) {}
397
406 virtual void onBookUpdate(Handler&, const Security&, const ConsolidatedBook&) {}
407
411
415
419
422 virtual void onSettlementPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
423
426 virtual void onSettlementPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
427
430 virtual void onSettlementPrice(Handler&, const Security&, const DailyStatistics49Args&) {}
431
434 virtual void onClearedVolume(Handler&, const Security&, const Recovery52EntryArgs&) {}
435
438 virtual void onClearedVolume(Handler&, const Security&, const Recovery69EntryArgs&) {}
439
442 virtual void onClearedVolume(Handler&, const Security&, const DailyStatistics49Args&) {}
443
446 virtual void onOpenInterest(Handler&, const Security&, const Recovery52EntryArgs&) {}
447
450 virtual void onOpenInterest(Handler&, const Security&, const Recovery69EntryArgs&) {}
451
454 virtual void onOpenInterest(Handler&, const Security&, const DailyStatistics49Args&) {}
455
458 virtual void onFixingPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
459
462 virtual void onFixingPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
463
466 virtual void onFixingPrice(Handler&, const Security&, const DailyStatistics49Args&) {}
467
470 virtual void onOpeningPrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
471
474 virtual void onOpeningPrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
475
478 virtual void onOpeningPrice(Handler&, const Security&, const SessionStatistics51Args&) {}
479
482 virtual void onOpeningPrice(Handler&, const Security&, const SessionStatistics67Args&) {}
483
486 virtual void onHighTradePrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
487
490 virtual void onHighTradePrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
491
492
496
500
503 virtual void onLowTradePrice(Handler&, const Security&, const Recovery52EntryArgs&) {}
504
507 virtual void onLowTradePrice(Handler&, const Security&, const Recovery69EntryArgs&) {}
508
511 virtual void onLowTradePrice(Handler&, const Security&, const SessionStatistics51Args&) {}
512
515 virtual void onLowTradePrice(Handler&, const Security&, const SessionStatistics67Args&) {}
516
519 virtual void onHighestBid(Handler&, const Security&, const Recovery52EntryArgs&) {}
520
523 virtual void onHighestBid(Handler&, const Security&, const Recovery69EntryArgs&) {}
524
527 virtual void onHighestBid(Handler&, const Security&, const SessionStatistics51Args&) {}
528
531 virtual void onHighestBid(Handler&, const Security&, const SessionStatistics67Args&) {}
532
535 virtual void onLowestOffer(Handler&, const Security&, const Recovery52EntryArgs&) {}
536
539 virtual void onLowestOffer(Handler&, const Security&, const Recovery69EntryArgs&) {}
540
543 virtual void onLowestOffer(Handler&, const Security&, const SessionStatistics51Args&) {}
544
547 virtual void onLowestOffer(Handler&, const Security&, const SessionStatistics67Args&) {}
548
552
556
559 virtual void onStatus(Handler&, const Security&, const SnapshotFullRefresh52Args&) {}
560
563 virtual void onStatus(Handler&, const Security&, const SnapshotFullRefresh69Args&) {}
564
567 virtual void onStatus(Handler&, const Security&, const SecurityStatus30Args&) {}
568
572
575 virtual void onGap(Handler&, const Security&, UInt32) {}
576
579 {
580 return Security::UserData(0);
581 }
582};
583
584template <class Book>
585std::ostream& operator<<(std::ostream& stream, const BookUpdateErrorArgs<Book>& args)
586{
587 return stream << args.description();
588}
589
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition Bootstrap.h:67
#define ONIXS_CMEMDH_EXPORTED_CLASS_DECL(typeName)
Definition Bootstrap.h:35
#define ONIXS_CMEMDH_NAMESPACE_END
Definition Bootstrap.h:68
#define ONIXS_CMEMDH_EXPORTED
Definition Compiler.h:171
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:30
UInt64 UserData
User-defined data to be attached.
Definition Security.h:90
Attributes of trade summary.
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
MessageArgs< MultiContainer > MultiContainerArgs
MessageArgs template instantiation for a FIX multi-container.
BookUpdateErrorArgs< DirectBook > DirectBookUpdateErrorArgs
SecurityDataArgs< IncrementalRefreshBookLongQty64 > MbpBook64AtomicUpdateArgs
Instantiation of security data attributes for MBP book atomic updates.
MessageArgs< SnapshotFullRefreshLongQty69 > SnapshotFullRefresh69Args
TradeSummaryArgs< IncrementalRefreshTradeSummaryLongQty65 > TradeSummary65Args
SecurityDataArgs< IncrementalRefreshBookLongQty64, IncrementalRefreshBook64CombinedEntry > MboBookCombined64AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
MbpBook< ImpliedPriceLevel, MbpBookDepth > ImpliedBook
Defines implied book.
Definition ImpliedBook.h:30
MessageArgs< InstrumentDefinitionFixedIncome57 > InstrumentDefinitionFixedIncome57Args
MessageArgs< InstrumentDefinitionFX63 > InstrumentDefinitionFX63Args
SecurityDataArgs< IncrementalRefreshSessionStatistics51 > SessionStatistics51Args
Instantiation of security data attributes for session statistics.
SecurityDataArgs< IncrementalRefreshVolumeLongQty66 > Volume66Args
Instantiation of security data attributes for volumes.
SecurityDataArgs< IncrementalRefreshBook46 > MbpBook46AtomicUpdateArgs
Instantiation of security data attributes for MBP book atomic updates.
MbpBook< ConsolidatedPriceLevel, MbpBookDepth > ConsolidatedBook
MessageArgs< SecurityStatus30 > SecurityStatus30Args
BookUpdateErrorArgs< ImpliedBook > ImpliedBookUpdateErrorArgs
SecurityDataArgs< IncrementalRefreshDailyStatistics49 > DailyStatistics49Args
Instantiation of security data attributes for daily statistics.
SecurityDataArgs< IncrementalRefreshLimitsBanding50 > LimitsAndBanding50Args
Instantiation of security data attributes for limits and banding.
SecurityDataArgs< IncrementalRefreshBook46, IncrementalRefreshBook46CombinedEntry > MboBookCombined46AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
SecurityDataArgs< IncrementalRefreshOrderBook47 > MboBook47AtomicUpdateArgs
Instantiation of security data attributes for MBO book atomic updates.
MessageArgs< SnapshotFullRefresh52 > SnapshotFullRefresh52Args
TradeSummaryArgs< IncrementalRefreshTradeSummary48 > TradeSummary48Args
UInt32 UInt32
uInt32.
Definition Fields.h:202
SecurityDataArgs< SnapshotFullRefreshOrderBook53 > MboRecovery53EntryArgs
Instantiation of security data attributes for MBO recovery data.
SecurityDataArgs< SnapshotFullRefreshLongQty69 > Recovery69EntryArgs
Instantiation of security data attributes for recovery data.
SecurityDataArgs< IncrementalRefreshVolume37 > Volume37Args
Instantiation of security data attributes for volumes.
SecurityDataArgs< IncrementalRefreshSessionStatisticsLongQty67 > SessionStatistics67Args
Instantiation of security data attributes for session statistics.
MessageArgs< InstrumentDefinitionOption55 > InstrumentDefinitionOption55Args
MessageArgs< InstrumentDefinitionSpread56 > InstrumentDefinitionSpread56Args
SecurityDataArgs< SnapshotFullRefresh52 > Recovery52EntryArgs
Instantiation of security data attributes for recovery data.
MessageArgs< SnapshotFullRefreshOrderBook53 > SnapshotFullRefreshOrderBook53Args
SecurityDataArgs< QuoteRequest39, QuoteRequest39::RelatedSymEntry > QuoteRequest39RelatedSymArgs
Instantiation of security data attributes for quote request related symbols.
std::ostream & operator<<(std::ostream &stream, const IssueArgs &args)
MessageArgs< InstrumentDefinitionFuture54 > InstrumentDefinitionFuture54Args
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 onDefinition(Handler &, const Security &, const FIX::MultiContainerArgs &)
virtual void onSettlementPrice(Handler &, const Security &, const Recovery69EntryArgs &)
virtual void onStatus(Handler &, const Security &, const SecurityStatus30Args &)
virtual void onGap(Handler &, const Security &, UInt32)
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 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 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 onStatus(Handler &, const Security &, const SnapshotFullRefresh69Args &)
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 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 onRecovery(Handler &, const Security &, const SnapshotFullRefresh69Args &)
virtual void onDefinition(Handler &, const Security &, const InstrumentDefinitionOption55Args &)
Invoked upon instrument definition reception.