OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.12.0
API documentation
NewComplexInstrument.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 <vector>
23 
28 
29 
30 namespace OnixS {
31 namespace CboeCFE {
32 namespace Trading {
33 namespace BOE {
34 
35  /// New Complex Instrument
36  struct ONIXS_CBOE_CFE_BOE_API NewComplexInstrument : public OutgoingMessage
37  {
39 
40  /// Text
41  StrRef clOrdId() const
42  {
43  return clOrdId_;
44  }
45 
46  /// Text
47  void clOrdId(StrRef value)
48  {
49  clOrdId_ = value;
50  }
51 
52  /// EFID associated with creating the complex instrument
54  {
55  return clearingFirm_;
56  }
57 
58  /// EFID associated with creating the complex instrument
59  void clearingFirm(StrRef value)
60  {
61  clearingFirm_ = value;
62  }
63 
64  ///Legs.
65  const std::vector<Leg>& legs() const
66  {
67  return legs_;
68  }
69 
70  ///Legs.
71  std::vector<Leg>& legs()
72  {
73  return legs_;
74  }
75 
76  /// Returns message type
78 
79  /// Validates message data
80  /// Throws std::invalid_argument exception if message content is invalid.
81  void validate() const ONIXS_BATS_BOE_OVERRIDE;
82 
83  /// Returns the text representation
84  std::string toString() const ONIXS_BATS_BOE_OVERRIDE;
85 
86  /// The text representation
87  void toString(std::string& str) const ONIXS_BATS_BOE_OVERRIDE;
88 
89  private:
90  size_t serializeTo(unsigned char*) const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE;
91 
92  Text<20> clOrdId_;
93  Alpha<4> clearingFirm_;
94  std::vector<Leg> legs_;
95  };
96 
97  /// Serializes object into string.
98  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const NewComplexInstrument&);
99 
100  /// Serializes object into string.
101  inline std::string toStr(const NewComplexInstrument& msg)
102  {
103  std::string str;
104  toStr(str, msg);
105  return str;
106  }
107 
108 }
109 }
110 }
111 }
const std::vector< Leg > & legs() const
Legs.
void clearingFirm(StrRef value)
EFID associated with creating the complex instrument.
MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE
Returns message type.
Provides efficient way of accessing text-based field values.
Definition: String.h:45
void toStr(std::string &str, const FixedPointDecimal< Mantissa, Exponent > &number)
Serializes fixed-point decimal into a string.
Definition: Decimal.h:156
StrRef clearingFirm() const
EFID associated with creating the complex instrument.
#define ONIXS_BATS_BOE_NOEXCEPT
Definition: ABI.h:49
Base class for outgoing messages.