root/isimud/exchanges/BATSBOE/EU/messages.hpp

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef libjmmcg_isimud_exchanges_BATSBOE_EU_messages_hpp
   2 #define libjmmcg_isimud_exchanges_BATSBOE_EU_messages_hpp
   3 
   4 /******************************************************************************
   5 ** $Header: svn+ssh://jmmcg@svn.code.sf.net/p/libjmmcg/code/trunk/libjmmcg/isimud/exchanges/BATSBOE/EU/messages.hpp 2177 2017-10-11 21:29:22Z jmmcg $
   6 **
   7 ** Copyright © 2015 by J.M.McGuiness, isimud@hussar.me.uk
   8 **
   9 ** This library is free software; you can redistribute it and/or
  10 ** modify it under the terms of the GNU Lesser General Public
  11 ** License as published by the Free Software Foundation; either
  12 ** version 2.1 of the License, or (at your option) any later version.
  13 **
  14 ** This library is distributed in the hope that it will be useful,
  15 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
  16 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  17 ** Lesser General Public License for more details.
  18 **
  19 ** You should have received a copy of the GNU Lesser General Public
  20 ** License along with this library; if not, write to the Free Software
  21 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  22 */
  23 
  24 #include "types.hpp"
  25 #include "optional_field_types.hpp"
  26 #include "../common/messages.hpp"
  27 
  28 namespace isimud { namespace exchanges { namespace BATSBOE {
  29 
  30 /**
  31         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>
  32 */
  33 namespace EU {
  34 
  35 /**
  36         Section: "4.1.4 Trade Capture Report"
  37 */
  38 struct TradeCaptureReport : public common::Header<MsgType, MsgType::TradeCaptureReport> {
  39         using Header_t=common::Header<MsgType, MsgType::TradeCaptureReport>;
  40         using bitfields_to_type_map=optional::TradeCaptureReport::bitfields_to_type_map;
  41         using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
  42 
  43         explicit TradeCaptureReport(uint32_t seqNumber) noexcept(true) FORCE_INLINE;
  44 
  45 private:
  46         common::TradeReportID_t tradeReportID;
  47         uint32_t lastShares;
  48         common::Price_t lastPx;
  49         bitfields_to_type_map bitfields;
  50 } __attribute__((packed));
  51 
  52 /**
  53         Section: "4.2.10 Trade Capture Report Ack"
  54 */
  55 struct TradeCaptureReportAck : public common::Header<MsgType, MsgType::TradeCaptureReportAck> {
  56         using Header_t=common::Header<MsgType, MsgType::TradeCaptureReportAck>;
  57         using bitfields_to_type_map=optional::TradeCaptureReportAck::bitfields_to_type_map;
  58         using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
  59 
  60         const common::DateTime_t transactionTime;
  61 
  62         explicit TradeCaptureReportAck(uint32_t seqNumber) noexcept(true) FORCE_INLINE;
  63 
  64 private:
  65         common::TradeReportID_t tradeReportID;
  66         bitfields_to_type_map bitfields;
  67 } __attribute__((packed));
  68 
  69 /**
  70         Section: "4.2.11 Trade Capture Report Reject"
  71 */
  72 struct TradeCaptureReportReject : public common::Header<MsgType, MsgType::TradeCaptureReportReject> {
  73         using Header_t=common::Header<MsgType, MsgType::TradeCaptureReportReject>;
  74         using bitfields_to_type_map=optional::TradeCaptureReportAck::bitfields_to_type_map;
  75         using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
  76 
  77         const common::DateTime_t transactionTime;
  78 
  79         explicit TradeCaptureReportReject(uint32_t seqNumber) noexcept(true) FORCE_INLINE;
  80 
  81 private:
  82         common::TradeReportID_t tradeReportID;
  83         common::Reason reason;
  84         common::Text_t text;
  85         bitfields_to_type_map bitfields;
  86 } __attribute__((packed));
  87 
  88 /**
  89         Section: "4.2.12 Trade Capture Confirm"
  90 */
  91 struct TradeCaptureConfirm : public common::Header<MsgType, MsgType::TradeCaptureConfirm> {
  92         using Header_t=common::Header<MsgType, MsgType::TradeCaptureConfirm>;
  93         using bitfields_to_type_map=optional::TradeCaptureConfirm::bitfields_to_type_map;
  94         using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
  95 
  96         const common::DateTime_t transactionTime;
  97 
  98         explicit TradeCaptureConfirm(uint32_t seqNumber) noexcept(true) FORCE_INLINE;
  99 
 100 private:
 101         common::TradeReportID_t tradeReportID;
 102         common::TradeReportRefID_t tradeReportRefID;
 103         uint64_t tradeID;
 104         uint32_t lastShares;
 105         common::Price_t lastPx;
 106         common::ContraBroker_t contraBroker;
 107         common::Reason reason;
 108         common::Text_t text;
 109         bitfields_to_type_map bitfields;
 110 } __attribute__((packed));
 111 
 112 /**
 113         Section: "4.2.13 Trade Capture Decline"
 114 */
 115 struct TradeCaptureDecline : public common::Header<MsgType, MsgType::TradeCaptureDecline> {
 116         using Header_t=common::Header<MsgType, MsgType::TradeCaptureDecline>;
 117         using bitfields_to_type_map=optional::TradeCaptureConfirm::bitfields_to_type_map;
 118         using bitfields_tags_type=bitfields_to_type_map::bitfields_tags_type;
 119 
 120         const common::DateTime_t transactionTime;
 121 
 122         explicit TradeCaptureDecline(uint32_t seqNumber) noexcept(true) FORCE_INLINE;
 123 
 124 private:
 125         common::TradeReportID_t tradeReportID;
 126         common::TradeReportRefID_t tradeReportRefID;
 127         uint64_t tradeID;
 128         uint32_t lastShares;
 129         common::Price_t lastPx;
 130         common::ContraBroker_t contraBroker;
 131         common::Reason reason;
 132         common::Text_t text;
 133         bitfields_to_type_map bitfields;
 134 } __attribute__((packed));
 135 
 136 } } } }
 137 
 138 #include "messages_impl.hpp"
 139 
 140 #endif

/* [<][>][^][v][top][bottom][index][help] */