OnixS ICE iMpact Multicast Price Feed Handler C++ library  8.18.0
API documentation
MulticastChannelGroups.h
Go to the documentation of this file.
1 /**
2  * \file
3  * \brief Declare internal `OnixS::ICE::iMpact::MarketData::MulticastChannelGroups` message structure
4  * \attention DO NOT EDIT! This file was generated!
5  */
6 /*
7  * Copyright (c) Onix Solutions Limited. All rights reserved.
8  *
9  * This software owned by Onix Solutions Limited and is protected by copyright law
10  * and international copyright treaties.
11  *
12  * Access to and use of the software is governed by the terms of the applicable ONIXS Software
13  * Services Agreement (the Agreement) and Customer end user license agreements granting
14  * a non-assignable, non-transferable and non-exclusive license to use the software
15  * for it's own data processing purposes under the terms defined in the Agreement.
16  *
17  * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
18  * of this source code or associated reference material to any other location for further reproduction
19  * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
20  *
21  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
22  * the terms of the Agreement is a violation of copyright law.
23  */
24 
25 #pragma once
26 
27 // Project specific headers
28 #include "../Enumerations.h"
29 #include "../Export.h"
30 #include "../Types.h"
31 
32 // Standard headers
33 #include <iosfwd>
34 #include <string>
35 #include <vector>
36 
37 namespace OnixS { namespace ICE { namespace iMpact { namespace MarketData {
38 
39 /// This class represents the Multicast Channel Groups Message.
40 struct ONIXS_ICEMDH_EXPORT MulticastChannelGroups
41 {
42  /// Message type constant
43  enum
44  {
45  messageType = 'X'
46  };
47 
48  /// This nested class represents channel group definition.
49  struct ChannelGroup
50  {
51  /// The ID for this Channel Group as found in the ICE Multicast
52  /// Connectivity Guide.
53  short id;
54 
55  /// The name of this Channel Group, as found in the ICE Multicast
56  /// Connectivity Guide.
57  std::string name;
58 
59  /// Indicates the type of this channel group.
61 
62  /// Multicast IP address for the Full Order Depth Live Updates Channel.
63  /// Blank if none exists.
65 
66  /// Multicast Port for the Full Order Depth Live Updates Channel. `0` if
67  /// none exists.
69 
70  /// Multicast IP address for the Full Order Depth Snapshots Updates
71  /// Channel. Blank if none exists.
72  std::string fodSnapshotIPAddress;
73 
74  /// Multicast Port for the Full Order Depth Snapshots Updates Channel. `0`
75  /// if none exists.
77 
78  /// Multicast IP address for the Price Level Live Updates Channel. Blank
79  /// if none exists.
80  std::string plLiveUpdateIPAddress;
81 
82  /// Multicast Port for the Price Level Live Updates Channel. `0` if none
83  /// exists.
85 
86  /// Multicast IP address for the Price Level Snapshots Updates Channel.
87  /// Blank if none exists.
88  std::string plSnapshotIPAddress;
89 
90  /// Multicast Port for the Price Level Snapshots Updates Channel. `0` if
91  /// none exists.
93 
94  /// Number of price levels on this channel.
96 
97  /// Alias for collection of MarketTypes.
98  typedef std::vector<MarketType> MarketTypes;
99 
100  /// Collection of MarketTypes.
101  MarketTypes marketTypes;
102 
103  /// Default constructor.
104  ChannelGroup();
105 
106  /// Returns string representation.
107  std::string toString() const;
108  };
109 
110  /// Alias for collection of ChannelGroups.
111  typedef std::vector<ChannelGroup> ChannelGroups;
112 
113  /// Collection of ChannelGroups.
114  ChannelGroups channelGroups;
115 
116  /// This nested class represents market type mapping definition.
118  {
119  /// The ID for this Market Type as found in Appendix C.
121 
122  /// The length of the market type name to follow.
124 
125  /// The name of the market type. See MarketTypeNameLength for the number
126  /// of characters.
127  std::string marketTypeName;
128 
129  /// Default constructor.
131 
132  /// Returns string representation.
133  std::string toString() const;
134  };
135 
136  /// Alias for collection of MarketTypeMappings.
137  typedef std::vector<MarketTypeMapping> MarketTypeMappings;
138 
139  /// Collection of MarketTypeMappings.
140  MarketTypeMappings marketTypeMappings;
141 
142  /// Default constructor.
144 
145  /// Initialize from raw message data.
146  MulticastChannelGroups(const char* data, std::size_t dataSize);
147 
148  /// Deserialize from raw data.
149  void deserialize(const char* data, std::size_t dataSize);
150 
151  /// Reset all fields to default values.
152  void reset();
153 
154  /// Returns string representation.
155  std::string toString() const;
156 };
157 
158 /// Make it printable using C++ I/O streams.
159 ONIXS_ICEMDH_EXPORT std::ostream& operator<<(std::ostream&, const MulticastChannelGroups&);
160 
161 }}}} // namespace OnixS::ICE::iMpact::MarketData
short MarketType
Alias for market types.
Definition: Types.h:36
MarketTypeMappings marketTypeMappings
Collection of MarketTypeMappings.
std::ostream & operator<<(std::ostream &, const Error &)
Make it printable to formatted C++ I/O streams.
ChannelGroups channelGroups
Collection of ChannelGroups.
std::vector< MarketTypeMapping > MarketTypeMappings
Alias for collection of MarketTypeMappings.
std::vector< ChannelGroup > ChannelGroups
Alias for collection of ChannelGroups.
short marketTypeNameLength
The length of the market type name to follow.
This nested class represents market type mapping definition.
MarketType marketTypeId
The ID for this Market Type as found in Appendix C.
std::vector< MarketType > MarketTypes
Alias for collection of MarketTypes.
This nested class represents channel group definition.
MulticastChannelGroupType::Enum type
Indicates the type of this channel group.
This class represents the Multicast Channel Groups Message.