OnixS C++ Eurex T7 Market and Reference Data Interface (EMDI, RDI, EOBI) Handlers  7.4.2
API documentation
OrderModify.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 OrderModify::msgType() const
34 {
35  return std::string("U21", 3);
36 }
37 
39 {
40  return EOBI::MarketDataType::OrderBookMaintenance; // implied constant
41 }
42 
44 {
45  return EOBI::MDUpdateAction::Change; // implied constant
46 }
47 
49 {
50  return EOBI::SecurityIDSource::Marketplace; // implied constant
51 }
52 
54 {
55  return (getData<OrderModifyMsgData>())->SecurityID;
56 }
57 
59 {
60  return static_cast<EOBI::Side::Enum>((getData<OrderModifyMsgData>())->OrderDetails.Side);
61 }
62 
64 {
65  return (getData<OrderModifyMsgData>())->TrdRegTSTimeIn;
66 }
67 
69 {
70  return (getData<OrderModifyMsgData>())->TrdRegTSPrevTimePriority;
71 }
72 
74 {
75  return (getData<OrderModifyMsgData>())->OrderDetails.TrdRegTSTimePriority;
76 }
77 
78 bool OrderModify::prevPrice (Decimal& value) const
79 {
80  const OrderModifyMsgData* msgData = getData<OrderModifyMsgData>();
82  return false;
83 
84  value = Decimal(msgData->PrevPrice/100000000.0, 8u);
85  return true;
86 }
87 
89 {
90  return (getData<OrderModifyMsgData>())->PrevDisplayQty;
91 }
92 
94 {
95  return (getData<OrderModifyMsgData>())->OrderDetails.DisplayQty;
96 }
97 
99 {
100  return static_cast<EOBI::OrderType::Enum>((getData<OrderModifyMsgData>())->OrderDetails.OrdType);
101 }
102 
103 bool OrderModify::price (Decimal& value) const
104 {
105  const OrderModifyMsgData* msgData = getData<OrderModifyMsgData>();
107  return false;
108 
109  value = Decimal(msgData->OrderDetails.Price/100000000.0, 8u);
110  return true;
111 }
112 
113 void OrderModify::toString(std::string& presentation) const
114 {
115  presentation
116  << "OrderModify [msgSeqNum="
117  << msgSeqNum()
118  << ", securityID="
119  << securityID()
120  << ", side="
121  << Side::toString(side())
122  << ", trdRegTSTimeIn="
123  << trdRegTSTimeIn()
124  << ", trdRegTSPrevTimePriority="
126  << ", trdRegTSTimePriority="
128 
129  Decimal pp;
130  if(prevPrice(pp))
131  presentation << ", prevPrice=" << pp.toString();
132 
133  presentation << ", prevDisplayQty="
134  << prevDisplayQty()
135  << ", displayQty="
136  << displayQty()
137  << ", ordType=" << OrderType::toString(ordType());
138 
139  Decimal p;
140  if(price(p))
141  presentation << ", price=" << p.toString();
142 
143  presentation << ']';
144 }
145 
146 }}}}
QuantityType displayQty() const
Quantity.
Definition: OrderModify.cpp:93
std::string toString() const
Returns text presentation.
Definition: MessageBase.cpp:37
bool price(Decimal &price) const
Price.
bool prevPrice(Decimal &price) const
Previous order price.
Definition: OrderModify.cpp:78
UInt64 trdRegTSTimePriority() const
Priority timestamp (new)
Definition: OrderModify.cpp:73
EOBI::OrderType::Enum ordType() const
Reserved for future release.
Definition: OrderModify.cpp:98
EOBI::MDUpdateAction::Enum mdUpdateAction() const
Type of Market Data update action.
Definition: OrderModify.cpp:43
UInt64 trdRegTSPrevTimePriority() const
Previous order priority timestamp.
Definition: OrderModify.cpp:68
Definition: Defines.h:30
Decimal type for better precision.
Definition: Numeric.h:63
UInt32 msgSeqNum() const
Message sequence number.
Definition: MessageBase.cpp:32
EOBI::Side::Enum side() const
Side of the order.
Definition: OrderModify.cpp:58
EOBI::SecurityIDSource::Enum securityIDSource() const
Marketplace assigned identifier.
Definition: OrderModify.cpp:48
std::string msgType() const
Message type.
Definition: OrderModify.cpp:33
EOBI::Implementation::OrderModifyMsgData OrderModifyMsgData
Definition: OrderModify.cpp:31
void toString(std::string &) const
Appends text presentation to given string.
Definition: Decimal.cpp:217
static std::string toString(Enum value)
Definition: Defines.cpp:611
static std::string toString(Enum value)
Definition: Defines.cpp:148
UInt64 trdRegTSTimeIn() const
Matching engine In timestamp.
Definition: OrderModify.cpp:63
EOBI::MarketDataType::Enum marketDataType() const
Market data type.
Definition: OrderModify.cpp:38
UInt64 securityID() const
Unique instrument identifier.
Definition: OrderModify.cpp:53