OnixS BME SENAF Handler C++ library  2.2.1
API documentation
GenericHighPriorityMessage.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
5  * copyright law and international copyright treaties.
6  *
7  * Access to and use of the software is governed by the terms of the applicable
8  * ONIXS Software Services Agreement (the Agreement) and Customer end user
9  * license agreements granting a non-assignable, non-transferable and
10  * non-exclusive license to use the software for it's own data processing
11  * purposes under the terms defined in the Agreement.
12  *
13  * Except as otherwise granted within the terms of the Agreement, copying or
14  * reproduction of any part of this source code or associated reference material
15  * to any other location for further reproduction or redistribution, and any
16  * amendments to this copyright notice, are expressly prohibited.
17  *
18  * Any reproduction or redistribution for sale or hiring of the Software not in
19  * accordance with the terms of the Agreement is a violation of copyright law.
20  */
21 
22 #pragma once
23 
25 #include <OnixS/Senaf/MarketData/Export.h>
27 
28 #include <iosfwd>
29 #include <string>
30 
31 namespace OnixS { namespace Senaf { namespace MarketData {
32 
33 /// Generic High Priority Message.
34 struct ONIXS_BME_SENAF_EXPORT GenericHighPriorityMessage
35 {
36  /// Message code.
37  enum
38  {
39  code = 102
40  };
41 
42  /// Default constructor.
44 
45  /// Market.
46  ///
47  /// \note If Market = 0, the message is market independent.
48  unsigned char market;
49 
50  /// Instrument Type. Tabulated for each market.
52 
53  /// Reference.
54  ///
55  /// \note If Reference = 0, the message is reference independent.
56  unsigned short reference;
57 
58  /// Source.
59  unsigned char source;
60 
61  /// Recipient of the message. Server, Terminal, API, F-E,…
62  unsigned char recipient;
63 
64  /// Member.
65  ///
66  /// \note If Member = 0, the message is for all members.
67  unsigned char member;
68 
69  /// Session.
70  ///
71  /// If Session = 0, the message is for all the sessions of a member.
72  unsigned char session;
73 
74  /// User.
75  unsigned char user;
76 
77  /// Subtype.
78  unsigned char subtype;
79 
80  /// General information data.
81  struct Subtype001
82  {
83  /// Constructor.
84  ///
85  /// \param inMessage Message.
86  Subtype001(const std::string& inMessage)
87  : message(inMessage)
88  {
89  }
90 
91  /// Text message.
92  std::string message;
93  };
94 
95  /// Text message. General information data.
97 
98  /// Terminal Activate / Block.
99  ///
100  /// \note The server will refuse every order issued by this terminal.
101  struct Subtype002
102  {
103  /// Constructor.
104  ///
105  /// \param inTerminalActivated Terminal Activate / Block.
106  /// \param inChecksum Checksum.
107  Subtype002(bool inTerminalActivated, unsigned char inChecksum)
108  : terminalActivated(inTerminalActivated)
109  , checksum(inChecksum)
110  {
111  }
112 
113  /// Terminal Activate / Block.
115 
116  /// Checksum.
117  unsigned char checksum;
118  };
119 
120  /// Terminal Activate / Block Message.
122 
123  /// Reference or Market Activate / Block Message.
124  ///
125  /// \note The server will refuse every request regarding this Reference or
126  /// Market.
127  struct Subtype003
128  {
129  /// Constructor.
130  ///
131  /// \param inReferenceActivated Reference Activate / Block.
132  /// \param inChecksum Checksum.
133  Subtype003(bool inReferenceActivated, unsigned char inChecksum)
134  : referenceActivated(inReferenceActivated)
135  , checksum(inChecksum)
136  {
137  }
138 
139  /// Reference Activate / Block.
141 
142  /// Checksum.
143  unsigned char checksum;
144  };
145 
146  /// Reference or Market Activate / Block Message.
148 
149  /// Returns string representation.
150  std::string toString() const;
151 
152 private:
153  friend class MessageDeserializer;
154  GenericHighPriorityMessage(const char* data, size_t dataSize);
155  void deserialize(const char* data, size_t dataSize);
156  void reset();
157 };
158 
159 /// Make it printable using C++ I/O streams.
160 ONIXS_BME_SENAF_EXPORT std::ostream& operator<<(std::ostream&, const GenericHighPriorityMessage&);
161 
162 }}} // namespace OnixS::Senaf::MarketData
Subtype003(bool inReferenceActivated, unsigned char inChecksum)
Optional< Subtype002 > subtype002
Terminal Activate / Block Message.
Subtype002(bool inTerminalActivated, unsigned char inChecksum)
InstrumentType::Enum instrumentType
Instrument Type. Tabulated for each market.
std::ostream & operator<<(std::ostream &, const Error &)
Make it printable to formatted C++ I/O streams.
Optional< Subtype001 > subtype001
Text message. General information data.
Optional< Subtype003 > subtype003
Reference or Market Activate / Block Message.
unsigned char recipient
Recipient of the message. Server, Terminal, API, F-E,…