OnixS C++ CBOE CFE Binary Order Entry (BOE) Handler  1.12.0
API documentation
MutableQuoteExecution.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 Quote Execution message is used to indicate an execution has occurred on a resting quote.
37  struct ONIXS_CBOE_CFE_BOE_API MutableQuoteExecution : 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  /// Echoed back from the most recent Quote Update request for this quote.
53  {
54  return quoteUpdateId_;
55  }
56 
57  /// Echoed back from the most recent Quote Update request for this quote.
58  void quoteUpdateId(StrRef value)
59  {
60  quoteUpdateId_ = value;
61  }
62 
63  /// Order identifier supplied by CFE.
64  Binary8 orderId() const
65  {
66  return orderId_;
67  }
68 
69  /// Order identifier supplied by CFE.
70  void orderId(Binary8 value)
71  {
72  orderId_ = 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  /// Echoed back from the TPH message
89  {
90  return quoteSymbol_;
91  }
92 
93  /// Echoed back from the TPH message
94  void quoteSymbol(StrRef value)
95  {
96  quoteSymbol_ = value;
97  }
98 
99  /// EFID that will clear the trade.
101  {
102  return clearingFirm_;
103  }
104 
105  /// EFID that will clear the trade.
106  void clearingFirm(StrRef value)
107  {
108  clearingFirm_ = value;
109  }
110 
111  /// Executed contracts quantity.
113  {
114  return lastShares_;
115  }
116 
117  /// Executed contracts quantity.
118  void lastShares(Binary4 value)
119  {
120  lastShares_ = value;
121  }
122 
123  /// Price of this fill.
125  {
126  return lastPx_;
127  }
128 
129  /// Price of this fill.
130  void lastPx(BinaryPrice value)
131  {
132  lastPx_ = value;
133  }
134 
135  /// Quantity still open for further execution.
137  {
138  return leavesQty_;
139  }
140 
141  /// Quantity still open for further execution.
142  void leavesQty(Binary4 value)
143  {
144  leavesQty_ = value;
145  }
146 
147  /// Side
148  Side::Enum side() const
149  {
150  return side_;
151  }
152 
153  /// Side
154  void side(Side::Enum value)
155  {
156  side_ = value;
157  }
158 
159  /// Indicates whether the trade added or removed liquidity.
161  {
162  return baseLiquidityIndicator_;
163  }
164 
165  /// Indicates whether the trade added or removed liquidity.
167  {
168  baseLiquidityIndicator_ = value;
169  }
170 
171  /// Additional information about the liquidity of an order.
173  {
174  return subLiquidityIndicator_;
175  }
176 
177  /// Additional information about the liquidity of an order.
179  {
180  subLiquidityIndicator_ = 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  /// Returns message type
196  MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE { return MessageType::QuoteExecution; };
197 
198  /// Validates message data
199  /// Throws std::invalid_argument exception if message content is invalid.
200  void validate() const ONIXS_BATS_BOE_OVERRIDE;
201 
202  /// Returns the text representation
203  std::string toString() const ONIXS_BATS_BOE_OVERRIDE;
204 
205  /// The text representation
206  void toString(std::string& str) const ONIXS_BATS_BOE_OVERRIDE;
207 
208  private:
209  size_t serializeTo(unsigned char*) const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE;
210 
211  DateTime transactionTime_;
212  Text<16> quoteUpdateId_;
213  Binary8 orderId_;
214  Binary8 execId_;
215  Alphanumeric<6> quoteSymbol_;
216  Alpha<4> clearingFirm_;
217  Binary4 lastShares_;
218  BinaryPrice lastPx_;
219  Binary4 leavesQty_;
220  Side::Enum side_;
221  BaseLiquidityIndicator::Enum baseLiquidityIndicator_;
222  SubLiquidityIndicator::Enum subLiquidityIndicator_;
223  Alphanumeric<2> feeCode_;
224  };
225 
226  /// Serializes object into string.
227  ONIXS_CBOE_CFE_BOE_API void toStr(std::string&, const MutableQuoteExecution&);
228 
229  /// Serializes object into string.
230  inline std::string toStr(const MutableQuoteExecution& msg)
231  {
232  std::string str;
233  toStr(str, msg);
234  return str;
235  }
236 
237 }
238 }
239 }
240 }
241 }
Binary8 execId() const
Sent to the OCC in the Trade Id field.
void baseLiquidityIndicator(BaseLiquidityIndicator::Enum value)
Indicates whether the trade added or removed liquidity.
StrRef quoteUpdateId() const
Echoed back from the most recent Quote Update request for this quote.
void quoteUpdateId(StrRef value)
Echoed back from the most recent Quote Update request for this quote.
Binary8 orderId() const
Order identifier supplied by CFE.
StrRef feeCode() const
Indicates fee associated with an execution.
Provides efficient way of accessing text-based field values.
Definition: String.h:45
void feeCode(StrRef value)
Indicates fee associated with an execution.
MessageType::Enum type() const ONIXS_BATS_BOE_NOEXCEPT ONIXS_BATS_BOE_OVERRIDE
Returns message type.
StrRef quoteSymbol() const
Echoed back from the TPH message.
void transactionTime(DateTime value)
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...
void quoteSymbol(StrRef value)
Echoed back from the TPH message.
void leavesQty(Binary4 value)
Quantity still open for further execution.
Binary4 lastShares() const
Executed contracts quantity.
void subLiquidityIndicator(SubLiquidityIndicator::Enum value)
Additional information about the liquidity of an order.
void lastShares(Binary4 value)
Executed contracts quantity.
Binary4 leavesQty() const
Quantity still open for further execution.
void clearingFirm(StrRef value)
EFID that will clear the trade.
SubLiquidityIndicator::Enum subLiquidityIndicator() const
Additional information about the liquidity of an order.
void orderId(Binary8 value)
Order identifier supplied by CFE.
void execId(Binary8 value)
Sent to the OCC in the Trade Id field.
StrRef clearingFirm() const
EFID that will clear the trade.
#define ONIXS_BATS_BOE_NOEXCEPT
Definition: ABI.h:49
A Quote Execution message is used to indicate an execution has occurred on a resting quote...
Base class for outgoing messages.
ONIXS_CBOE_CFE_BOE_API void toStr(std::string &, const ConstantNewOrderV2 &)
Serializes object into string.
BaseLiquidityIndicator::Enum baseLiquidityIndicator() const
Indicates whether the trade added or removed liquidity.
DateTime transactionTime() const
The time the event occurred in the CFE Matching Engine (not the time the message was sent)...