Monero
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
57public:
59
63 JsonReader(const char* json);
64
67
68 // Archive concept
69
70 operator bool() const { return !mError; }
71
73 JsonReader& Member(const char* name);
74 bool HasMember(const char* name) const;
76
77 JsonReader& StartArray(size_t* size = 0);
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
87
88 static const bool IsReader = true;
89 static const bool IsWriter = !IsReader;
90
91private:
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
119 JsonWriter& Member(const char* name);
120 bool HasMember(const char* name) const;
122
123 JsonWriter& StartArray(size_t* size = 0);
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);
132
133 static const bool IsReader = false;
134 static const bool IsWriter = !IsReader;
135
136private:
139
140 // PIMPL idiom
141 void* mWriter;
142 void* mStream;
143};
144
145#endif // ARCHIVER_H__
#define s(x, c)
Definition aesb.c:47
cryptonote::block b
Definition block.cpp:40
Represents a JSON reader which implements Archiver concept.
Definition archiver.h:56
JsonReader & EndArray()
Definition archiver.cpp:109
bool HasMember(const char *name) const
Definition archiver.cpp:83
~JsonReader()
Destructor.
Definition archiver.cpp:42
JsonReader & StartArray(size_t *size=0)
Definition archiver.cpp:89
JsonReader(const char *json)
Constructor.
Definition archiver.cpp:31
static const bool IsReader
Definition archiver.h:88
void * mDocument
DOM result of parsing.
Definition archiver.h:98
JsonReader & EndObject()
Definition archiver.cpp:58
void * mStack
Stack for iterating the DOM.
Definition archiver.h:99
JsonReader & operator&(bool &b)
Definition archiver.cpp:119
JsonReader & Member(const char *name)
Definition archiver.cpp:68
JsonReader(const JsonReader &)
void Next()
Definition archiver.cpp:185
bool mError
Whether an error has occurred.
Definition archiver.h:100
JsonReader & operator=(const JsonReader &)
static const bool IsWriter
Definition archiver.h:89
JsonReader & SetNull()
Definition archiver.cpp:179
JsonReader & StartObject()
Definition archiver.cpp:48
Definition archiver.h:103
JsonWriter & operator&(bool &b)
Definition archiver.cpp:261
JsonWriter & operator=(const JsonWriter &)
JsonWriter & SetNull()
Definition archiver.cpp:286
static const bool IsReader
Definition archiver.h:133
JsonWriter & Member(const char *name)
Definition archiver.cpp:240
void * mStream
Stream buffer.
Definition archiver.h:142
const char * GetString() const
Obtains the serialized JSON string.
Definition archiver.cpp:226
static const bool IsWriter
Definition archiver.h:134
JsonWriter & StartArray(size_t *size=0)
Definition archiver.cpp:251
JsonWriter & EndObject()
Definition archiver.cpp:235
JsonWriter & EndArray()
Definition archiver.cpp:256
JsonWriter()
Constructor.
Definition archiver.cpp:216
~JsonWriter()
Destructor.
Definition archiver.cpp:221
void * mWriter
JSON writer.
Definition archiver.h:141
JsonWriter & StartObject()
Definition archiver.cpp:230
bool HasMember(const char *name) const
Definition archiver.cpp:245
JsonWriter(const JsonWriter &)
Definition d.py:1
const char * name
Definition options.c:30
rapidjson::Document json
Definition transport.cpp:49