forked from bblanchon/ArduinoJson
Epic refactoring in progress...
This commit is contained in:
@ -20,12 +20,13 @@ class IndentedPrint;
|
||||
class JsonArrayConstIterator;
|
||||
class JsonArrayImpl;
|
||||
class JsonArrayIterator;
|
||||
class JsonArrayNode;
|
||||
class JsonObjectConstIterator;
|
||||
class JsonObjectImpl;
|
||||
class JsonObjectIterator;
|
||||
class JsonObjectConstIterator;
|
||||
class JsonObjectNode;
|
||||
class JsonParser;
|
||||
class JsonValueImpl;
|
||||
class JsonWriter;
|
||||
struct JsonArrayNode;
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ class JsonArrayImpl {
|
||||
typedef JsonArrayIterator iterator;
|
||||
typedef JsonArrayConstIterator const_iterator;
|
||||
|
||||
JsonArrayImpl(JsonBuffer *buffer) : _buffer(buffer) {}
|
||||
static JsonArrayImpl *createFrom(JsonBuffer *buffer);
|
||||
|
||||
int size() const;
|
||||
|
||||
@ -37,6 +37,8 @@ class JsonArrayImpl {
|
||||
const_iterator end() const { return const_iterator(0); }
|
||||
|
||||
private:
|
||||
JsonArrayImpl(JsonBuffer *buffer) : _buffer(buffer), _firstNode(NULL) {}
|
||||
|
||||
JsonBuffer *_buffer;
|
||||
Internals::JsonArrayNode *_firstNode;
|
||||
};
|
||||
|
@ -6,14 +6,24 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../JsonValue.hpp"
|
||||
#include "JsonValueImpl.hpp"
|
||||
#include "../JsonBuffer.hpp"
|
||||
|
||||
namespace ArduinoJson {
|
||||
namespace Internals {
|
||||
|
||||
struct JsonArrayNode {
|
||||
JsonArrayNode *next;
|
||||
class JsonArrayNode {
|
||||
public:
|
||||
static JsonArrayNode* createFrom(JsonBuffer* buffer) {
|
||||
void* ptr = buffer->alloc(sizeof(JsonArrayNode));
|
||||
return ptr ? new (ptr) JsonArrayNode() : NULL;
|
||||
}
|
||||
|
||||
JsonArrayNode* next;
|
||||
JsonValueImpl value;
|
||||
|
||||
private:
|
||||
JsonArrayNode() : next(0) {}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ class JsonObjectImpl {
|
||||
typedef JsonObjectIterator iterator;
|
||||
typedef JsonObjectConstIterator const_iterator;
|
||||
|
||||
JsonObjectImpl(JsonBuffer *buffer) : _buffer(buffer), _firstNode(NULL) {}
|
||||
static JsonObjectImpl *createFrom(JsonBuffer *buffer);
|
||||
|
||||
int size() const;
|
||||
|
||||
@ -38,6 +38,8 @@ class JsonObjectImpl {
|
||||
void writeTo(JsonWriter &writer) const;
|
||||
|
||||
private:
|
||||
JsonObjectImpl(JsonBuffer *buffer) : _buffer(buffer), _firstNode(NULL) {}
|
||||
|
||||
void addNode(JsonObjectNode *nodeToAdd);
|
||||
void removeNode(JsonObjectNode *nodeToRemove);
|
||||
|
||||
|
@ -7,16 +7,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "JsonValueImpl.hpp"
|
||||
#include "../JsonBuffer.hpp"
|
||||
|
||||
namespace ArduinoJson {
|
||||
namespace Internals {
|
||||
|
||||
struct JsonObjectNode {
|
||||
JsonObjectNode(const char* k) : key(k) {}
|
||||
class JsonObjectNode {
|
||||
public:
|
||||
static JsonObjectNode* createFrom(JsonBuffer* buffer, const char* key) {
|
||||
void* ptr = buffer->alloc(sizeof(JsonObjectNode));
|
||||
return ptr ? new (ptr) JsonObjectNode(key) : NULL;
|
||||
}
|
||||
|
||||
const char* const key;
|
||||
JsonValueImpl value;
|
||||
JsonObjectNode* next;
|
||||
|
||||
private:
|
||||
JsonObjectNode(const char* k) : key(k) {}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -19,6 +19,8 @@ class JsonValueImpl {
|
||||
public:
|
||||
JsonValueImpl() : _type(JSON_UNDEFINED) {}
|
||||
|
||||
static JsonValueImpl *createFrom(JsonBuffer *buffer);
|
||||
|
||||
void set(bool value) {
|
||||
_type = JSON_BOOLEAN;
|
||||
_content.asBoolean = value;
|
||||
|
@ -18,7 +18,7 @@ class JsonArray : public JsonPrintable {
|
||||
typedef Internals::JsonArrayIterator iterator;
|
||||
typedef Internals::JsonArrayConstIterator const_iterator;
|
||||
|
||||
JsonArray() {}
|
||||
JsonArray() : _impl(NULL) {}
|
||||
JsonArray(Internals::JsonArrayImpl* impl) : _impl(impl) {}
|
||||
|
||||
bool success() const { return _impl; }
|
||||
|
@ -35,5 +35,3 @@ class JsonBuffer {
|
||||
virtual void* alloc(size_t size) = 0;
|
||||
};
|
||||
}
|
||||
|
||||
void* operator new(size_t size, ArduinoJson::JsonBuffer* buffer);
|
||||
|
Reference in New Issue
Block a user