OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.11.0
API documentation
MutableOrderExecutionOptionUSFutures.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  /// Is sent for each fill on an order.
37  struct ONIXS_CBOE_CFE_BOE_API MutableOrderExecutionOptionUSFutures : public OutgoingMessage
38  {
39  /// The time the event occurred in the CFE Matching Engine.
41  {
42  return transactionTime_;
43  }
44 
45  /// The time the event occurred in the CFE Matching Engine.
47  {
48  transactionTime_ = value;
49  }
50 
51  /// The order which was executed.
52  StrRef clOrdId() const
53  {
54  return clOrdId_;
55  }
56 
57  /// The order which was executed.
58  void clOrdId(StrRef value)
59  {
60  clOrdId_ = value;
61  }
62 
63  /// Sent to the OCC in the Trade Id field.
64  Binary8 execId() const
65  {
66  return execId_;
67  }
68 
69  /// Sent to the OCC in the Trade Id field.
70  void execId(Binary8 value)
71  {
72  execId_ = value;
73  }
74 
75  /// Executed contracts quantity.
77  {
78  return lastShares_;
79  }
80 
81  /// Executed contracts quantity.
82  void lastShares(Binary4 value)
83  {
84  lastShares_ = value;
85  }
86 
87  /// Price of this fill.
89  {
90  return lastPx_;
91  }
92 
93  /// Price of this fill.
94  void lastPx(BinaryPrice value)
95  {
96  lastPx_ = value;
97  }
98 
99  /// Quantity still open for further execution.
101  {
102  return leavesQty_;
103  }
104 
105  /// Quantity still open for further execution.
106  void leavesQty(Binary4 value)
107  {
108  leavesQty_ = value;
109  }
110 
111  /// Indicates whether the trade added or removed liquidity.
113  {
114  return baseLiquidityIndicator_;
115  }
116 
117  /// Indicates whether the trade added or removed liquidity.
119  {
120  baseLiquidityIndicator_ = value;
121  }
122 
123  /// Additional information about the liquidity of an order.
125  {
126  return subLiquidityIndicator_;
127  }
128 
129  /// Additional information about the liquidity of an order.
131  {
132  subLiquidityIndicator_ = value;
133  }
134 
135  /// Echoed back from the TPH message.
136  Side::Enum side() const
137  {
138  return side_;
139  }
140 
141  /// Echoed back from the TPH message.
142  void side(Side::Enum value)
143  {
144  side_ = value;
145  }
146 
147  /// Echoed back from the TPH message.
148  StrRef symbol() const
149  {
150  return symbol_;
151  }
152 
153  /// Echoed back from the TPH message.
154  void symbol(StrRef value)
155  {
156  symbol_ = value;
157  }
158 
159  /// Echoed back from the TPH message.
161  {
162  return clearingFirm_;
163  }
164 
165  /// Echoed back from the TPH message.
166  void clearingFirm(StrRef value)
167  {
168  clearingFirm_ = value;
169  }
170 
171  /// Echoed back from the TPH message.
173  {
174  return securityDesc_;
175  }
176 
177  /// Echoed back from the TPH message.
178  void securityDesc(StrRef value)
179  {
180  securityDesc_ = value;
181  }
182 
183  /// Indicates fee associated with an execution.
184  StrRef feeCode() const
185  {
186  return feeCode_;
187  }
188 
189  /// Indicates fee associated with an execution.
190  void feeCode(StrRef value)
191  {
192  feeCode_ = value;
193  }
194 
195  /// Business date of the execution.
196  Date tradeDate() const
197  {
198  return tradeDate_;
199  }
200 
201  /// Business date of the execution.
202  void tradeDate(Date value)
203  {
204  tradeDate_ = value;
205  }
206 
207  /// Size to clear with OCC.
209  {
210  return clearingSize_;
211  }
212 
213  /// Size to clear with OCC.
214  void clearingSize(Binary4 value)
215  {
216  clearingSize_ = value;
217  }
218 
219  /// Field is provided as a convenience to determine whether an Order Execution message is a preliminary notification representing a pending trade.
221  {
222  return pendingStatus_;
223  }
224 
225  /// Field is provided as a convenience to determine whether an Order Execution message is a preliminary notification representing a pending trade.
227  {
228  pendingStatus_ = value;
229  }
230 
231  /// Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spread orders or Simple orders that are part Spread execution.
233  {
234  return multilegReportingType_;
235  }
236 
237  /// Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spread orders or Simple orders that are part Spread execution.
239  {
240  multilegReportingType_ = value;
241  }
242 
243  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
245  {
246  return secondaryExecId_;
247  }
248 
249  /// Field indicates whether an execution is a spread or a simple instrument execution that is part of a spread trade.
251  {
252  secondaryExecId_ = value;
253  }
254 
255  /// Returns message type
256  MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE { return MessageType::OrderExecutionOptionUSFutures; };
257 
258  /// Validates message data
259  /// Throws std::invalid_argument exception if message content is invalid.
260  void validate() const ONIXS_BATS_BOE_OVERRIDE;
261 
262  /// Returns the text representation
263  std::string toString() const ONIXS_BATS_BOE_OVERRIDE;
264 
265  /// The text representation
266  void toString(std::string& str) const ONIXS_BATS_BOE_OVERRIDE;
267 
268  private:
269  size_t serializeTo(unsigned char*) const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE;
270 
271  DateTime transactionTime_;
272  Text<20> clOrdId_;
273  Binary8 execId_;
274  Binary4 lastShares_;
275  BinaryPrice lastPx_;
276  Binary4 leavesQty_;
277  BaseLiquidityIndicator::Enum baseLiquidityIndicator_;
278  SubLiquidityIndicator::Enum subLiquidityIndicator_;
279  Side::Enum side_;
280  Alphanumeric<8> symbol_;
281  Alpha<4> clearingFirm_;
282  Text<16> securityDesc_;
283  Alphanumeric<2> feeCode_;
284  Date tradeDate_;
285  Binary4 clearingSize_;
286  PendingStatus::Enum pendingStatus_;
287  MultilegReportingType::Enum multilegReportingType_;
288  Binary8 secondaryExecId_;
289  };
290 
291  /// Serializes object into string.
292  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const MutableOrderExecutionOptionUSFutures&);
293 
294  /// Serializes object into string.
295  inline std::string toStr(const MutableOrderExecutionOptionUSFutures& msg)
296  {
297  std::string str;
298  toStr(str, msg);
299  return str;
300  }
301 
302 }
303 }
304 }
305 }
306 }
Provides efficient way of accessing text-based field values.
Definition: String.h:45
void secondaryExecId(Binary8 value)
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...
DateTime transactionTime() const
The time the event occurred in the CFE Matching Engine.
void transactionTime(DateTime value)
The time the event occurred in the CFE Matching Engine.
void multilegReportingType(MultilegReportingType::Enum value)
Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spr...
void baseLiquidityIndicator(BaseLiquidityIndicator::Enum value)
Indicates whether the trade added or removed liquidity.
void subLiquidityIndicator(SubLiquidityIndicator::Enum value)
Additional information about the liquidity of an order.
MultilegReportingType::Enum multilegReportingType() const
Present on Order Execution, TAS Restatement and Variance Restatement messages representing either Spr...
BaseLiquidityIndicator::Enum baseLiquidityIndicator() const
Indicates whether the trade added or removed liquidity.
Base class for outgoing messages.
void pendingStatus(PendingStatus::Enum value)
Field is provided as a convenience to determine whether an Order Execution message is a preliminary n...
ONIXS_CBOE_CFE_BOE_API void toStr(std::string &, const ConstantNewOrderV2 &)
Serializes object into string.
PendingStatus::Enum pendingStatus() const
Field is provided as a convenience to determine whether an Order Execution message is a preliminary n...
SubLiquidityIndicator::Enum subLiquidityIndicator() const
Additional information about the liquidity of an order.
MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE
Returns message type.
Binary8 secondaryExecId() const
Field indicates whether an execution is a spread or a simple instrument execution that is part of a s...