OnixS C++ SGX Titan ITCH Market Data Handler  1.2.2
API documentation
CombinationOrderBookLegMsg.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 
25 
26 ONIXS_SGXTITAN_ITCH_NAMESPACE_BEGIN
27 
28  /// This message provides a mapping between a
29  /// combination order book and one of the combination
30  /// leg order books.
31  struct ONIXS_SGXTITAN_ITCH_API CombinationOrderBookLegMsg : public IncomingMessage
32  {
33  /// Nanoseconds portion of the timestamp
34  UInt32 nanoseconds() const
35  {
36  return ordinary<UInt32>(1);
37  }
38 
39  /// Denotes the primary identifier of an Order Book
41  {
42  return ordinary<UInt32>(5);
43  }
44 
45  /// Order Book ID of Leg instrument.
47  {
48  return ordinary<UInt32>(9);
49  }
50 
51  /// Specifies whether to buy or sell the Leg Series
52  /// when buying or selling the combination.
55  {
56  return enumeration<LegSide>(13);
57  }
58 
59  /// Relative number of contracts between the combo
60  /// legs.
61  UInt32 legRatio() const
62  {
63  return ordinary<UInt32>(14);
64  }
65 
66  /// Total message size.
68 
69  /// Check the given size.
70  static void validateSize(MessageSize size)
71  {
72  if(size < messageSize_)
73  throwIncorrectSize("CombinationOrderBookLegMsg", size, messageSize_);
74  }
75 
76  /// Initializes instance over given memory block.
77  CombinationOrderBookLegMsg(const void* data, MessageSize size)
79  : IncomingMessage(data, size)
80  {
81  }
82  };
83 
84  /// Serializes object into string.
85  ONIXS_SGXTITAN_ITCH_API void toStr(std::string&, const CombinationOrderBookLegMsg&);
86 
87  /// Serializes object into string.
88  inline std::string toStr(const CombinationOrderBookLegMsg& msg)
89  {
90  std::string str;
91  toStr(str, msg);
92  return str;
93  }
94 
95  ///
96  inline std::ostream& operator<<(std::ostream& stream, const CombinationOrderBookLegMsg& msg)
97  {
98  stream << toStr(msg);
99  return stream;
100  }
101 
102 ONIXS_SGXTITAN_ITCH_NAMESPACE_END
#define ONIXS_SGXTITAN_ITCH_CONST_OR_CONSTEXPR
Definition: Compiler.h:46
static void validateSize(MessageSize size)
Check the given size.
OrderBookId legOrderBookId() const
Order Book ID of Leg instrument.
UInt32 nanoseconds() const
Nanoseconds portion of the timestamp.
OrderBookId orderBookId() const
Denotes the primary identifier of an Order Book.
#define ONIXS_SGXTITAN_ITCH_NOTHROW
Definition: Compiler.h:27
CombinationOrderBookLegMsg(const void *data, MessageSize size)
Initializes instance over given memory block.
UInt32 OrderBookId
Alias for Security Id type.
Definition: Defines.h:43
IncomingMessage(const void *data, MessageSize size)
UInt16 MessageSize
Aliases message length type.
Definition: Defines.h:34
ONIXS_SGXTITAN_ITCH_API void toStr(std::string &, MessageType::Enum)
Appends string presentation of object.
ONIXS_SGXTITAN_ITCH_API std::ostream & operator<<(std::ostream &stream, const ServiceDescriptor &descriptor)
ONIXS_SGXTITAN_ITCH_API void throwIncorrectSize(const std::string &messageName, MessageSize receivedSize, MessageSize expectedSize)