OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.11.0
API documentation
MutableVarianceRestatement.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 Variance Restatement is sent post-settlement time for each VA and VAO execution during the associated business day to communicate updated Price, Size and Symbol associated with the cleared execution.
37  struct ONIXS_CBOE_CFE_BOE_API MutableVarianceRestatement : 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  ///
88  Side::Enum side() const
89  {
90  return side_;
91  }
92 
93  ///
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  /// Size to clear with OCC.
197  {
198  return clearingSize_;
199  }
200 
201  /// Size to clear with OCC.
202  void clearingSize(Binary4 value)
203  {
204  clearingSize_ = value;
205  }
206 
207  /// Symbol as sent to clearing
209  {
210  return clearingSymbol_;
211  }
212 
213  /// Symbol as sent to clearing
214  void clearingSymbol(StrRef value)
215  {
216  clearingSymbol_ = value;
217  }
218 
219  /// Type
221  {
222  return multilegReportingType_;
223  }
224 
225  /// Type
227  {
228  multilegReportingType_ = value;
229  }
230 
231  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
233  {
234  return secondaryExecId_;
235  }
236 
237  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
239  {
240  secondaryExecId_ = value;
241  }
242 
243  /// Returns message type
244  MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE { return MessageType::VarianceRestatement; };
245 
246  /// Validates message data
247  /// Throws std::invalid_argument exception if message content is invalid.
248  void validate() const ONIXS_BATS_BOE_OVERRIDE;
249 
250  /// Returns the text representation
251  std::string toString() const ONIXS_BATS_BOE_OVERRIDE;
252 
253  /// The text representation
254  void toString(std::string& str) const ONIXS_BATS_BOE_OVERRIDE;
255 
256  private:
257  size_t serializeTo(unsigned char*) const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE;
258 
259  DateTime transactionTime_;
260  Text<20> clOrdId_;
261  Alpha<4> clearingFirm_;
262  Binary8 execId_;
263  Side::Enum side_;
264  BinaryPrice price_;
265  Alphanumeric<8> symbol_;
266  Date maturityDate_;
267  Binary4 lastShares_;
268  BinaryPrice lastPx_;
269  Alphanumeric<2> feeCode_;
270  Date tradeDate_;
271  BinaryPrice clearingPrice_;
272  Binary4 clearingSize_;
273  Alphanumeric<8> clearingSymbol_;
274  MultilegReportingType::Enum multilegReportingType_;
275  Binary8 secondaryExecId_;
276  };
277 
278  /// Serializes object into string.
279  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const MutableVarianceRestatement&);
280 
281  /// Serializes object into string.
282  inline std::string toStr(const MutableVarianceRestatement& msg)
283  {
284  std::string str;
285  toStr(str, msg);
286  return str;
287  }
288 
289 }
290 }
291 }
292 }
293 }
void clearingPrice(BinaryPrice value)
Price as sent to clearing after applying post-close conversions to the original LastPx value...
Provides efficient way of accessing text-based field values.
Definition: String.h:45
void transactionTime(DateTime value)
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...
MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE
Returns message type.
DateTime transactionTime() const
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...
void maturityDate(Date value)
Maturity date of the instrument.
void clearingFirm(StrRef value)
EFID that will clear the trade.
void symbol(StrRef value)
CFE native identifier of the instrument.
StrRef feeCode() const
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...
void feeCode(StrRef value)
Indicates fee associated with an execution.
BinaryPrice clearingPrice() const
Price as sent to clearing after applying post-close conversions to the original LastPx value...
void execId(Binary8 value)
Sent to the OCC in the Trade Id field.
void secondaryExecId(Binary8 value)
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...
Base class for outgoing messages.
Binary8 execId() const
Sent to the OCC in the Trade Id field.
ONIXS_CBOE_CFE_BOE_API void toStr(std::string &, const ConstantNewOrderV2 &)
Serializes object into string.
A Variance Restatement is sent post-settlement time for each VA and VAO execution during the associat...
StrRef symbol() const
CFE native identifier of the instrument.