OnixS Eurex ETI Handler C++ library  9.21.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 Instrument Match Side Group Element.
37 class ONIXS_EUREX_ETI_EXPORT OldBasketInstrmtMatchSideGrpElem
38 {
39 public:
40  /// Initialize default instance.
42 
43  /// The instrument identifier uniquely identifies an instrument in the core system.
45 
46  /// Price of this leg fill.
48 
49  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
51 
52  /// User defined index price.
54 
55  /// Final trade price.
57 
58  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
60 
61  /// Product ID.
63 
64  /// Sub-type of a trade type.
66 
67  /// This field qualifies an instrument type on Eurex.
69 
70  /// Indicates if a trade should be reported via the market reporting service.
72 
73  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
75 
76  /// Transaction effect on a basket.
78 
79  /// User defined text field.
80  std::string tradeReportText;
81 
82  /// Returns string representation.
83  std::string toString() const;
84 
85 private:
86  friend class Serializer;
87  OldBasketInstrmtMatchSideGrpElem(const void* data);
88 };
89 
90 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OldBasketInstrmtMatchSideGrpElem&);
91 
92 /// New Basket Instrument Match Side Group Element.
93 class ONIXS_EUREX_ETI_EXPORT NewBasketInstrmtMatchSideGrpElem
94 {
95 public:
96  /// Initialize default instance.
98 
99  /// The instrument identifier uniquely identifies an instrument in the core system.
101 
102  /// Price of this leg fill.
104 
105  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
107 
108  /// User defined index price.
110 
111  /// Final trade price.
113 
114  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
116 
117  /// Product ID.
119 
120  /// Sub-type of a trade type.
122 
123  /// This field qualifies an instrument type on Eurex.
125 
126  /// Indicates if a trade should be reported via the market reporting service.
128 
129  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
131 
132  /// Transaction effect on a basket.
134 
135  /// User defined text field.
136  std::string tradeReportText;
137 
138  /// Returns string representation.
139  std::string toString() const;
140 
141 private:
142  friend class Serializer;
143  NewBasketInstrmtMatchSideGrpElem(const void* data);
144 };
145 
146 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const NewBasketInstrmtMatchSideGrpElem&);
147 
148 /// Old Basket Side Alloc Group Element.
149 class ONIXS_EUREX_ETI_EXPORT OldBasketSideAllocGrpElem
150 {
151 public:
152  /// Initialize default instance.
154 
155  /// Quantity of the particular trade side in the TES trade.
157 
158  /// Unique identifier for a TES trade side.
160 
161  /// Party sub-type.
163 
164  /// Side of the order.
166 
167  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
168  /// close a position.
170 
171  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
173 
174  /// Status of an allocation in a Trade Entry Service trade.
176 
177  /// Owning business unit name.
178  std::string partyExecutingFirm;
179 
180  /// Owning user name.
181  std::string partyExecutingTrader;
182 
183  /// Returns string representation.
184  std::string toString() const;
185 
186 private:
187  friend class Serializer;
188  OldBasketSideAllocGrpElem(const void* data);
189 };
190 
191 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const OldBasketSideAllocGrpElem&);
192 
193 /// New Basket Side Alloc Group Element.
194 class ONIXS_EUREX_ETI_EXPORT NewBasketSideAllocGrpElem
195 {
196 public:
197  /// Initialize default instance.
199 
200  /// Quantity of the particular trade side in the TES trade.
202 
203  /// Unique identifier for a TES trade side.
205 
206  /// Party sub-type.
208 
209  /// Side of the order.
211 
212  /// Field is used for Eurex position management purposes and indicates whether the order is submitted to open or
213  /// close a position.
215 
216  /// ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
218 
219  /// Status of an allocation in a Trade Entry Service trade.
221 
222  /// Owning business unit name.
223  std::string partyExecutingFirm;
224 
225  /// Owning user name.
226  std::string partyExecutingTrader;
227 
228  /// Returns string representation.
229  std::string toString() const;
230 
231 private:
232  friend class Serializer;
233  NewBasketSideAllocGrpElem(const void* data);
234 };
235 
236 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const NewBasketSideAllocGrpElem&);
237 
238 /// Basket Roll Broadcast Message.
239 class ONIXS_EUREX_ETI_EXPORT BasketRollBroadcast : public Message
240 {
241 public:
242  /// Initialize default instance.
244 
245  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
247 
248  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related
249  /// subscription.
251 
252  /// Is required to define the scope of a Retransmission Request.
254 
255  /// Indicates a retransmission message.
257 
258  /// Identifier for subscription and retransmission of an ETI data stream.
260 
261  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated
262  /// transaction.
264 
265  /// System generated transaction ID for a Basket transaction.
267 
268  /// The product identifier uniquely identifies a Eurex product.
270 
271  /// ID of the Basket profile.
273 
274  /// Indicates if a trade should be reported via the market reporting service.
276 
277  /// Identifies the type of trade notification.
279 
280  /// Receiver of a message.
282 
283  /// Used to indicate anonymized trades in baskets.
285 
286  /// User defined text message field.
288 
289  /// User defined transaction ID. Part of the TES response and TES broadcast.
290  std::string tradeReportId;
291 
292  /// Basket Root Party Group.
293  std::vector<BasketRootPartyGrpElem> basketRootPartyGrp;
294 
295  /// Old Basket Instrument Match Side Group.
296  std::vector<OldBasketInstrmtMatchSideGrpElem> oldBasketInstrmtMatchSideGrp;
297 
298  /// New Basket Instrument Match Side Group.
299  std::vector<NewBasketInstrmtMatchSideGrpElem> newBasketInstrmtMatchSideGrp;
300 
301  /// Old Basket Side Alloc Group.
302  std::vector<OldBasketSideAllocGrpElem> oldBasketSideAllocGrp;
303 
304  /// New Basket Side Alloc Group.
305  std::vector<NewBasketSideAllocGrpElem> newBasketSideAllocGrp;
306 
307  /// Returns template ID.
308  TemplateId::Enum templateId() const;
309 
310  /// Returns string representation.
311  std::string toString() const;
312 
313 private:
314  friend class Serializer;
315  BasketRollBroadcast(const void* data, size_t dataSize, MessageInfo& msgInfo);
316  void nativeSerializeTo(void* nativeMessage);
317 };
318 
319 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const BasketRollBroadcast&);
320 
321 }}} // namespace OnixS::Eurex::Trading
UInt8 instrmtMatchSideId
ID to map element of InstrmtMatchSideGrp and BasketSideAllocGrp.
Enum
Indicates a retransmission message.
Definition: Enumerations.h:76
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
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.
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.
std::vector< BasketRootPartyGrpElem > basketRootPartyGrp
Basket Root Party Group.
Enum
Status of an allocation in a Trade Entry Service trade.
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.
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
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.
std::vector< OldBasketSideAllocGrpElem > oldBasketSideAllocGrp
Old Basket Side Alloc Group.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
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
UInt32 basketExecId
System generated transaction ID for a Basket transaction.
Old Basket Instrument Match Side Group Element.
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.
std::string tradeReportText
User defined text field.
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
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.
Old Basket Side Alloc Group Element.
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
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.
MessageEventSource::Enum messageEventSource
Receiver of a message.