OnixS C++ EuroTLX GTP Market Data Handler  1.4.0
API documentation
Defines.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 
27 
28 #include <string>
29 #include <ostream>
30 #include <memory>
31 
32 
33 namespace OnixS
34 {
35  namespace EuroTLX
36  {
37  namespace MarketData
38  {
39  namespace GTP
40  {
41  /// Data source
42  struct ONIXS_EUROTLX_GTP_API DataSource
43  {
45  DataSource(const Timestamp& ts) : packetReceptionTime(ts) {}
46 
47  enum Origin
48  {
49  Multicast = 0,
50  Replay = 1,
51  Recovery = 2
52  };
53 
54  /// Time when the packet was received by Handler from UDP, in system ticks, @see Time.h
56 
57  /// Message sequence number
59 
60  /// Number of message in packet
62 
63  /// Message sequence number
64  UInt32 messageSeqNum;
65 
66  /// Market data group
68 
69  /// the way data received
71 
72  /// The packet was cached due to incorrect sequence
73  bool cached;
74 
75  std::string toString () const;
76  };
77 
78  /// These fields use standard ASCII character bytes. They are left justified and padded on the right with spaces.
79  typedef StrRef Alpha;
80 
81  /// A single byte used to hold up to eight 1-bit flags. Each bit will represent a Boolean flag. The 0 bit is the lowest significant bit and the 7 bit is the highest significant bit.
82  typedef UInt8 BitField;
83 
84  /// A single byte used to hold one ASCII character.
85  typedef UInt8 Byte;
86 
87  /// Date specified in the YYYYMMDD format using ASCII characters.
88  typedef StrRef Date;
89 
90  /// Time specified in HHMMSS format using ASCII characters in a 24 hour clock format.
91  typedef StrRef Time;
92 
93  /// time stamp (in UTC) = (date time per second resolution in unix time format) * 1,000,000,000 + (nanoseconds component)
94  typedef UInt64 UDT;
95 
96  /// Signed Little-Endian encoded 64bit integer field with eight implied decimal places.
97  typedef FixedPointDecimal
98  <
99  Int64,
100  IntegralConstant<Int8, -8>
101  >
103 
104  /// Little-Endian encoded 64 bit unsigned integer with eight implied decimal places.
105  typedef
107  <
108  UInt64,
109  IntegralConstant<Int8, -8>
110  >
112 
113  /// Signed Little-Endian encoded 64bit integer field with four implied decimal places.
114  typedef
116  <
117  Int64,
118  IntegralConstant<Int8, -4>
119  >
121 
122  /// Little-Endian encoded 64 bit unsigned integer with four implied decimal places.
123  typedef
125  <
126  UInt64,
127  IntegralConstant<Int8, -4>
128  >
130 
131  /// ISO 8601 date and time in the following string format:YYYY-MM-DDThh:mm:ss.ddddddZ.
133 
134  /// These fields use standard ASCII character bytes to represent numeric values. They are left justified and padded on the right with spaces.
136 
137  /// Alias for Sequence Number type.
138  typedef UInt32 SequenceNumber;
139 
140  /// Aliases message length type.
141  typedef UInt16 MessageSize;
142 
143  ONIXS_EUROTLX_GTP_API std::ostream& operator << (std::ostream& stream, const DataSource& ds);
144  }
145  }
146  }
147 }
148 
StrRef MiFIDDecimal
These fields use standard ASCII character bytes to represent numeric values. They are left justified ...
Definition: Defines.h:135
Represents timestamp without time-zone information.
Definition: Timestamp.h:91
Timestamp packetReceptionTime
Time when the packet was received by Handler from UDP, in system ticks,.
Definition: Defines.h:55
UInt8 BitField
A single byte used to hold up to eight 1-bit flags. Each bit will represent a Boolean flag...
Definition: Defines.h:82
FixedPointDecimal< Int64, IntegralConstant< Int8,-4 > > Price4
Signed Little-Endian encoded 64bit integer field with four implied decimal places.
Definition: Defines.h:120
FixedPointDecimal< UInt64, IntegralConstant< Int8,-4 > > Size4
Little-Endian encoded 64 bit unsigned integer with four implied decimal places.
Definition: Defines.h:129
FixedPointDecimal< Int64, IntegralConstant< Int8,-8 > > Price
Signed Little-Endian encoded 64bit integer field with eight implied decimal places.
Definition: Defines.h:102
StrRef Alpha
These fields use standard ASCII character bytes. They are left justified and padded on the right with...
Definition: Defines.h:79
Byte marketDataGroup
Market data group.
Definition: Defines.h:67
UInt16 MessageSize
Aliases message length type.
Definition: Defines.h:141
bool cached
The packet was cached due to incorrect sequence.
Definition: Defines.h:73
UInt8 packetMessageCount
Message sequence number.
Definition: Defines.h:58
FixedPointDecimal< UInt64, IntegralConstant< Int8,-8 > > Size
Little-Endian encoded 64 bit unsigned integer with eight implied decimal places.
Definition: Defines.h:111
Origin origin
the way data received
Definition: Defines.h:70
StrRef Date
Date specified in the YYYYMMDD format using ASCII characters.
Definition: Defines.h:88
UInt32 SequenceNumber
Alias for Sequence Number type.
Definition: Defines.h:138
UInt32 messageSeqNum
Message sequence number.
Definition: Defines.h:64
UInt8 packetMessageNumber
Number of message in packet.
Definition: Defines.h:61
Provides efficient way of accessing text-based FIX field values.
Definition: String.h:45
UInt64 UDT
time stamp (in UTC) = (date time per second resolution in unix time format) * 1,000,000,000 + (nanoseconds component)
Definition: Defines.h:94
UInt8 Byte
Alias for Byte.
Definition: Memory.h:37
ONIXS_EUROTLX_GTP_API std::ostream & operator<<(std::ostream &stream, const ServiceDescriptor &descriptor)
StrRef DateAndTime
ISO 8601 date and time in the following string format:YYYY-MM-DDThh:mm:ss.ddddddZ.
Definition: Defines.h:132
StrRef Time
Time specified in HHMMSS format using ASCII characters in a 24 hour clock format. ...
Definition: Defines.h:91