Guiliani  Version 2.6 revision 7293 (documentation build 12)
GUIStreamWriter.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#ifdef GUILIANI_WRITE_GUI
11
12#ifndef GUISTREAMWRITER__H_
13#define GUISTREAMWRITER__H_
14
15#include "eC_Types.h"
16#include "eC_String.h"
17
18#include "eC_TArrayStack.h"
19
20// CGUICommandPtr
21#include "GUICommand.h"
22
23#include "GUIStreamTypes.h"
24#include "GUICommonTypes.h"
25
26// for types
28#include "GUIImageResource.h"
29#include "GUITextResource.h"
30#include "GUIFontResource.h"
31#include "GUISoundResource.h"
32#include "GUIGeneralResource.h"
33#include "GUIDataPoolResource.h"
34#include "GUIPropertyResource.h"
35#include "GUIColorResource.h"
37
39#define GETOUTPUTSTREAM CGUIStreamWriter::GetInstance()
40
41class eC_File;
43class CGUILayouter;
44class CGUIAnimation;
45class CGUIText;
46
48
70{
71public:
74 static void CreateInstance();
75
78 static void DeleteInstance();
79
82
85
90 void SetStreamingFile(eC_File* pkStreamingFile);
91
96 virtual const eC_String& GetFileSuffix() const;
97
102
106 void WriteLayouterToFile(CGUILayouter* pkLayouter) const;
107
111 void WriteCommandToFile(CGUICommandPtr pkCommand) const;
112
116 void WriteAnimationToFile(CGUIAnimation* pkAnimation) const;
117
121 void WriteTextToFile(CGUIText* pText) const;
122
127 virtual void WriteUByte(const eC_UByte ubByte, const eC_Char* const pcTag) = 0;
128
133 virtual void WriteByte(const eC_Byte bByte, const eC_Char* const pcTag) = 0;
134
139 virtual void WriteUInt(const eC_UInt uiInt, const eC_Char* const pcTag) = 0;
140
145 virtual void WriteUShort(const eC_UShort usShort, const eC_Char* const pcTag) = 0;
146
151 virtual void WriteInt(const eC_Int iInt, const eC_Char* const pcTag) = 0;
152
159 virtual void WriteHex(const eC_UInt uiInt, const eC_Char* const pcTag) = 0;
160
167 virtual void WriteColor(const ColorValue_t eColor, const eC_Char* const pcTag) = 0;
168
173 virtual void WriteFloat(const eC_Float fFloat, const eC_Char* const pcTag) = 0;
174
179 virtual void WriteString(const eC_String &pkString, const eC_Char* const pcTag)=0;
180
185 virtual void WriteShort(const eC_Short iShort, const eC_Char* const pcTag) = 0;
186
191 virtual void WriteBool(const eC_Bool bBool, const eC_Char* const pcTag) = 0;
192
197 virtual void WriteBinary(const eC_TArray<eC_UByte>& aData, const eC_Char* const pcTag) = 0;
198
204 virtual void WriteObjectID(ObjectHandle_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
205
211 virtual void WriteImageID(ImageResource_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
212
218 virtual void WriteTextID(TextResource_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
219
225 virtual void WriteFontID(FontResource_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
226
232 virtual void WriteSoundID(SoundResource_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
233
239 virtual void WriteAnimationChainID(AnimationHandle_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
240
248 const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
249
255 virtual void WriteDataPoolID(DataPoolResource_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
256
262 virtual void WritePropertyID(GlobalProperty_t eID, const eC_Char* const pcTag) { WriteInt(eID, pcTag); }
263
268 virtual void WriteUUID(UUID_t eID, const eC_Char* const pcTag) {}
269
273 virtual void WriteCommentTag(const eC_Char* const pcTag)= 0;
274
278 virtual void WriteCommentTag(const eC_String& kTag)= 0;
279
283 virtual void WriteStreamingFileHeader(const eC_Int iFileVersion) = 0;
284
290 virtual eC_Bool SetFileEndianess(FileEndianess_t eFileEndianess) = 0;
291
297 virtual eC_Bool SetFileAlignment(FileAlignment_t eFileAlignment) = 0;
298
302 FileEndianess_t GetFileEndianess() const
303 {
304 return m_eFileEndianess;
305 }
306
310 FileType_t GetFileType() const
311 {
312 return m_eFileType;
313 }
314
318 FileAlignment_t GetFileAlignment() const
319 {
320 return m_eFileAlignment;
321 }
322
323protected:
329 CGUIStreamWriter(FileType_t eFileType, FileEndianess_t eFileEndianess, FileAlignment_t eFileAlignment);
330
333
335 FileType_t m_eFileType;
336
338 FileEndianess_t m_eFileEndianess;
339
341 FileAlignment_t m_eFileAlignment;
342
343private:
346 CGUIStreamWriter(const CGUIStreamWriter& kSource);
347
350 CGUIStreamWriter& operator=(const CGUIStreamWriter& kSource);
351};
352
353#endif
354
355#endif
Helper Macros in Guiliani
AnimationHandle_t
List of animation resource ids.
Definition: GUIAnimationResource.h:49
Helper Macros in Guiliani
Helper Macros in Guiliani
DataPoolResource_t
List of data pool resource ids.
Definition: GUIDataPoolResource.h:35
Helper Macros in Guiliani
FontResource_t
List of font resource ids.
Definition: GUIFontResource.h:54
Helper Macros in Guiliani
GeneralResource_t
List of general resource ids.
Definition: GUIGeneralResource.h:52
Helper Macros in Guiliani
ImageResource_t
Enumeration of image resource ids.
Definition: GUIImageResource.h:126
Helper Macros in Guiliani
ObjectHandle_t
List of object resource ids.
Definition: GUIObjectHandleResource.h:55
Helper Macros in Guiliani
GlobalProperty_t
List of property resource ids.
Definition: GUIPropertyResource.h:67
Helper Macros in Guiliani
SoundResource_t
List of sound resource ids.
Definition: GUISoundResource.h:48
Helper Macros in Guiliani
TextResource_t
List of text resource ids.
Definition: GUITextResource.h:40
Base class for modular Guiliani animations.
Definition: GUIAnimation.h:75
GUIBehaviourDecorator base class.
Definition: GUIBehaviourDecorator.h:78
Definition: GUILayouter.h:57
Base class for stream writers.
Definition: GUIStreamWriter.h:70
virtual void WriteUUID(UUID_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:268
virtual void WriteSoundID(SoundResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:232
virtual eC_Bool SetFileEndianess(FileEndianess_t eFileEndianess)=0
virtual void WriteFloat(const eC_Float fFloat, const eC_Char *const pcTag)=0
void WriteCommandToFile(CGUICommandPtr pkCommand) const
virtual ~CGUIStreamWriter()
Destructor.
virtual void WriteUByte(const eC_UByte ubByte, const eC_Char *const pcTag)=0
FileAlignment_t m_eFileAlignment
Alignment of the file.
Definition: GUIStreamWriter.h:341
void SetStreamingFile(eC_File *pkStreamingFile)
FileEndianess_t GetFileEndianess() const
Definition: GUIStreamWriter.h:302
void WriteBehaviourToFile(CGUIBehaviourDecorator *pkBehaviour) const
virtual void WriteHex(const eC_UInt uiInt, const eC_Char *const pcTag)=0
virtual void WriteGeneralResourceID(GeneralResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:247
static void CreateInstance()
virtual void WriteBool(const eC_Bool bBool, const eC_Char *const pcTag)=0
virtual void WriteDataPoolID(DataPoolResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:255
virtual void WriteShort(const eC_Short iShort, const eC_Char *const pcTag)=0
virtual void WriteAnimationChainID(AnimationHandle_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:239
virtual void WritePropertyID(GlobalProperty_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:262
virtual void WriteImageID(ImageResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:211
virtual void WriteString(const eC_String &pkString, const eC_Char *const pcTag)=0
eC_File * m_pkStreamingFile
The file that the content is written into.
Definition: GUIStreamWriter.h:332
virtual void WriteTextID(TextResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:218
static void DeleteInstance()
virtual void WriteUShort(const eC_UShort usShort, const eC_Char *const pcTag)=0
virtual void WriteByte(const eC_Byte bByte, const eC_Char *const pcTag)=0
CGUIStreamWriter(FileType_t eFileType, FileEndianess_t eFileEndianess, FileAlignment_t eFileAlignment)
virtual void WriteColor(const ColorValue_t eColor, const eC_Char *const pcTag)=0
void WriteLayouterToFile(CGUILayouter *pkLayouter) const
virtual void WriteCommentTag(const eC_String &kTag)=0
virtual void WriteBinary(const eC_TArray< eC_UByte > &aData, const eC_Char *const pcTag)=0
FileEndianess_t m_eFileEndianess
Endianess of the file.
Definition: GUIStreamWriter.h:338
virtual void WriteObjectID(ObjectHandle_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:204
virtual void WriteCommentTag(const eC_Char *const pcTag)=0
virtual void WriteStreamingFileHeader(const eC_Int iFileVersion)=0
FileType_t m_eFileType
File Type.
Definition: GUIStreamWriter.h:335
virtual void WriteInt(const eC_Int iInt, const eC_Char *const pcTag)=0
FileAlignment_t GetFileAlignment() const
Definition: GUIStreamWriter.h:318
void WriteAnimationToFile(CGUIAnimation *pkAnimation) const
virtual void WriteFontID(FontResource_t eID, const eC_Char *const pcTag)
Definition: GUIStreamWriter.h:225
virtual eC_Bool SetFileAlignment(FileAlignment_t eFileAlignment)=0
FileType_t GetFileType() const
Definition: GUIStreamWriter.h:310
static CGUIStreamWriter & GetInstance()
void WriteTextToFile(CGUIText *pText) const
virtual void WriteUInt(const eC_UInt uiInt, const eC_Char *const pcTag)=0
virtual const eC_String & GetFileSuffix() const
Class for handling a text.
Definition: GUIText.h:103
structure used to stream colors
Definition: GUICommonTypes.h:24
Definition: GUIStreamTypes.h:43