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