OnixS BME SENAF Handler C++ library  2.2.1
API documentation
GenericMediumPriorityMessage.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 Medium Priority Message.
34 struct ONIXS_BME_SENAF_EXPORT GenericMediumPriorityMessage
35 {
36  /// Message code.
37  enum
38  {
39  code = 101
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  ///
60  /// \note If Source = 3, is a text message coming from Senaf Market
61  /// Supervision. This message will be shown in a Senaf Terminal “pop up”.
62  unsigned char source;
63 
64  /// Recipient of the message. Server, Terminal, API, F-E,…
65  unsigned char recipient;
66 
67  /// Member.
68  ///
69  /// \note If Member = 0, the message is for all members.
70  unsigned char member;
71 
72  /// Session.
73  ///
74  /// If Session = 0, the message is for all the sessions of a member.
75  unsigned char session;
76 
77  /// User.
78  unsigned char user;
79 
80  /// Subtype.
81  unsigned char subtype;
82 
83  /// General information data.
84  struct Subtype001
85  {
86  /// Constructor.
87  ///
88  /// \param inMessage Message.
89  Subtype001(const std::string& inMessage)
90  : message(inMessage)
91  {
92  }
93 
94  /// Text message.
95  std::string message;
96  };
97 
98  /// Text message. General information data.
100 
101  /// Information message for panic cancellation notification.
102  struct Subtype002
103  {
104  /// Constructor.
105  ///
106  /// \param inMember Member.
107  /// \param inSource Source
108  /// \param inUser User.
109  Subtype002(unsigned char inMember, unsigned char inSource, unsigned char inUser)
110  : member(inMember)
111  , source(inSource)
112  , user(inUser)
113  {
114  }
115 
116  /// Member.
117  unsigned char member;
118 
119  /// Source (Broker, Member or Senaf).
120  unsigned char source;
121 
122  /// User.
123  unsigned char user;
124  };
125 
126  /// This message will be sent to all involved each time a panic
127  /// cancellation is requested from a client, broker or Senaf.
129 
130  /// Returns string representation.
131  std::string toString() const;
132 
133 private:
134  friend class MessageDeserializer;
135  GenericMediumPriorityMessage(const char* data, size_t dataSize);
136  void deserialize(const char* data, size_t dataSize);
137  void reset();
138 };
139 
140 /// Make it printable using C++ I/O streams.
141 ONIXS_BME_SENAF_EXPORT std::ostream& operator<<(std::ostream&, const GenericMediumPriorityMessage&);
142 
143 }}} // namespace OnixS::Senaf::MarketData
Information message for panic cancellation notification.
Optional< Subtype001 > subtype001
Text message. General information data.
Subtype002(unsigned char inMember, unsigned char inSource, unsigned char inUser)
std::ostream & operator<<(std::ostream &, const Error &)
Make it printable to formatted C++ I/O streams.
unsigned char recipient
Recipient of the message. Server, Terminal, API, F-E,…
InstrumentType::Enum instrumentType
Instrument Type. Tabulated for each market.