OnixS Eurex ETI Handler C++ library  9.22.0
API documentation
BasketRollBroadcast.h
Go to the documentation of this file.
1 /*
2  * Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3  *
4  * This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5  * and international copyright treaties.
6  *
7  * Access to and use of the software is governed by the terms of the applicable ONIXS Software
8  * Services Agreement (the Agreement) and Customer end user license agreements granting
9  * a non-assignable, non-transferable and non-exclusive license to use the software
10  * for it's own data processing purposes under the terms defined in the Agreement.
11  *
12  * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any
13  * part of this source code or associated reference material to any other location for further
14  * reproduction or redistribution, and any amendments to this copyright notice, are expressly
15  * prohibited.
16  *
17  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
18  * the terms of the Agreement is a violation of copyright law.
19  */
20 
21 #pragma once
22 
25 #include "OnixS/Eurex/Trading/Export.h"
29 
30 #include <iosfwd>
31 #include <string>
32 #include <vector>
33 
34 namespace OnixS { namespace Eurex { namespace Trading {
35 
36 /// Old Basket Data BC Group.
37 class ONIXS_EUREX_ETI_EXPORT OldBasketDataBCGrp
38 {
39 public:
40  /// Initialize default instance.
42 
43  /// Timestamp of the match event (trade).
45 
46  /// System defined Basket ID.
48 
49  /// System defined Original Basket ID.
51 
52  /// User defined transaction ID. Part of the TES response and TES broadcast.
53  std::string tradeReportId;
54 
55  /// Month year code for expiry YYYYMM.
57 
58  /// Indicates whether the counterparties have the right for early termination.
60 
61  /// Basket operation.
63 
64  /// User defined text message field.
65  std::string basketTradeReportText;
66 
67  /// Returns string representation.
68  std::string toString() const;
69 
70 private:
71  friend class Serializer;
72  OldBasketDataBCGrp(const void* data);
73 };
74 
75 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OldBasketDataBCGrp&);
76 
77 /// New Basket Data BC Group.
78 class ONIXS_EUREX_ETI_EXPORT NewBasketDataBCGrp
79 {
80 public:
81  /// Initialize default instance.
83 
84  /// Timestamp of the match event (trade).
86 
87  /// System defined Basket ID.
89 
90  /// System defined Original Basket ID.
92 
93  /// User defined transaction ID. Part of the TES response and TES broadcast.
94  std::string tradeReportId;
95 
96  /// Month year code for expiry YYYYMM.
98 
99  /// Indicates whether the counterparties have the right for early termination.
101 
102  /// Basket operation.
104 
105  /// User defined text message field.
107 
108  /// Returns string representation.
109  std::string toString() const;
110 
111 private:
112  friend class Serializer;
113  NewBasketDataBCGrp(const void* data);
114 };
115 
116 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const NewBasketDataBCGrp&);
117 
118 /// Old Basket Instrument Match Side Group Element.
119 class ONIXS_EUREX_ETI_EXPORT OldBasketInstrmtMatchSideGrpElem
120 {
121 public:
122  /// Initialize default instance.
124 
125  /// The instrument identifier uniquely identifies an instrument in the core system.
127 
128  /// Price of this leg fill.
130 
131  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
133 
134  /// User defined index price.
136 
137  /// Final trade price.
139 
140  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
142 
143  /// Product ID.
145 
146  /// Sub-type of a trade type.
148 
149  /// This field qualifies an instrument type on Eurex.
151 
152  /// Indicates if a trade should be reported via the market reporting service.
154 
155  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
157 
158  /// Transaction effect on a basket.
160 
161  /// User defined text field.
162  std::string tradeReportText;
163 
164  /// Returns string representation.
165  std::string toString() const;
166 
167 private:
168  friend class Serializer;
169  OldBasketInstrmtMatchSideGrpElem(const void* data);
170 };
171 
172 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OldBasketInstrmtMatchSideGrpElem&);
173 
174 /// New Basket Instrument Match Side Group Element.
175 class ONIXS_EUREX_ETI_EXPORT NewBasketInstrmtMatchSideGrpElem
176 {
177 public:
178  /// Initialize default instance.
180 
181  /// The instrument identifier uniquely identifies an instrument in the core system.
183 
184  /// Price of this leg fill.
186 
187  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
189 
190  /// User defined index price.
192 
193  /// Final trade price.
195 
196  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
198 
199  /// Product ID.
201 
202  /// Sub-type of a trade type.
204 
205  /// This field qualifies an instrument type on Eurex.
207 
208  /// Indicates if a trade should be reported via the market reporting service.
210 
211  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
213 
214  /// Transaction effect on a basket.
216 
217  /// User defined text field.
218  std::string tradeReportText;
219 
220  /// Returns string representation.
221  std::string toString() const;
222 
223 private:
224  friend class Serializer;
225  NewBasketInstrmtMatchSideGrpElem(const void* data);
226 };
227 
228 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const NewBasketInstrmtMatchSideGrpElem&);
229 
230 /// Old Basket Side Alloc Group Element.
231 class ONIXS_EUREX_ETI_EXPORT OldBasketSideAllocGrpElem
232 {
233 public:
234  /// Initialize default instance.
236 
237  /// Quantity of the particular trade side in the TES trade.
239 
240  /// Unique identifier for a TES trade side.
242 
243  /// Party sub-type.
245 
246  /// Side of the order.
248 
249  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
250  /// close a position.
252 
253  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
255 
256  /// Status of an allocation in a Trade Entry Service trade.
258 
259  /// Owning business unit name.
260  std::string partyExecutingFirm;
261 
262  /// Owning user name.
263  std::string partyExecutingTrader;
264 
265  /// Returns string representation.
266  std::string toString() const;
267 
268 private:
269  friend class Serializer;
270  OldBasketSideAllocGrpElem(const void* data);
271 };
272 
273 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OldBasketSideAllocGrpElem&);
274 
275 /// New Basket Side Alloc Group Element.
276 class ONIXS_EUREX_ETI_EXPORT NewBasketSideAllocGrpElem
277 {
278 public:
279  /// Initialize default instance.
281 
282  /// Quantity of the particular trade side in the TES trade.
284 
285  /// Unique identifier for a TES trade side.
287 
288  /// Party sub-type.
290 
291  /// Side of the order.
293 
294  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
295  /// close a position.
297 
298  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
300 
301  /// Status of an allocation in a Trade Entry Service trade.
303 
304  /// Owning business unit name.
305  std::string partyExecutingFirm;
306 
307  /// Owning user name.
308  std::string partyExecutingTrader;
309 
310  /// Returns string representation.
311  std::string toString() const;
312 
313 private:
314  friend class Serializer;
315  NewBasketSideAllocGrpElem(const void* data);
316 };
317 
318 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const NewBasketSideAllocGrpElem&);
319 
320 /// Basket Roll Broadcast Message.
321 class ONIXS_EUREX_ETI_EXPORT BasketRollBroadcast : public Message
322 {
323 public:
324  /// Initialize default instance.
326 
327  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
329 
330  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related
331  /// subscription.
333 
334  /// Is required to define the scope of a Retransmission Request.
336 
337  /// Indicates a retransmission message.
339 
340  /// Identifier for subscription and retransmission of an ETI data stream.
342 
343  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated
344  /// transaction.
346 
347  /// System generated transaction ID for a Basket transaction.
349 
350  /// The product identifier uniquely identifies a Eurex product.
352 
353  /// ID of the Basket profile.
355 
356  /// Indicates if a trade should be reported via the market reporting service.
358 
359  /// Identifies the type of trade notification.
361 
362  /// Receiver of a message.
364 
365  /// Used to indicate anonymized trades in baskets.
367 
368  /// User defined text message field.
370 
371  /// User defined transaction ID. Part of the TES response and TES broadcast.
372  std::string tradeReportId;
373 
374  /// Basket Root Party Group.
375  std::vector<BasketRootPartyGrpElem> basketRootPartyGrp;
376 
377  /// Old Basket Data BC Group.
379 
380  /// New Basket Data BC Group.
382 
383  /// Old Basket Instrument Match Side Group.
384  std::vector<OldBasketInstrmtMatchSideGrpElem> oldBasketInstrmtMatchSideGrp;
385 
386  /// New Basket Instrument Match Side Group.
387  std::vector<NewBasketInstrmtMatchSideGrpElem> newBasketInstrmtMatchSideGrp;
388 
389  /// Old Basket Side Alloc Group.
390  std::vector<OldBasketSideAllocGrpElem> oldBasketSideAllocGrp;
391 
392  /// New Basket Side Alloc Group.
393  std::vector<NewBasketSideAllocGrpElem> newBasketSideAllocGrp;
394 
395  /// Returns template ID.
396  TemplateId::Enum templateId() const;
397 
398  /// Returns string representation.
399  std::string toString() const;
400 
401 private:
402  friend class Serializer;
403  BasketRollBroadcast(const void* data, size_t dataSize, MessageInfo& msgInfo);
404  void nativeSerializeTo(void* nativeMessage);
405 };
406 
407 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const BasketRollBroadcast&);
408 
409 }}}
UInt8 instrmtMatchSideId
ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
Enum
Indicates a retransmission message.
Definition: Enumerations.h:76
UInt64 origBasketTrdMatchId
System defined Original Basket ID.
PartySubIdType::Enum partySubIdType
Party sub-type.
std::string partyExecutingFirm
Owning business unit name.
Enum
Used to indicate anonymized trades in baskets.
Definition: Enumerations.h:171
std::string basketTradeReportText
User defined text message field.
UInt64 basketTrdMatchId
System defined Basket ID.
TrdType::Enum trdType
Indicates if a trade should be reported via the market reporting service.
TradePublishIndicator::Enum tradePublishIndicator
Indicates if a trade should be reported via the market reporting service.
TradeAllocStatus::Enum tradeAllocStatus
Status of an allocation in a Trade Entry Service trade.
std::vector< NewBasketSideAllocGrpElem > newBasketSideAllocGrp
New Basket Side Alloc Group.
unsigned char UInt8
Definition: Defines.h:43
Enum
Side of the order.
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
UInt32 basketProfileId
ID of the Basket profile.
SideTrdSubTyp::Enum sideTrdSubTyp
Sub-type of a trade type.
UInt8 instrmtMatchSideId
ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
EffectOnBasket::Enum effectOnBasket
Transaction effect on a basket.
unsigned long long UInt64
Definition: Defines.h:46
Enum
Indicates if a trade should be reported via the market reporting service.
UInt32 packageId
Identifier for a Trade Entry Service trade, i.e TES trade ID.
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
signed int SInt32
Definition: Defines.h:41
UInt64 transBkdTime
Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System...
Enum
This field qualifies an instrument type on Eurex.
UInt32 individualAllocId
Unique identifier for a TES trade side.
Enum
Indicates if a trade should be reported via the market reporting service.
UInt64 transactTime
Timestamp of the match event (trade).
std::vector< BasketRootPartyGrpElem > basketRootPartyGrp
Basket Root Party Group.
OptionalEarlyTerminationIndicator::Enum optionalEarlyTerminationIndicator
Indicates whether the counterparties have the right for early termination.
Enum
Status of an allocation in a Trade Entry Service trade.
UInt32 maturityMonthYear
Month year code for expiry YYYYMM.
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
BasketAnonymity::Enum basketAnonymity
Used to indicate anonymized trades in baskets.
Message base class.
Definition: Message.h:32
New Basket Instrument Match Side Group Element.
UInt8 instrmtMatchSideId
ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
SideTrdSubTyp::Enum sideTrdSubTyp
Sub-type of a trade type.
PartySubIdType::Enum partySubIdType
Party sub-type.
std::string basketTradeReportText
User defined text message field.
unsigned int UInt32
Definition: Defines.h:45
UInt64 transBkdTime
Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System...
signed long long SInt64
Definition: Defines.h:42
BasketTradeReportType::Enum basketTradeReportType
Basket operation.
Enum
Transaction effect on a basket.
Definition: Enumerations.h:367
TradeReportType::Enum tradeReportType
Identifies the type of trade notification.
UInt8 instrmtMatchSideId
ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
std::ostream & operator<<(std::ostream &, ConnectionState::Enum)
Make it printable using C++ I/O streams.
SInt64 allocQty
Quantity of the particular trade side in the TES trade.
std::string basketTradeReportText
User defined text message field.
UInt64 basketTrdMatchId
System defined Basket ID.
std::vector< OldBasketSideAllocGrpElem > oldBasketSideAllocGrp
Old Basket Side Alloc Group.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
std::vector< NewBasketInstrmtMatchSideGrpElem > newBasketInstrmtMatchSideGrp
New Basket Instrument Match Side Group.
UInt16 partitionId
Is required to define the scope of a Retransmission Request.
UInt32 packageId
Identifier for a Trade Entry Service trade, i.e TES trade ID.
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
Enum
Identifier for subscription and retransmission of an ETI data stream.
Definition: Enumerations.h:33
UInt64 origBasketTrdMatchId
System defined Original Basket ID.
UInt32 basketExecId
System generated transaction ID for a Basket transaction.
Old Basket Instrument Match Side Group Element.
Enum
Indicates whether the counterparties have the right for early termination.
SInt64 allocQty
Quantity of the particular trade side in the TES trade.
Enum
Sub-type of a trade type.
UInt32 individualAllocId
Unique identifier for a TES trade side.
UInt64 applSeqNum
Message sequence number assigned to a non-order related Eurex ETI data stream.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
OldBasketDataBCGrp oldBasketDataBCGrp
Old Basket Data BC Group.
OptionalEarlyTerminationIndicator::Enum optionalEarlyTerminationIndicator
Indicates whether the counterparties have the right for early termination.
Enum
Identifies the type of trade notification.
unsigned short UInt16
Definition: Defines.h:44
EffectOnBasket::Enum effectOnBasket
Transaction effect on a basket.
New Basket Side Alloc Group Element.
NewBasketDataBCGrp newBasketDataBCGrp
New Basket Data BC Group.
Old Basket Side Alloc Group Element.
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
UInt64 transactTime
Timestamp of the match event (trade).
TradePublishIndicator::Enum tradePublishIndicator
Indicates if a trade should be reported via the market reporting service.
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
std::vector< OldBasketInstrmtMatchSideGrpElem > oldBasketInstrmtMatchSideGrp
Old Basket Instrument Match Side Group.
std::string partyExecutingFirm
Owning business unit name.
TradeAllocStatus::Enum tradeAllocStatus
Status of an allocation in a Trade Entry Service trade.
BasketTradeReportType::Enum basketTradeReportType
Basket operation.
UInt32 maturityMonthYear
Month year code for expiry YYYYMM.
MessageEventSource::Enum messageEventSource
Receiver of a message.