Wizard
Software Engineering Project - Wizard
Loading...
Searching...
No Matches
archiver.h
1#ifndef ARCHIVER_H_
2#define ARCHIVER_H_
3
4#include <cstddef>
5#include <string>
6
16
19
22
25
28
32
35
38
45
48
51
57public:
59
63 JsonReader(const char* json);
64
67
68 // Archive concept
69
70 operator bool() const { return !mError; }
71
72 JsonReader& StartObject();
73 JsonReader& Member(const char* name);
74 bool HasMember(const char* name) const;
75 JsonReader& EndObject();
76
77 JsonReader& StartArray(size_t* size = 0);
78 JsonReader& EndArray();
79
80 JsonReader& operator&(bool& b);
81 JsonReader& operator&(unsigned& u);
82 JsonReader& operator&(int& i);
83 JsonReader& operator&(double& d);
84 JsonReader& operator&(std::string& s);
85
86 JsonReader& SetNull();
87
88 static const bool IsReader = true;
89 static const bool IsWriter = !IsReader;
90
91private:
92 JsonReader(const JsonReader&);
93 JsonReader& operator=(const JsonReader&);
94
95 void Next();
96
97 // PIMPL
98 void* mDocument;
99 void* mStack;
100 bool mError;
101};
102
104public:
106 JsonWriter();
107
109 ~JsonWriter();
110
112 const char* GetString() const;
113
114 // Archive concept
115
116 operator bool() const { return true; }
117
118 JsonWriter& StartObject();
119 JsonWriter& Member(const char* name);
120 bool HasMember(const char* name) const;
121 JsonWriter& EndObject();
122
123 JsonWriter& StartArray(size_t* size = 0);
124 JsonWriter& EndArray();
125
126 JsonWriter& operator&(bool& b);
127 JsonWriter& operator&(unsigned& u);
128 JsonWriter& operator&(int& i);
129 JsonWriter& operator&(double& d);
130 JsonWriter& operator&(std::string& s);
131 JsonWriter& SetNull();
132
133 static const bool IsReader = false;
134 static const bool IsWriter = !IsReader;
135
136private:
137 JsonWriter(const JsonWriter&);
138 JsonWriter& operator=(const JsonWriter&);
139
140 // PIMPL idiom
141 void* mWriter;
142 void* mStream;
143};
144
145#endif // ARCHIVER_H__
Represents a JSON reader which implements Archiver concept.
Definition archiver.h:56
~JsonReader()
Destructor.
Definition archiver.cpp:42
JsonReader(const char *json)
Constructor.
Definition archiver.cpp:31
Definition archiver.h:103
const char * GetString() const
Obtains the serialized JSON string.
Definition archiver.cpp:226
JsonWriter()
Constructor.
Definition archiver.cpp:216
~JsonWriter()
Destructor.
Definition archiver.cpp:221