OnixS ICE iMpact Multicast Price Feed Handler C++ library  8.18.0
API documentation
SettlementPrice.h
Go to the documentation of this file.
1 /**
2  * \file
3  * \brief Declare `OnixS::ICE::iMpact::MarketData::SettlementPrice` message structure
4  */
5 /*
6  * Copyright (c) Onix Solutions Limited. All rights reserved.
7  *
8  * This software owned by Onix Solutions Limited and is protected by copyright law
9  * and international copyright treaties.
10  *
11  * Access to and use of the software is governed by the terms of the applicable ONIXS Software
12  * Services Agreement (the Agreement) and Customer end user license agreements granting
13  * a non-assignable, non-transferable and non-exclusive license to use the software
14  * for it's own data processing purposes under the terms defined in the Agreement.
15  *
16  * Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
17  * of this source code or associated reference material to any other location for further reproduction
18  * or redistribution, and any amendments to this copyright notice, are expressly prohibited.
19  *
20  * Any reproduction or redistribution for sale or hiring of the Software not in accordance with
21  * the terms of the Agreement is a violation of copyright law.
22  */
23 
24 #pragma once
25 
26 #include "../Export.h"
27 #include "../Types.h"
28 
29 #include <iosfwd>
30 #include <string>
31 
32 namespace OnixS { namespace ICE { namespace iMpact { namespace MarketData {
33 
34 /// This class represents the Settlement Price Message.
35 struct ONIXS_ICEMDH_EXPORT SettlementPrice
36 {
37  /// Message type constant
38  enum
39  {
40  messageType = 'O'
41  };
42 
43  /// Unique identifier of the market.
45 
46  /// Settlement price. `DealPriceDenominator` for the market should be
47  /// applied to get this price. This field is kept here for backward
48  /// compatibility. Client should use the new SettlementPrice field (added
49  /// in 1.1.14) for better precision. DealPriceDenominator and
50  /// SettlePriceDenominator might be different for some markets.
52 
53  /// Date time the message was sent. Milliseconds since Jan 1st, 1970,
54  /// 00:00:00 GMT.
56 
57  /// Flag to indicate this is official settlement price or not.
58  bool isOfficial;
59 
60  /// Date time the settlement price is for. Milliseconds since Jan 1st,
61  /// 1970, 00:00:00 GMT. Only date (in GMT) is applicable, though time
62  /// value is populated for legacy reason.
64 
65  /// Settlement price. SettlePriceDenominator for the market should be
66  /// applied to get the actual settlement price.
68 
69  /// Default constructor.
71 
72  /// Initialize from raw message data.
73  SettlementPrice(const char* data, std::size_t dataSize);
74 
75  /// Deserialize from raw data.
76  void deserialize(const char* data, std::size_t dataSize);
77 
78  /// Reset all fields to default values.
79  void reset();
80 
81  /// Returns string representation.
82  std::string toString() const;
83 };
84 
85 /// Make it printable using C++ I/O streams.
86 ONIXS_ICEMDH_EXPORT std::ostream& operator<<(std::ostream&, const SettlementPrice&);
87 
88 }}}} // namespace OnixS::ICE::iMpact::MarketData
MarketId marketId
Unique identifier of the market.
long long Price
Alias for order identifiers type.
Definition: Types.h:54
int MarketId
Alias for market identifiers type.
Definition: Types.h:39
std::ostream & operator<<(std::ostream &, const Error &)
Make it printable to formatted C++ I/O streams.
bool isOfficial
Flag to indicate this is official settlement price or not.
This class represents the Settlement Price Message.
long long DateTime
Represents the number of nanoseconds since Jan 1st, 1970, 00:00:00 GMT.
Definition: Types.h:57