OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
TopOfBook.cpp
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 
21 
22 #include "MessageDataStructures.h"
23 
24 #include "../Utils.h"
25 
26 namespace OnixS{
27 namespace Eurex{
28 namespace MarketData{
29 namespace EOBI{
30 
32 
33 std::string TopOfBook::msgType() const
34 {
35  return std::string("U23", 3);
36 }
37 
39 {
40  return EOBI::MarketDataType::TopOfBook; // implied constant
41 }
42 
44 {
45  return EOBI::SecurityIDSource::Marketplace; // implied constant
46 }
47 
49 {
50  return (getData<TopOfBookMsgData>())->TransactTime;
51 }
52 
53 UInt64 TopOfBook::securityID() const
54 {
55  return (getData<TopOfBookMsgData>())->SecurityID;
56 }
57 
58 bool TopOfBook::bidPx(Decimal& price) const
59 {
60  const TopOfBookMsgData* msgData = getData<TopOfBookMsgData>();
62  return false;
63 
64  price = Decimal(msgData->BidPx/100000000.0, 8u);
65  return true;
66 }
67 
68 bool TopOfBook::offerPx(Decimal& price) const
69 {
70  const TopOfBookMsgData* msgData = getData<TopOfBookMsgData>();
72  return false;
73 
74  price = Decimal(msgData->OfferPx/100000000.0, 8u);
75  return true;
76 }
77 
79 {
80  const TopOfBookMsgData* msgData = getData<TopOfBookMsgData>();
81  if (msgData->BidSize == Implementation::UndefinedSize)
82  return false;
83 
84  size = msgData->BidSize;
85  return true;
86 }
87 
89 {
90  const TopOfBookMsgData* msgData = getData<TopOfBookMsgData>();
92  return false;
93 
94  size = msgData->OfferSize;
95  return true;
96 }
97 
98 void TopOfBook::toString(std::string& presentation) const
99 {
100  std::string buffer;
101 
102  try
103  {
104  buffer
105  << "TopOfBook [msgSeqNum="
106  << msgSeqNum()
107  << ", securityID="
108  << securityID();
109 
110  Decimal bid;
111  if(bidPx(bid))
112  buffer << ", bidPx=" << bid.toString();
113 
114  Decimal offer;
115  if(offerPx(offer))
116  buffer << ", offerPx=" << offer.toString();
117 
118  buffer << ']';
119 
120  }
121  catch(...)
122  {
123  buffer.clear();
124 
125  const TopOfBookMsgData* msgData = getData<TopOfBookMsgData>();
126 
127  buffer
128  << "TopOfBook [msgSeqNum=" << msgData->MessageHeader.MsgSeqNum
129  << ", TransactTime=" << msgData->TransactTime
130  << ", SecurityId=" << msgData->SecurityID
131  << ", bidPx=" << msgData->BidPx
132  << ", offerPx=" << msgData->OfferPx;
133 
134  buffer << ']';
135  }
136 
137  presentation << buffer;
138 }
139 
140 }}}}
bool bidSize(QuantityType &size) const
Quantity of bid.
Definition: TopOfBook.cpp:78
bool offerSize(QuantityType &size) const
Quantity of offer.
Definition: TopOfBook.cpp:88
std::string toString() const
Returns text presentation.
Definition: MessageBase.cpp:37
bool bidPx(Decimal &price) const
Bid price/rate.
Definition: TopOfBook.cpp:58
EOBI::MarketDataType::Enum marketDataType() const
Market data type.
Definition: TopOfBook.cpp:38
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63
UInt32 msgSeqNum() const
Message sequence number.
Definition: MessageBase.cpp:32
UInt64 securityID() const
Unique instrument identifier.
Definition: TopOfBook.cpp:53
bool offerPx(Decimal &price) const
Offer price/rate.
Definition: TopOfBook.cpp:68
void toString(std::string &) const
Appends text presentation to given string.
Definition: Decimal.cpp:217
Implementation::TopOfBookMsgData TopOfBookMsgData
Definition: TopOfBook.cpp:31
UInt64 transactTime() const
Transaction timestamp.
Definition: TopOfBook.cpp:48
EOBI::SecurityIDSource::Enum securityIDSource() const
Marketplace assigned identifier.
Definition: TopOfBook.cpp:43
std::string msgType() const
Message type.
Definition: TopOfBook.cpp:33