Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIStreamableObject.h
1/*
2* Copyright (C) TES Electronic Solutions GmbH,
3* All Rights Reserved.
4* Contact: info@guiliani.de
5*
6* This file is part of the Guiliani HMI framework
7* for the development of graphical user interfaces on embedded systems.
8*/
9
10#ifndef GUISTREAMABLEOBJECT__H_
11#define GUISTREAMABLEOBJECT__H_
12
13#include "eC_Types.h"
14#include "GUIStreamTypes.h"
15
16#ifdef GUILIANI_WRITE_GUI
17#include "eC_String.h"
18#endif
19
24#ifndef GUILIANI_WRITE_GUI
25 #define SetXMLTag(a) SetXMLTag()
26#endif
27
30
32
46{
47public:
48 virtual ~CGUIStreamableObject() {}
49
50#if defined(GUILIANI_STREAM_GUI) || defined(GUILIANI_WRITE_GUI)
53 static const eC_Char XMLTAG_CLASSVERSION[];
54#endif
55
56#if defined(GUILIANI_STREAM_GUI)
62 virtual void ReadFromStream() {}
63#endif
64
65#if defined(GUILIANI_WRITE_GUI)
76 virtual void WriteToStream(const eC_Bool bWriteClassID = false) {}
77#endif
78
84 void SetXMLTag(const eC_String& kXMLTag)
85 {
86#if defined(GUILIANI_WRITE_GUI)
87 m_kXMLTag = kXMLTag;
88#endif
89 }
90
91#if defined(GUILIANI_WRITE_GUI)
97 const eC_String& GetXMLTag() const { return m_kXMLTag; }
98#endif
99
104
105protected:
106#if defined(GUILIANI_STREAM_GUI)
114 eC_UInt ReadStreamingHeader(const eC_UInt& uiClassVersion, const eC_UInt& uiClassMinVersion = 0) const;
115#endif
116
117#if defined(GUILIANI_WRITE_GUI)
125 void WriteStreamingHeader(const eC_Bool& bWriteClassID, const eC_Char* const pkClassIDTag, const eC_Int& iClassID, const eC_UInt& uiClassVersion) const;
126
131 void WriteStreamingFooter(const eC_Bool& bWriteClassID) const;
132
133private:
134 eC_String m_kXMLTag;
135#endif
136};
137
138#endif
Base class for streamable objects.
Definition: GUIStreamableObject.h:46
void WriteStreamingFooter(const eC_Bool &bWriteClassID) const
const eC_String & GetXMLTag() const
Definition: GUIStreamableObject.h:97
void SetXMLTag(const eC_String &kXMLTag)
Definition: GUIStreamableObject.h:84
virtual void ReadFromStream()
Definition: GUIStreamableObject.h:62
void WriteStreamingHeader(const eC_Bool &bWriteClassID, const eC_Char *const pkClassIDTag, const eC_Int &iClassID, const eC_UInt &uiClassVersion) const
virtual void WriteToStream(const eC_Bool bWriteClassID=false)
Definition: GUIStreamableObject.h:76
static const eC_Char XMLTAG_CLASSVERSION[]
Definition: GUIStreamableObject.h:53
eC_UInt ReadStreamingHeader(const eC_UInt &uiClassVersion, const eC_UInt &uiClassMinVersion=0) const
static UUID_t GenerateUUID()
Definition: GUIStreamTypes.h:43