Guiliani  Version 2.5 revision 7293 (documentation build 13)
GUIStreamWriterJSON.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#ifndef GUI_STREAMWRITER_JSON__H
12#define GUI_STREAMWRITER_JSON__H
13
14#include "GUIStreamWriter.h"
15#include "eC_TList_doubleLinked.h"
16
18
25{
26public:
29
30 virtual void WriteUByte(const eC_UByte ubByte, const eC_Char* const pcTag);
31 virtual void WriteByte(const eC_Byte bByte, const eC_Char* const pcTag);
32 virtual void WriteUInt(const eC_UInt uiInt, const eC_Char* const pcTag);
33 virtual void WriteUShort(const eC_UShort usShort, const eC_Char* const pcTag);
34 virtual void WriteInt(const eC_Int iInt, const eC_Char* const pcTag);
35 virtual void WriteHex(const eC_UInt uiInt, const eC_Char* const pcTag);
36 virtual void WriteColor(const ColorValue_t eColor, const eC_Char* const pcTag);
37 virtual void WriteFloat(const eC_Float fFloat, const eC_Char* const pcTag);
38 virtual void WriteString(const eC_String &pkString, const eC_Char* const pcTag);
39 virtual void WriteShort(const eC_Short iShort, const eC_Char* const pcTag);
40 virtual void WriteBool(const eC_Bool bBool, const eC_Char* const pcTag);
41 virtual void WriteBinary(const eC_TArray<eC_UByte>& aData, const eC_Char* const pcTag);
42
43 virtual void WriteCommentTag(const eC_Char* const pcTag);
44 virtual void WriteCommentTag(const eC_String& kTag);
45
46 virtual void WriteStreamingFileHeader(const eC_Int iFileVersion);
47 virtual eC_Bool SetFileEndianess(FileEndianess_t eFileEndianess);
48 virtual eC_Bool SetFileAlignment(FileAlignment_t eFileAlignment);
49
50private:
56 void WriteNode(const eC_String& kName, const eC_String& kValue, const eC_Bool& bAddDoubleQuotes);
57
61 void WriteNodeName(const eC_String& kName);
62
67 void WriteNodeValue(const eC_String& kValue, const eC_Bool& bAddDoubleQuotes);
68
72 void BeginObject(const eC_String& kName);
73
75 void EndObject();
76
80 void BeginArray(const eC_String& kName);
81
83 void EndArray();
84
85 void WriteIndentation();
86 void WriteLineEnding();
87
88private:
89 enum TokenType_t
90 {
91 TT_OBJECT,
92 TT_ARRAY,
93 TT_NODE
94 };
95
96 typedef struct
97 {
98 TokenType_t eType;
99 eC_UInt uiElementCount;
100 } TokenEntry_t;
101
102private:
104 CGUIStreamWriterJSON& operator=(const CGUIStreamWriterJSON& kSource);
105
106 void WriteUnterminatedString(const eC_String& kString);
107
108private:
110};
111
112#endif
113#endif
Base class for stream writers.
Definition: GUIStreamWriter.h:70
Writes json-formatted streaming files.
Definition: GUIStreamWriterJSON.h:25
virtual void WriteHex(const eC_UInt uiInt, const eC_Char *const pcTag)
virtual void WriteColor(const ColorValue_t eColor, const eC_Char *const pcTag)
virtual void WriteBinary(const eC_TArray< eC_UByte > &aData, const eC_Char *const pcTag)
virtual void WriteCommentTag(const eC_Char *const pcTag)
virtual void WriteUShort(const eC_UShort usShort, const eC_Char *const pcTag)
virtual void WriteFloat(const eC_Float fFloat, const eC_Char *const pcTag)
virtual void WriteShort(const eC_Short iShort, const eC_Char *const pcTag)
virtual void WriteUByte(const eC_UByte ubByte, const eC_Char *const pcTag)
virtual eC_Bool SetFileEndianess(FileEndianess_t eFileEndianess)
virtual void WriteUInt(const eC_UInt uiInt, const eC_Char *const pcTag)
virtual eC_Bool SetFileAlignment(FileAlignment_t eFileAlignment)
virtual void WriteCommentTag(const eC_String &kTag)
virtual void WriteString(const eC_String &pkString, const eC_Char *const pcTag)
virtual void WriteBool(const eC_Bool bBool, const eC_Char *const pcTag)
virtual void WriteByte(const eC_Byte bByte, const eC_Char *const pcTag)
virtual void WriteInt(const eC_Int iInt, const eC_Char *const pcTag)
virtual void WriteStreamingFileHeader(const eC_Int iFileVersion)
structure used to stream colors
Definition: GUICommonTypes.h:24