EMA C++ Edition
ReqMsg.h
Go to the documentation of this file.
1/*|-----------------------------------------------------------------------------
2 *| This source code is provided under the Apache 2.0 license
3 *| and is provided AS IS with no warranty or guarantee of fit for purpose.
4 *| See the project's LICENSE.md for details.
5 *| Copyright (C) 2019, 2024 LSEG. All rights reserved. --
6 *|-----------------------------------------------------------------------------
7 */
8
9#ifndef __refinitiv_ema_access_ReqMsg_h
10#define __refinitiv_ema_access_ReqMsg_h
11
50#include "Access/Include/Msg.h"
51#include "DataDictionary.h"
52
53namespace refinitiv {
54
55namespace ema {
56
57namespace access {
58
60{
61public :
62
66 enum Rate
67 {
68 TickByTickEnum = 0,
71 JustInTimeConflatedEnum = 0xFFFFFF00,
74 BestConflatedRateEnum = 0xFFFFFFFF,
76 BestRateEnum = 0xFFFFFFFE
77 };
78
83 {
84 RealTimeEnum = 0,
87 BestDelayedTimelinessEnum = 0xFFFFFFFF,
89 BestTimelinessEnum = 0xFFFFFFFE
90 };
91
93
94
97
102 ReqMsg( const ReqMsg& other );
104
106
107
109 virtual ~ReqMsg();
111
113
114
118
123
128
133
137 const EmaBuffer& getAsHex() const;
138
142 const EmaString& toString() const;
143
148 const EmaString& toString( const refinitiv::ema::rdm::DataDictionary& dictionary ) const;
149
154 bool hasPriority() const;
155
160 bool hasQos() const;
161
166 bool hasView() const;
167
172 bool hasBatch() const;
173
178 bool hasServiceName() const;
179
185
191
197
203
207 bool getInitialImage() const;
208
213
218
222 bool getPause() const;
223
227 bool getPrivateStream() const;
228
233 const EmaString& getServiceName() const;
235
237
238
243
248 ReqMsg& streamId( Int32 streamId );
249
256
261 ReqMsg& name( const EmaString& name );
262
268
275 ReqMsg& serviceName( const EmaString& serviceName );
276
283 ReqMsg& serviceId( UInt32 serviceId );
284
290
295 ReqMsg& filter( UInt32 filter );
296
302 ReqMsg& priority( UInt8 priorityClass = 1, UInt16 priorityCount = 1 );
303
309 ReqMsg& qos( UInt32 timeliness = BestTimelinessEnum, UInt32 rate = BestRateEnum );
310
315 ReqMsg& attrib( const ComplexType& data );
316
321 ReqMsg& payload( const ComplexType& data );
322
327 ReqMsg& extendedHeader( const EmaBuffer& Buffer );
328
333 ReqMsg& initialImage( bool initialImage = true );
334
339 ReqMsg& interestAfterRefresh( bool interestAfterRefresh = true );
340
345 ReqMsg& pause( bool pause = false );
346
351 ReqMsg& conflatedInUpdates( bool conflatedInUpdates = false );
352
357 ReqMsg& privateStream( bool privateStream = false );
359
360private :
361
362 friend class MarketItemHandler;
363 friend class DirectoryHandler;
364 friend class DictionaryHandler;
365
366 const EmaString& toString( UInt64 ) const;
367
368 Decoder& getDecoder();
369
370 ReqMsg& operator=( const ReqMsg& );
371
372 mutable EmaString _toString;
373};
374
375}
376
377}
378
379}
380
381#endif // __refinitiv_ema_access_ReqMsg_h
#define EMA_ACCESS_API
Definition: Common.h:95
*|--------------------------------------------------------------------------—
Definition: AckMsg.h:62
int Int32
represents 32-bit signed integer
Definition: Common.h:62
unsigned int UInt32
represents 32-bit unsigned integer
Definition: Common.h:56
unsigned char UInt8
represents 8-bit unsigned integer
Definition: Common.h:32
unsigned short UInt16
represents 16-bit unsigned integer
Definition: Common.h:44
unsigned long long UInt64
represents 64-bit unsigned integer
Definition: Common.h:68
The access namespace contains all interfaces and definitions specified for use with the EMA Access pa...
static const refinitiv::ema::access::UInt8 MMT_MARKET_PRICE
Definition: EmaRdm.h:50
static const refinitiv::ema::access::UInt8 INSTRUMENT_NAME_RIC
Definition: EmaRdm.h:197
The ema namespace contains all interfaces and definitions specified for use with EMA.
ComplexType class is a parent class from whom all complex data types inherit.
Definition: ComplexType.h:34
EmaBuffer represents a general use binary buffer.
Definition: EmaBuffer.h:33
EmaString class is a container of a null terminated Ascii character string.
Definition: EmaString.h:57
Msg class is a parent class for all message representing classes.
Definition: Msg.h:46
ReqMsg allows consumer application to express its interest in an item.
Definition: ReqMsg.h:60
ReqMsg & attrib(const ComplexType &data)
ReqMsg & serviceId(UInt32 serviceId)
Data::DataCode getCode() const
const EmaString & toString(const refinitiv::ema::rdm::DataDictionary &dictionary) const
ReqMsg & extendedHeader(const EmaBuffer &Buffer)
DataType::DataTypeEnum getDataType() const
const EmaString & getTimelinessAsString() const
ReqMsg & interestAfterRefresh(bool interestAfterRefresh=true)
ReqMsg(const ReqMsg &other)
ReqMsg & initialImage(bool initialImage=true)
ReqMsg & name(const EmaString &name)
const EmaString & toString() const
ReqMsg & nameType(UInt8 nameType=rdm::INSTRUMENT_NAME_RIC)
ReqMsg & streamId(Int32 streamId)
const EmaString & getServiceName() const
ReqMsg & privateStream(bool privateStream=false)
ReqMsg & payload(const ComplexType &data)
ReqMsg & pause(bool pause=false)
ReqMsg & qos(UInt32 timeliness=BestTimelinessEnum, UInt32 rate=BestRateEnum)
ReqMsg & serviceName(const EmaString &serviceName)
ReqMsg & filter(UInt32 filter)
const EmaBuffer & getAsHex() const
ReqMsg & priority(UInt8 priorityClass=1, UInt16 priorityCount=1)
const EmaString & getRateAsString() const
ReqMsg & conflatedInUpdates(bool conflatedInUpdates=false)
ReqMsg & domainType(UInt16 domainType=rdm::MMT_MARKET_PRICE)