OnixS Eurex ETI Handler C++ library  9.19.0
API documentation
TESBroadcast.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 part
13  * of this source code or associated reference material to any other location for further reproduction
14  * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15  *
16  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17  * the terms of the Agreement is a violation of copyright law.
18  */
19 
20 #pragma once
21 
22 #include "OnixS/Eurex/Trading/Export.h"
28 
29 #include <iosfwd>
30 #include <string>
31 #include <vector>
32 
33 namespace OnixS {
34 namespace Eurex {
35 namespace Trading {
36 
37 /// Side Alloc Group B C Element.
38 class ONIXS_EUREX_ETI_EXPORT SideAllocGrpBCElem
39 {
40 public:
41  /// Initialize default instance.
43 
44  /// Quantity of the particular trade side in the TES trade.
46 
47  /// Reversal approval time.
49 
50  /// Unique identifier for a TES trade side.
52 
53  /// Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
55 
56  /// Owning business unit name.
57  std::string partyExecutingFirm;
58 
59  /// Owning user name.
60  std::string partyExecutingTrader;
61 
62  /// Side of the order.
64 
65  /// Status of an allocation in a Trade Entry Service trade.
67 
68  /// Returns string representation.
69  std::string toString () const;
70 
71 private:
72  friend class Serializer;
73  SideAllocGrpBCElem (const void* data);
74 };
75 
76 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const SideAllocGrpBCElem&);
77 
78 /// Trd Clearing Price Leg Group Element.
79 class ONIXS_EUREX_ETI_EXPORT TrdClearingPriceLegGrpElem
80 {
81 public:
82  /// Initialize default instance.
84 
85  /// Instrument identifiier of the leg security.
87 
88  /// Price in clearing notation which can be preliminary or final depending on TradeReportType (856).
90 
91  /// Returns string representation.
92  std::string toString () const;
93 
94 private:
95  friend class Serializer;
96  TrdClearingPriceLegGrpElem (const void* data);
97 };
98 
99 ONIXS_EUREX_ETI_EXPORT std::ostream& operator << (std::ostream&, const TrdClearingPriceLegGrpElem&);
100 
101 /// TES Broadcast Message.
102 class ONIXS_EUREX_ETI_EXPORT TESBroadcast : public Message
103 {
104 public:
105  /// Initialize default instance.
106  TESBroadcast ();
107 
108  /// Message sequence number assigned to a non-order related Eurex ETI data stream.
110 
111  /// Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to the related subscription.
113 
114  /// Is required to define the scope of a Retransmission Request.
116 
117  /// Indicates a retransmission message.
119 
120  /// Identifier for subscription and retransmission of an ETI data stream.
122 
123  /// Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one dedicated transaction.
125 
126  /// The instrument identifier uniquely identifies an instrument in the core system.
128 
129  /// Price of this leg fill.
131 
132  /// Timestamp of the match event (trade).
134 
135  /// Underlying price associate with a derivative instrument.
137 
138  /// Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System.
140 
141  /// User defined index price.
143 
144  /// Quantity of the related trade.
146 
147  /// Instrument identifier of the originating Eurex strategy.
149 
150  /// Price of the related instrument.
152 
153  /// Nominal value.
155 
156  /// The product identifier uniquely identifies a Eurex product.
158 
159  /// Identifier for a Trade Entry Service trade, i.e TES trade ID.
161 
162  /// System transaction identifier for a Trade Entry Service transaction.
164 
165  /// Date the underlying instrument will settle.
167 
168  /// Underlying security's maturity date.
170 
171  /// Identifier of a related trade.
173 
174  /// Identifies a related product.
176 
177  /// Auto Approval rule id - only in case of erroneous Auto Approval processing.
179 
180  /// Indicates if a trade should be reported via the market reporting service.
182 
183  /// Identifies the type of trade notification.
185 
186  /// SRQS deal status.
188 
189  /// This field qualifies an instrument type on Eurex.
191 
192  /// Indicates if a trade should be reported via the market reporting service.
194 
195  /// Settlement institution.
197 
198  /// Hedging method.
200 
201  /// Swap clearer for EFS Trades only.
203 
204  /// Receiver of a message.
206 
207  /// User defined text field.
208  std::string tradeReportText;
209 
210  /// User defined transaction ID. Part of the TES response and TES broadcast.
211  std::string tradeReportId;
212 
213  /// Participant Short Name.
215 
216  /// Owning User Short Name.
218 
219  /// Underlying security's ID.
220  std::string underlyingSecurityId;
221 
222  /// Description of the Underlying security.
224 
225  /// Underlying security's currency.
226  std::string underlyingCurrency;
227 
228  /// The issuer or name of the underlying security.
229  std::string underlyingIssuer;
230 
231  /// Text.
232  std::string varText;
233 
234  /// Side Alloc Group B C.
235  std::vector<SideAllocGrpBCElem> sideAllocGrpBC;
236 
237  /// Trd Instrmnt Leg Group.
238  std::vector<TrdInstrmntLegGrpElem> trdInstrmntLegGrp;
239 
240  /// Instrument Event Group.
241  std::vector<InstrumentEventGrpElem> instrumentEventGrp;
242 
243  /// Trd Clearing Price Leg Group.
244  std::vector<TrdClearingPriceLegGrpElem> trdClearingPriceLegGrp;
245 
246  /// Instrument Attribute Group.
247  std::vector<InstrumentAttributeGrpElem> instrumentAttributeGrp;
248 
249  /// Underlying Stip Group.
250  std::vector<UnderlyingStipGrpElem> underlyingStipGrp;
251 
252  /// Returns template ID.
253  TemplateId::Enum templateId () const;
254 
255  /// Returns string representation.
256  std::string toString () const;
257 
258 private:
259  friend class Serializer;
260  TESBroadcast (const void* data, size_t dataSize, MessageInfo& msgInfo);
261  void nativeSerializeTo (void* nativeMessage);
262 };
263 
264 ONIXS_EUREX_ETI_EXPORT std::ostream& operator<<(std::ostream&, const TESBroadcast&);
265 
266 }
267 }
268 }
SInt64 securityId
The instrument identifier uniquely identifies an instrument in the core system.
Definition: TESBroadcast.h:127
std::string underlyingSecurityId
Underlying security&#39;s ID.
Definition: TESBroadcast.h:220
Enum
Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one...
Definition: Enumerations.h:661
Enum
Indicates a retransmission message.
Definition: Enumerations.h:71
std::vector< UnderlyingStipGrpElem > underlyingStipGrp
Underlying Stip Group.
Definition: TESBroadcast.h:250
UInt32 packageId
Identifier for a Trade Entry Service trade, i.e TES trade ID.
Definition: TESBroadcast.h:160
UInt64 transactTime
Timestamp of the match event (trade).
Definition: TESBroadcast.h:133
std::vector< InstrumentAttributeGrpElem > instrumentAttributeGrp
Instrument Attribute Group.
Definition: TESBroadcast.h:247
SInt64 allocQty
Quantity of the particular trade side in the TES trade.
Definition: TESBroadcast.h:45
TrdType::Enum trdType
Indicates if a trade should be reported via the market reporting service.
Definition: TESBroadcast.h:181
SInt64 relatedClosePrice
User defined index price.
Definition: TESBroadcast.h:142
Enum
Side of the order.
std::vector< SideAllocGrpBCElem > sideAllocGrpBC
Side Alloc Group B C.
Definition: TESBroadcast.h:235
std::string tradeReportText
User defined text field.
Definition: TESBroadcast.h:208
SInt64 relatedSecurityId
Instrument identifier of the originating Eurex strategy.
Definition: TESBroadcast.h:148
SInt64 lastPx
Price of this leg fill.
Definition: TESBroadcast.h:130
std::string underlyingCurrency
Underlying security&#39;s currency.
Definition: TESBroadcast.h:226
unsigned long long UInt64
Definition: Defines.h:47
Enum
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.
Definition: TESBroadcast.h:66
SInt32 relatedMarketSegmentId
Identifies a related product.
Definition: TESBroadcast.h:175
ApplResendFlag::Enum applResendFlag
Indicates a retransmission message.
Definition: TESBroadcast.h:118
LastFragment::Enum lastFragment
Indicates whether this message is the last fragment (part) of a sequence of messages belonging to one...
Definition: TESBroadcast.h:124
ApplId::Enum applId
Identifier for subscription and retransmission of an ETI data stream.
Definition: TESBroadcast.h:121
signed int SInt32
Definition: Defines.h:42
Enum
This field qualifies an instrument type on Eurex.
Side Alloc Group B C Element.
Definition: TESBroadcast.h:38
Enum
Swap clearer for EFS Trades only.
std::string partyExecutingTrader
Owning user name.
Definition: TESBroadcast.h:60
UInt32 applSubId
Unique ID assigned by the Eurex system during broadcast subscription in order to link broadcasts to t...
Definition: TESBroadcast.h:112
Enum
Indicates if a trade should be reported via the market reporting service.
std::string underlyingIssuer
The issuer or name of the underlying security.
Definition: TESBroadcast.h:229
UInt32 underlyingSettlementDate
Date the underlying instrument will settle.
Definition: TESBroadcast.h:166
Enum
Status of an allocation in a Trade Entry Service trade.
UInt32 tesExecId
System transaction identifier for a Trade Entry Service transaction.
Definition: TESBroadcast.h:163
ProductComplex::Enum productComplex
This field qualifies an instrument type on Eurex.
Definition: TESBroadcast.h:190
UInt64 applSeqNum
Message sequence number assigned to a non-order related Eurex ETI data stream.
Definition: TESBroadcast.h:109
UInt32 relatedTradeId
Identifier of a related trade.
Definition: TESBroadcast.h:172
Message base class.
Definition: Message.h:33
TrdRptStatus::Enum trdRptStatus
SRQS deal status.
Definition: TESBroadcast.h:187
PartyIdSettlementLocation::Enum partyIdSettlementLocation
Settlement institution.
Definition: TESBroadcast.h:196
std::vector< TrdClearingPriceLegGrpElem > trdClearingPriceLegGrp
Trd Clearing Price Leg Group.
Definition: TESBroadcast.h:244
SInt64 relatedTradeQuantity
Quantity of the related trade.
Definition: TESBroadcast.h:145
SInt64 legClearingTradePrice
Price in clearing notation which can be preliminary or final depending on TradeReportType (856)...
Definition: TESBroadcast.h:89
TradePublishIndicator::Enum tradePublishIndicator
Indicates if a trade should be reported via the market reporting service.
Definition: TESBroadcast.h:193
UInt32 individualAllocId
Unique identifier for a TES trade side.
Definition: TESBroadcast.h:51
std::vector< TrdInstrmntLegGrpElem > trdInstrmntLegGrp
Trd Instrmnt Leg Group.
Definition: TESBroadcast.h:238
HedgeType::Enum hedgeType
Hedging method.
Definition: TESBroadcast.h:199
std::string underlyingSecurityDesc
Description of the Underlying security.
Definition: TESBroadcast.h:223
TradeReportType::Enum tradeReportType
Identifies the type of trade notification.
Definition: TESBroadcast.h:184
Trd Clearing Price Leg Group Element.
Definition: TESBroadcast.h:79
unsigned int UInt32
Definition: Defines.h:46
std::string partyExecutingFirm
Owning business unit name.
Definition: TESBroadcast.h:57
signed long long SInt64
Definition: Defines.h:43
UInt32 tesEnrichmentRuleId
Enrichment Rule ID for TES trades (to be used only in case of Auto Approval).
Definition: TESBroadcast.h:54
SInt64 legSecurityId
Instrument identifiier of the leg security.
Definition: TESBroadcast.h:86
std::vector< InstrumentEventGrpElem > instrumentEventGrp
Instrument Event Group.
Definition: TESBroadcast.h:241
SInt64 underlyingQty
Nominal value.
Definition: TESBroadcast.h:154
std::string tradeReportId
User defined transaction ID. Part of the TES response and TES broadcast.
Definition: TESBroadcast.h:211
SInt32 marketSegmentId
The product identifier uniquely identifies a Eurex product.
Definition: TESBroadcast.h:157
SInt64 relatedPx
Price of the related instrument.
Definition: TESBroadcast.h:151
Enum
Identifier for subscription and retransmission of an ETI data stream.
Definition: Enumerations.h:34
MessageEventSource::Enum messageEventSource
Receiver of a message.
Definition: TESBroadcast.h:205
UInt64 transBkdTime
Trade Closure Time, the time when an Off-Book trade was concluded outside the Eurex System...
Definition: TESBroadcast.h:139
SwapClearer::Enum swapClearer
Swap clearer for EFS Trades only.
Definition: TESBroadcast.h:202
UInt16 partitionId
Is required to define the scope of a Retransmission Request.
Definition: TESBroadcast.h:115
std::ostream & operator<<(std::ostream &, const ConnectionStateChange &)
Make it printable to formatted C++ I/O streams.
Side::Enum side
Side of the order.
Definition: TESBroadcast.h:63
Enum
Identifies the type of trade notification.
unsigned short UInt16
Definition: Defines.h:45
std::string rootPartyExecutingTrader
Owning User Short Name.
Definition: TESBroadcast.h:217
SInt64 underlyingPx
Underlying price associate with a derivative instrument.
Definition: TESBroadcast.h:136
std::string rootPartyExecutingFirm
Participant Short Name.
Definition: TESBroadcast.h:214
UInt64 reversalApprovalTime
Reversal approval time.
Definition: TESBroadcast.h:48
UInt32 underlyingMaturityDate
Underlying security&#39;s maturity date.
Definition: TESBroadcast.h:169
UInt32 autoApprovalRuleId
Auto Approval rule id - only in case of erroneous Auto Approval processing.
Definition: TESBroadcast.h:178