ADTF
Loading...
Searching...
No Matches
serializable_intf.h
Go to the documentation of this file.
1
7
8#ifndef _ADTF_UCOM_ANT_SERIALIZABLE_INTERFACE_INCLUDES_HEADER_
9#define _ADTF_UCOM_ANT_SERIALIZABLE_INTERFACE_INCLUDES_HEADER_
10
11namespace adtf
12{
13namespace ucom
14{
15namespace ant
16{
17
18#ifndef ADTF_SERIALIZER_VERSION
22#define ADTF_SERIALIZER_VERSION(_class, currentversion) \
23 typedef _class serializer_type; \
24 struct serializer_info \
25 { \
26 static ::adtf::ucom::ISerializable::tSerializerVersion SerializerVersion() { return currentversion; } \
27 }; \
28 ::adtf::ucom::ISerializable::tSerializerVersion GetCurrentSerializerVersion() const\
29 { \
30 return serializer_type::serializer_info::SerializerVersion(); \
31 }
32#endif //ADTF_SERIALIZER_VERSION
33
39class DOEXPORT ISerializable : public IClassInfo
40{
41public:
43 using tSerializerVersion = uint8_t;
44public:
49 ADTF_IID(ISerializable, "serializable.ant.ucom.adtf.iid");
50
51 public:
61 virtual tResult Serialize(IStream& pOutputStream) const = 0;
62
72 virtual tResult Deserialize(const IStream& pInputStream) = 0;
73
74 virtual tSerializerVersion GetCurrentSerializerVersion() const = 0;
75
76 protected:
78 ~ISerializable() = default;
79};
80
81}//namespace ant
82
85
86}//namespace ucom
87}//namespace adtf
88
89//*************************************************************************************************
90#endif //_ADTF_UCOM_ANT_SERIALIZABLE_INTERFACE_INCLUDES_HEADER_
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition class_info_intf.h:51
Definition serializable_intf.h:40
ADTF_IID(ISerializable, "serializable.ant.ucom.adtf.iid")
~ISerializable()=default
Protected destructor --> Only the final implementation can be destroyed!
virtual tResult Deserialize(const IStream &pInputStream)=0
virtual tResult Serialize(IStream &pOutputStream) const =0
uint8_t tSerializerVersion
Defintion of Serializer Version Type.
Definition serializable_intf.h:43
Definition stream_intf.h:84
Namespace for all functionality of the ADTF UCOM SDK provided since v3.0.
Definition test_runtime.h:14
Namespace for the ADTF uCOM SDK.
Definition adtf_system.h:324
ant::ISerializable ISerializable
Alias always bringing the latest version of ant::ISerializable into scope.
Definition serializable_intf.h:84
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14