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