libjmmcg  release_579_6_g8cffd
A C++ library containing an eclectic mix of useful, advanced components.
messages.hpp
Go to the documentation of this file.
1 #ifndef ISIMUD_EXCHANGES_BATSBOE_EU_MESSAGES_HPP
2 #define ISIMUD_EXCHANGES_BATSBOE_EU_MESSAGES_HPP
3 
4 /******************************************************************************
5 ** Copyright © 2015 by J.M.McGuiness, isimud@hussar.me.uk
6 **
7 ** This library is free software; you can redistribute it and/or
8 ** modify it under the terms of the GNU Lesser General Public
9 ** License as published by the Free Software Foundation; either
10 ** version 2.1 of the License, or (at your option) any later version.
11 **
12 ** This library is distributed in the hope that it will be useful,
13 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 ** Lesser General Public License for more details.
16 **
17 ** You should have received a copy of the GNU Lesser General Public
18 ** License along with this library; if not, write to the Free Software
19 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21 
22 #include "types.hpp"
24 #include "../common/messages.hpp"
25 
26 namespace isimud { namespace ISIMUD_VER_NAMESPACE { namespace exchanges { namespace BATSBOE {
27 
28 /**
29  From <a href="http://cdn.batstrading.com/resources/participant_resources/BATS_Europe_Binary_Order_Entry_Specification.pdf>"BATS Chi-X Europe Binary Order Entry Specification", Version 1.44, 27 November, 2014</a>
30 */
31 namespace EU {
32 
33 /**
34  Section: "4.1.4 Trade Capture Report"
35 */
40 
41  explicit TradeCaptureReport(common::SeqNum_t seqNumber) noexcept(true) FORCE_INLINE;
42 
43 private:
44  common::TradeReportID_t tradeReportID;
45  common::Quantity_t lastShares;
46  common::Price_t lastPx;
47  bitfields_to_type_map bitfields;
48 } __attribute__((packed));
49 
50 /**
51  Section: "4.2.10 Trade Capture Report Ack"
52 */
57 
58  const common::DateTime_t transactionTime;
59 
60  explicit TradeCaptureReportAck(common::SeqNum_t seqNumber) noexcept(true) FORCE_INLINE;
61 
62 private:
63  common::TradeReportID_t tradeReportID;
64  bitfields_to_type_map bitfields;
65 } __attribute__((packed));
66 
67 /**
68  Section: "4.2.11 Trade Capture Report Reject"
69 */
74 
75  const common::DateTime_t transactionTime;
76 
77  explicit TradeCaptureReportReject(common::SeqNum_t seqNumber) noexcept(true) FORCE_INLINE;
78 
79 private:
80  common::TradeReportID_t tradeReportID;
81  common::Reason reason;
82  common::Text_t text;
83  bitfields_to_type_map bitfields;
84 } __attribute__((packed));
85 
86 /**
87  Section: "4.2.12 Trade Capture Confirm"
88 */
93 
94  const common::DateTime_t transactionTime;
95 
96  explicit TradeCaptureConfirm(common::SeqNum_t seqNumber) noexcept(true) FORCE_INLINE;
97 
98 private:
99  common::TradeReportID_t tradeReportID;
100  common::TradeReportRefID_t tradeReportRefID;
101  uint64_t tradeID;
102  common::Quantity_t lastShares;
103  common::Price_t lastPx;
104  common::ContraBroker_t contraBroker;
105  common::Reason reason;
106  common::Text_t text;
107  bitfields_to_type_map bitfields;
108 } __attribute__((packed));
109 
110 /**
111  Section: "4.2.13 Trade Capture Decline"
112 */
117 
118  const common::DateTime_t transactionTime;
119 
120  explicit TradeCaptureDecline(common::SeqNum_t seqNumber) noexcept(true) FORCE_INLINE;
121 
122 private:
123  common::TradeReportID_t tradeReportID;
124  common::TradeReportRefID_t tradeReportRefID;
125  uint64_t tradeID;
126  common::Quantity_t lastShares;
127  common::Price_t lastPx;
128  common::ContraBroker_t contraBroker;
129  common::Reason reason;
130  common::Text_t text;
131  bitfields_to_type_map bitfields;
132 } __attribute__((packed));
133 
134 } } } } }
135 
136 #include "messages_impl.hpp"
137 
138 #endif