OnixS C++ FMX UST BIMP Market Data Handler 1.4.1
API documentation
Loading...
Searching...
No Matches
Trade.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
30namespace OnixS {
31namespace FmxUST {
32namespace MarketData {
33namespace Bimp {
34
36 struct TradeMsg : public BinaryMessage
37 {
44
51
59
66
73
80
87
91 {
92 return enumeration<Side>(53);
93 }
94
97 bool visibilityGroup(Integer1& value) const
99 {
100 if (binarySize() < 54 + sizeof(Integer1))
101 return false;
102
103 value = ordinary<Integer1>(54);
104 return true;
105 }
106
111 {
112 if (binarySize() < 55 + sizeof(Integer1))
113 return false;
114
115 value = ordinary<Integer1>(55);
116 return true;
117 }
118
120 bool tradeFlags(Integer1& value) const
122 {
123 if (binarySize() < 56 + sizeof(Integer1))
124 return false;
125
126 value = ordinary<Integer1>(56);
127 return true;
128 }
129
132
135
137 static void validateSize(MessageSize size)
138 {
139 if (ONIXS_FMXUST_BIMP_CHECK_EXPECT((size < minMessageSize_), false))
140 throwIncorrectSize("Trade", size, minMessageSize_);
141 }
142
144 TradeMsg(const void* data, MessageSize size)
146 : BinaryMessage(data, size)
147 {
148 }
149 };
150
152 ONIXS_FMXUST_BIMP_API void toStr(std::string&, const TradeMsg&);
153
155 inline std::string toStr(const TradeMsg& msg)
156 {
157 std::string str;
158 toStr(str, msg);
159 return str;
160 }
161
162}
163}
164}
165}
#define ONIXS_FMXUST_BIMP_NOTHROW
Definition Compiler.h:108
#define ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR
Definition Compiler.h:111
Enumeration::Enum enumeration(MessageSize offset) const ONIXS_FMXUST_BIMP_NOTHROW
FieldValue ordinary(MessageSize offset) const ONIXS_FMXUST_BIMP_NOTHROW
MessageSize binarySize() const ONIXS_FMXUST_BIMP_NOTHROW
Size of message.
BinaryMessage() ONIXS_FMXUST_BIMP_NOTHROW
Initializes blank instance referencing to nothing.
ONIXS_FMXUST_BIMP_API ONIXS_FMXUST_BIMP_COLDPATH ONIXS_FMXUST_BIMP_NORETURN void throwIncorrectSize(const std::string &messageName, MessageSize receivedSize, MessageSize expectedSize)
Integer2 MessageSize
Aliases message length type.
Definition Defines.h:100
ONIXS_FMXUST_BIMP_API void toStr(std::string &, EventCode::Enum)
Appends string presentation of object.
The trade message is designed to provide execution details for match events involving non-displayable...
Definition Trade.h:37
Integer8 timestamp() const ONIXS_FMXUST_BIMP_NOTHROW
Definition Trade.h:54
bool contraVisibilityGroup(Integer1 &value) const ONIXS_FMXUST_BIMP_NOTHROW
Definition Trade.h:109
Integer8 executedQuantity() const ONIXS_FMXUST_BIMP_NOTHROW
Total quantity of the order that matched within this execution.
Definition Trade.h:68
Integer8 orderReferenceNumber() const ONIXS_FMXUST_BIMP_NOTHROW
The FMX-generated identifier for this order.
Definition Trade.h:61
TradeMsg(const void *data, MessageSize size) ONIXS_FMXUST_BIMP_NOTHROW
Initializes instance over given memory block.
Definition Trade.h:144
Integer8 tradeIdentifier() const ONIXS_FMXUST_BIMP_NOTHROW
Assigned by FMX to each execution that occurs.
Definition Trade.h:75
Integer8 trackingNumber() const ONIXS_FMXUST_BIMP_NOTHROW
FMX internal tracking/sequence number.
Definition Trade.h:46
bool visibilityGroup(Integer1 &value) const ONIXS_FMXUST_BIMP_NOTHROW
Definition Trade.h:97
bool tradeFlags(Integer1 &value) const ONIXS_FMXUST_BIMP_NOTHROW
A bitmap with each bit carrying a specific meaning, not applicable to all feeds.
Definition Trade.h:120
static void validateSize(MessageSize size)
Check the given size.
Definition Trade.h:137
static ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR MessageSize messageSize_
Total message size.
Definition Trade.h:131
Integer4 instrumentLocate() const ONIXS_FMXUST_BIMP_NOTHROW
Instrument locate code identifying the instrument.
Definition Trade.h:39
Side::Enum side() const ONIXS_FMXUST_BIMP_NOTHROW
Side.
Definition Trade.h:89
SignedInteger8 executionPrice() const ONIXS_FMXUST_BIMP_NOTHROW
Price at which this execution occurred.
Definition Trade.h:82
static ONIXS_FMXUST_BIMP_CONST_OR_CONSTEXPR MessageSize minMessageSize_
Min message size.
Definition Trade.h:134