EMA C++ Edition
Data.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 LSEG. All rights reserved. --
6 *|-----------------------------------------------------------------------------
7 */
8
9#ifndef __refinitiv_ema_access_Data_h
10#define __refinitiv_ema_access_Data_h
11
28
29namespace refinitiv {
30
31namespace ema {
32
33namespace access {
34
35class Decoder;
36class Encoder;
37
39{
40public :
41
46 {
47 NoCodeEnum = 0,
50 BlankEnum = 1
52 };
53
55
56
59 const EmaString& getCodeAsString() const;
60
65
69 virtual DataCode getCode() const = 0;
70
74 virtual const EmaBuffer& getAsHex() const = 0;
75
79 virtual const EmaString& toString() const = 0;
80
85 operator const char*() const;
87
89
90
92 virtual ~Data();
94
95protected:
96
98
99private :
100
101 friend class Decoder;
102 friend class StaticDecoder;
103 friend class MsgDecoder;
104
105 friend class AckMsgEncoder;
106 friend class GenericMsgEncoder;
107 friend class PostMsgEncoder;
108 friend class ReqMsgEncoder;
109 friend class RefreshMsgEncoder;
110 friend class StatusMsgEncoder;
111 friend class UpdateMsgEncoder;
112
113 friend class ElementListEncoder;
114 friend class FieldListEncoder;
115 friend class FilterListEncoder;
116 friend class MapEncoder;
117 friend class VectorEncoder;
118 friend class SeriesEncoder;
119
120 friend class ElementListDecoder;
121 friend class FieldListDecoder;
122
123 friend class OmmArray;
124 friend class AckMsg;
125 friend class GenericMsg;
126 friend class PostMsg;
127 friend class ReqMsg;
128 friend class RefreshMsg;
129 friend class StatusMsg;
130 friend class UpdateMsg;
131
132 friend class ElementList;
133 friend class FieldList;
134 friend class FilterList;
135 friend class Map;
136 friend class Series;
137 friend class Vector;
138
139 friend class FieldEntry;
140 friend class ElementEntry;
141 friend class MapEntry;
142 friend class FilterEntry;
143 friend class VectorEntry;
144 friend class SeriesEntry;
145
146 virtual Decoder& getDecoder() = 0;
147 virtual bool hasDecoder() const = 0;
148 virtual const EmaString& toString( UInt64 indent ) const = 0;
149 virtual const Encoder& getEncoder() const = 0;
150 virtual bool hasEncoder() const = 0;
151
152 Data( const Data& );
153 Data& operator=( const Data& );
154};
155
156}
157
158}
159
160}
161
162#endif // __refinitiv_ema_access_Data_h
#define EMA_ACCESS_API
Definition: Common.h:95
*|--------------------------------------------------------------------------—
Definition: AckMsg.h:62
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...
The ema namespace contains all interfaces and definitions specified for use with EMA.
AckMsg indicates success or failure of PostMsg.
Definition: AckMsg.h:69
Data class is a parent abstract class defining common interfaces for all Data type classes.
Definition: Data.h:39
virtual DataType::DataTypeEnum getDataType() const =0
const EmaString & getCodeAsString() const
virtual const EmaBuffer & getAsHex() const =0
virtual DataCode getCode() const =0
virtual const EmaString & toString() const =0
ElementEntry represents an entry of ElementList.
Definition: ElementEntry.h:97
ElementList is a heterogeneous container of complex and primitive data type entries.
Definition: ElementList.h:178
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
FieldEntry represents an entry of FieldList.
Definition: FieldEntry.h:99
FieldList is a heterogeneous container of complex and primitive data type entries.
Definition: FieldList.h:180
FilterEntry represents an entry of FilterList.
Definition: FilterEntry.h:89
FilterList is a heterogeneous container of complex data type entries.
Definition: FilterList.h:134
GenericMsg allows applications to bidirectionally send messages without any implied message semantics...
Definition: GenericMsg.h:88
Map is a homogeneous container of complex data type entries.
Definition: Map.h:126
MapEntry represents an entry of Map.
Definition: MapEntry.h:96
OmmArray is a homogeneous container of primitive data type entries.
Definition: OmmArray.h:87
PostMsg allows consumer applications to contribute content.
Definition: PostMsg.h:63
RefreshMsg conveys item image, state, permission and group information.
Definition: RefreshMsg.h:80
ReqMsg allows consumer application to express its interest in an item.
Definition: ReqMsg.h:60
Series is a homogeneous container of complex data type entries.
Definition: Series.h:130
SeriesEntry represents an entry of Series.
Definition: SeriesEntry.h:87
StatusMsg conveys item state information.
Definition: StatusMsg.h:81
UpdateMsg conveys changes to item data.
Definition: UpdateMsg.h:73
Vector is a homogeneous container of complex data type entries.
Definition: Vector.h:123
VectorEntry represents an entry of Vector.
Definition: VectorEntry.h:87