EMA C++ Edition
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 Refinitiv. All rights reserved. --
6  *|-----------------------------------------------------------------------------
7  */
8 
9 #ifndef __thomsonreuters_ema_access_Data_h
10 #define __thomsonreuters_ema_access_Data_h
11 
28 
29 namespace thomsonreuters {
30 
31 namespace ema {
32 
33 namespace access {
34 
35 class Decoder;
36 class Encoder;
37 
39 {
40 public :
41 
45  enum DataCode
46  {
47  NoCodeEnum = 0,
50  BlankEnum = 1
52  };
53 
55 
56 
59  const EmaString& getCodeAsString() const;
60 
64  virtual DataType::DataTypeEnum getDataType() const = 0;
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 
95 protected:
96 
97  Data();
98 
99 private :
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 // __thomsonreuters_ema_access_Data_h
FieldEntry represents an entry of FieldList.
Definition: FieldEntry.h:98
FilterList is a heterogeneous container of complex data type entries.
Definition: FilterList.h:132
unsigned long long UInt64
represents 64-bit unsigned integer
Definition: Common.h:68
EmaString class is a container of a null terminated Ascii character string.
Definition: EmaString.h:56
EmaBuffer represents a general use binary buffer.
Definition: EmaBuffer.h:32
ReqMsg allows consumer application to express its interest in an item.
Definition: ReqMsg.h:58
#define EMA_ACCESS_API
Definition: Common.h:95
Vector is a homogeneous container of complex data type entries.
Definition: Vector.h:121
SeriesEntry represents an entry of Series.
Definition: SeriesEntry.h:86
FilterEntry represents an entry of FilterList.
Definition: FilterEntry.h:88
StatusMsg conveys item state information.
Definition: StatusMsg.h:79
RefreshMsg conveys item image, state, permission and group information.
Definition: RefreshMsg.h:78
VectorEntry represents an entry of Vector.
Definition: VectorEntry.h:86
GenericMsg allows applications to bidirectionally send messages without any implied message semantics...
Definition: GenericMsg.h:86
MapEntry represents an entry of Map.
Definition: MapEntry.h:95
ElementList is a heterogeneous container of complex and primitive data type entries.
Definition: ElementList.h:176
OmmArray is a homogeneous container of primitive data type entries.
Definition: OmmArray.h:85
FieldList is a heterogeneous container of complex and primitive data type entries.
Definition: FieldList.h:178
UpdateMsg conveys changes to item data.
Definition: UpdateMsg.h:71
Series is a homogeneous container of complex data type entries.
Definition: Series.h:128
Map is a homogeneous container of complex data type entries.
Definition: Map.h:124
PostMsg allows consumer applications to contribute content.
Definition: PostMsg.h:61
Data class is a parent abstract class defining common interfaces for all Data type classes...
Definition: Data.h:38
AckMsg indicates success or failure of PostMsg.
Definition: AckMsg.h:67
ElementEntry represents an entry of ElementList.
Definition: ElementEntry.h:96