Files
ArduinoJson/srcs/JsonContainer.h

63 lines
1.4 KiB
C
Raw Normal View History

2014-10-01 16:13:36 +02:00
#pragma once
#include "Arduino/Printable.h"
#include "Internals/JsonNodeIterator.h"
#include "Internals/JsonNode.h"
2014-10-07 11:22:10 +02:00
#include "Internals/IndentedPrint.h"
2014-10-01 16:13:36 +02:00
struct JsonNode;
class JsonValue;
class JsonArray;
2014-10-01 16:13:36 +02:00
class JsonContainer : public Printable
{
friend JsonValue;
friend JsonArray;
2014-10-01 16:13:36 +02:00
public:
JsonContainer()
: _node(0)
{
}
JsonContainer(JsonNode* node)
: _node(node)
{
}
size_t size() const;
bool operator==(JsonContainer const& other) const;
2014-10-01 16:13:36 +02:00
size_t printTo(char* buffer, size_t bufferSize) const;
virtual size_t printTo(Print& print) const;
2014-10-07 11:22:10 +02:00
size_t prettyPrintTo(char* buffer, size_t bufferSize) const;
size_t prettyPrintTo(ArduinoJson::Generator::IndentedPrint& print) const;
size_t prettyPrintTo(Print& print) const
{
return prettyPrintTo(ArduinoJson::Generator::IndentedPrint(print));
}
2014-10-01 16:13:36 +02:00
protected:
JsonNodeIterator beginChildren() const
{
return JsonNodeIterator(_node ? _node->content.asContainer.child : 0);
}
JsonNodeIterator endChildren() const
{
return JsonNodeIterator(0);
}
void addChild(JsonNode* newChild);
void removeChildAfter(JsonNode* child, JsonNode* previous);
JsonNode* createNode(JsonNodeType type);
bool checkNodeType(JsonNodeType expectedType);
2014-10-01 16:13:36 +02:00
JsonNode* _node;
};