Electroneum
Toggle main menu visibility
Loading...
Searching...
No Matches
archiver.h
Go to the documentation of this file.
1
#ifndef ARCHIVER_H_
2
#define ARCHIVER_H_
3
4
#include <cstddef>
5
#include <string>
6
16
operator bool() const;
17
19
Archiver& StartObject();
20
22
Archiver& Member(const char* name);
23
25
bool HasMember(const char* name) const;
26
28
Archiver& EndObject();
29
32
Archiver& StartArray(size_t* size = 0);
33
35
Archiver& EndArray();
36
38
Archiver& operator&(bool& b);
39
Archiver& operator&(unsigned& u);
40
Archiver& operator&(int& i);
41
Archiver& operator&(double& d);
42
Archiver& operator&(std::string& s);
43
45
Archiver& SetNull();
46
48
static const bool IsReader;
49
51
static const bool IsWriter;
52
};
53
*/
54
56
class
JsonReader
{
57
public
:
59
63
JsonReader
(
const
char
*
json
);
64
66
~JsonReader
();
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
91
private
:
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
103
class
JsonWriter
{
104
public
:
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
136
private
:
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__
JsonReader
Represents a JSON reader which implements Archiver concept.
Definition
archiver.h:56
JsonReader::EndArray
JsonReader & EndArray()
Definition
archiver.cpp:109
JsonReader::HasMember
bool HasMember(const char *name) const
Definition
archiver.cpp:83
JsonReader::~JsonReader
~JsonReader()
Destructor.
Definition
archiver.cpp:42
JsonReader::StartArray
JsonReader & StartArray(size_t *size=0)
Definition
archiver.cpp:89
JsonReader::JsonReader
JsonReader(const char *json)
Constructor.
Definition
archiver.cpp:31
JsonReader::IsReader
static const bool IsReader
Definition
archiver.h:88
JsonReader::EndObject
JsonReader & EndObject()
Definition
archiver.cpp:58
JsonReader::operator&
JsonReader & operator&(bool &b)
Definition
archiver.cpp:119
JsonReader::Member
JsonReader & Member(const char *name)
Definition
archiver.cpp:68
JsonReader::IsWriter
static const bool IsWriter
Definition
archiver.h:89
JsonReader::SetNull
JsonReader & SetNull()
Definition
archiver.cpp:179
JsonReader::StartObject
JsonReader & StartObject()
Definition
archiver.cpp:48
JsonWriter
Definition
archiver.h:103
JsonWriter::operator&
JsonWriter & operator&(bool &b)
Definition
archiver.cpp:261
JsonWriter::SetNull
JsonWriter & SetNull()
Definition
archiver.cpp:286
JsonWriter::IsReader
static const bool IsReader
Definition
archiver.h:133
JsonWriter::Member
JsonWriter & Member(const char *name)
Definition
archiver.cpp:240
JsonWriter::GetString
const char * GetString() const
Obtains the serialized JSON string.
Definition
archiver.cpp:226
JsonWriter::IsWriter
static const bool IsWriter
Definition
archiver.h:134
JsonWriter::StartArray
JsonWriter & StartArray(size_t *size=0)
Definition
archiver.cpp:251
JsonWriter::EndObject
JsonWriter & EndObject()
Definition
archiver.cpp:235
JsonWriter::EndArray
JsonWriter & EndArray()
Definition
archiver.cpp:256
JsonWriter::JsonWriter
JsonWriter()
Constructor.
Definition
archiver.cpp:216
JsonWriter::~JsonWriter
~JsonWriter()
Destructor.
Definition
archiver.cpp:221
JsonWriter::StartObject
JsonWriter & StartObject()
Definition
archiver.cpp:230
JsonWriter::HasMember
bool HasMember(const char *name) const
Definition
archiver.cpp:245
json
rapidjson::Document json
Definition
transport.cpp:49
external
rapidjson
example
archiver
archiver.h
Generated on
for Electroneum by
1.17.0