OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.12.0
API documentation
MutableTASRestatement.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 namespace Testing {
35 
36  /// A TAS Restatement is sent post-settlement time for each TAS execution during the associated business day to communicate the updated Price and Symbol associated with the cleared execution.
37  struct ONIXS_CBOE_CFE_BOE_API MutableTASRestatement : public OutgoingMessage
38  {
39  /// The time the event occurred in the CFE Matching Engine (not the time the message was sent).
41  {
42  return transactionTime_;
43  }
44 
45  /// The time the event occurred in the CFE Matching Engine (not the time the message was sent).
47  {
48  transactionTime_ = value;
49  }
50 
51  /// The order being restated
52  StrRef clOrdId() const
53  {
54  return clOrdId_;
55  }
56 
57  /// The order being restated
58  void clOrdId(StrRef value)
59  {
60  clOrdId_ = value;
61  }
62 
63  /// EFID that will clear the trade.
65  {
66  return clearingFirm_;
67  }
68 
69  /// EFID that will clear the trade.
70  void clearingFirm(StrRef value)
71  {
72  clearingFirm_ = value;
73  }
74 
75  /// Sent to the OCC in the Trade Id field.
76  Binary8 execId() const
77  {
78  return execId_;
79  }
80 
81  /// Sent to the OCC in the Trade Id field.
82  void execId(Binary8 value)
83  {
84  execId_ = value;
85  }
86 
87  /// Side
88  Side::Enum side() const
89  {
90  return side_;
91  }
92 
93  /// Side
94  void side(Side::Enum value)
95  {
96  side_ = value;
97  }
98 
99  /// Limit price of the order.
101  {
102  return price_;
103  }
104 
105  /// Limit price of the order.
106  void price(BinaryPrice value)
107  {
108  price_ = value;
109  }
110 
111  /// CFE native identifier of the instrument
112  StrRef symbol() const
113  {
114  return symbol_;
115  }
116 
117  /// CFE native identifier of the instrument
118  void symbol(StrRef value)
119  {
120  symbol_ = value;
121  }
122 
123  /// Maturity date of the instrument
125  {
126  return maturityDate_;
127  }
128 
129  /// Maturity date of the instrument
130  void maturityDate(Date value)
131  {
132  maturityDate_ = value;
133  }
134 
135  /// Executed contracts quantity.
137  {
138  return lastShares_;
139  }
140 
141  /// Executed contracts quantity.
142  void lastShares(Binary4 value)
143  {
144  lastShares_ = value;
145  }
146 
147  /// Price of this fill.
149  {
150  return lastPx_;
151  }
152 
153  /// Price of this fill.
154  void lastPx(BinaryPrice value)
155  {
156  lastPx_ = value;
157  }
158 
159  /// Indicates fee associated with an execution.
160  StrRef feeCode() const
161  {
162  return feeCode_;
163  }
164 
165  /// Indicates fee associated with an execution.
166  void feeCode(StrRef value)
167  {
168  feeCode_ = value;
169  }
170 
171  /// Business date of the execution.
172  Date tradeDate() const
173  {
174  return tradeDate_;
175  }
176 
177  /// Business date of the execution.
178  void tradeDate(Date value)
179  {
180  tradeDate_ = value;
181  }
182 
183  /// Price as sent to clearing after applying post-close conversions to the original LastPx value.
185  {
186  return clearingPrice_;
187  }
188 
189  /// Price as sent to clearing after applying post-close conversions to the original LastPx value.
191  {
192  clearingPrice_ = value;
193  }
194 
195  /// Symbol as sent to clearing
197  {
198  return clearingSymbol_;
199  }
200 
201  /// Symbol as sent to clearing
202  void clearingSymbol(StrRef value)
203  {
204  clearingSymbol_ = value;
205  }
206 
207  /// Type
209  {
210  return multilegReportingType_;
211  }
212 
213  /// Type
215  {
216  multilegReportingType_ = value;
217  }
218 
219  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
221  {
222  return secondaryExecId_;
223  }
224 
225  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
227  {
228  secondaryExecId_ = value;
229  }
230 
231  /// Returns message type
232  MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE { return MessageType::TASRestatement; };
233 
234  /// Validates message data
235  /// Throws std::invalid_argument exception if message content is invalid.
236  void validate() const ONIXS_BATS_BOE_OVERRIDE;
237 
238  /// Returns the text representation
239  std::string toString() const ONIXS_BATS_BOE_OVERRIDE;
240 
241  /// The text representation
242  void toString(std::string& str) const ONIXS_BATS_BOE_OVERRIDE;
243 
244  private:
245  size_t serializeTo(unsigned char*) const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE;
246 
247  DateTime transactionTime_;
248  Text<20> clOrdId_;
249  Alpha<4> clearingFirm_;
250  Binary8 execId_;
251  Side::Enum side_;
252  BinaryPrice price_;
253  Alphanumeric<8> symbol_;
254  Date maturityDate_;
255  Binary4 lastShares_;
256  BinaryPrice lastPx_;
257  Alphanumeric<2> feeCode_;
258  Date tradeDate_;
259  BinaryPrice clearingPrice_;
260  Alphanumeric<8> clearingSymbol_;
261  MultilegReportingType::Enum multilegReportingType_;
262  Binary8 secondaryExecId_;
263  };
264 
265  /// Serializes object into string.
266  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const MutableTASRestatement&);
267 
268  /// Serializes object into string.
269  inline std::string toStr(const MutableTASRestatement& msg)
270  {
271  std::string str;
272  toStr(str, msg);
273  return str;
274  }
275 
276 }
277 }
278 }
279 }
280 }
StrRef clearingFirm() const
EFID that will clear the trade.
void feeCode(StrRef value)
Indicates fee associated with an execution.
Binary8 secondaryExecId() const
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...
Date tradeDate() const
Business date of the execution.
void clearingPrice(BinaryPrice value)
Price as sent to clearing after applying post-close conversions to the original LastPx value...
void clOrdId(StrRef value)
The order being restated.
A TAS Restatement is sent post-settlement time for each TAS execution during the associated business ...
Binary8 execId() const
Sent to the OCC in the Trade Id field.
Binary4 lastShares() const
Executed contracts quantity.
Provides efficient way of accessing text-based field values.
Definition: String.h:45
void lastShares(Binary4 value)
Executed contracts quantity.
void execId(Binary8 value)
Sent to the OCC in the Trade Id field.
void clearingSymbol(StrRef value)
Symbol as sent to clearing.
StrRef clearingSymbol() const
Symbol as sent to clearing.
void secondaryExecId(Binary8 value)
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...
BinaryPrice price() const
Limit price of the order.
MultilegReportingType::Enum multilegReportingType() const
Type.
BinaryPrice clearingPrice() const
Price as sent to clearing after applying post-close conversions to the original LastPx value...
void multilegReportingType(MultilegReportingType::Enum value)
Type.
MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE
Returns message type.
StrRef symbol() const
CFE native identifier of the instrument.
void tradeDate(Date value)
Business date of the execution.
DateTime transactionTime() const
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...
void clearingFirm(StrRef value)
EFID that will clear the trade.
void price(BinaryPrice value)
Limit price of the order.
#define ONIXS_BATS_BOE_NOEXCEPT
Definition: ABI.h:49
Base class for outgoing messages.
Date maturityDate() const
Maturity date of the instrument.
void maturityDate(Date value)
Maturity date of the instrument.
ONIXS_CBOE_CFE_BOE_API void toStr(std::string &, const ConstantNewOrderV2 &)
Serializes object into string.
void symbol(StrRef value)
CFE native identifier of the instrument.
StrRef feeCode() const
Indicates fee associated with an execution.
void transactionTime(DateTime value)
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...