OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  8.0.0
API documentation
AddComplexInstrument.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 
26 
27 namespace OnixS
28 {
29  namespace Eurex
30  {
31  namespace MarketData
32  {
33  namespace EOBI
34  {
35  class ONIXS_EUREX_EMDI_API AddComplexInstrumentEntry : public DataContainer
36  {
37  public:
38  /// Product identifier of the leg security (only applicable for underlying leg).
39  UInt32 legSymbol() const;
40 
41  /// Instrument identifier of the leg security.
42  UInt64 legSecurityID() const;
43 
44  /// Leg Price
45  bool legPrice (Decimal& price) const;
46 
47  /// The ratio of quantity for this individual leg relative to the entire multi-leg security.
48  UInt32 legRatioQty() const;
49 
50  /// Leg Security Type
51  EOBI::LegSecurityType::Enum legSecurityType() const;
52 
53  /// The side of the individual leg of a strategy as defined in signature
54  EOBI::LegSide::Enum legSide() const;
55 
56  /// Appends text presentation.
57  void toString (std::string&) const;
58 
59  private:
61 
62  AddComplexInstrumentEntry (const void* data);
63  };
64 
66  {
67  public:
68  /// Number of entries
69  size_t size() const;
70 
71  /// Entry accessor
72  AddComplexInstrumentEntry operator[] (size_t idx) const;
73 
74  /// Appends text presentation.
75  void toString (std::string&) const;
76 
77  private:
78  friend class AddComplexInstrument;
79 
80  AddComplexInstrumentEntries (const void* data);
81  };
82 
83  class ONIXS_EUREX_EMDI_API AddComplexInstrument : public MessageBase
84  {
85  public:
86  /// Message type
87  std::string msgType() const;
88 
89  /// Security update action
90  EOBI::SecurityUpdateAction::Enum securityUpdateAction() const;
91 
92  /// Marketplace assigned identifier.
93  EOBI::SecurityIDSource::Enum securityIDSource() const;
94 
95  /// Marketplace assigned identifier.
96  EOBI::LegSecurityIDSource::Enum legSecurityIDSource() const;
97 
98  /// Number of market segments
99  EOBI::NoMarketSegments::Enum noMarketSegments() const;
100 
101  /// Security type
102  EOBI::SecurityType::Enum securityType() const;
103 
104  /// Unique instrument identifier.
105  UInt64 securityID() const;
106 
107  /// Transaction timestamp.
108  UInt64 transactTime() const;
109 
110  /// Strategy Type.
111  UInt32 securitySubType() const;
112 
113  /// This field qualifies an instrument type on Eurex.
114  EOBI::ProductComplex::Enum productComplex() const;
115 
116  /// Indicates that an implied market to be created for either the legs of a multi-leg
117  /// instrument (Implied-in) or for the multi-leg instrument based on the existence of the legs (Impliedout).
118  /// Determination as to whether implied markets should be created is generally done at the level of the multileg instrument.
119  /// Commonly used in listed derivatives.
120  EOBI::ImpliedMarketIndicator::Enum impliedMarketIndicator() const;
121 
122  /// Counter: number of Legs repeating group instances.
123  UInt8 noLegs() const;
124 
125  /// Variable size array, record counter: NoLegs
126  AddComplexInstrumentEntries instrmtLegGrp() const;
127 
128  /// Appends text presentation.
129  void toString (std::string&) const ONIXS_EUREX_EMDI_OVERRIDE;
130 
131  private:
133 
134  AddComplexInstrument (const void* data, const DataSource& dataSource) : MessageBase (data, dataSource) {}
135  };
136  }
137  }
138  }
139 }
140 
unsigned char UInt8
Definition: Numeric.h:35
unsigned int UInt32
Definition: Numeric.h:41
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63