| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #include "JsonContainer.h"
- #include "JsonBuffer.h"
- #include "Internals/StringBuilder.h"
- #include "Internals/CompactJsonWriter.h"
- #include "Internals/PrettyJsonWriter.h"
- using namespace ArduinoJson::Internals;
- size_t JsonContainer::printTo(char* buffer, size_t bufferSize) const
- {
- StringBuilder sb(buffer, bufferSize);
- return printTo(sb);
- }
- size_t JsonContainer::printTo(Print& p) const
- {
- CompactJsonWriter writer(&p);
- _node->writeTo(writer);
- return writer.bytesWritten();
- }
- size_t JsonContainer::prettyPrintTo(char* buffer, size_t bufferSize) const
- {
- StringBuilder sb(buffer, bufferSize);
- return prettyPrintTo(sb);
- }
- size_t JsonContainer::prettyPrintTo(IndentedPrint& p) const
- {
- PrettyJsonWriter writer(&p);
- _node->writeTo(writer);
- return writer.bytesWritten();
- }
- size_t JsonContainer::prettyPrintTo(Print& print) const
- {
- IndentedPrint indentedPrint = IndentedPrint(print);
- return prettyPrintTo(indentedPrint);
- }
- JsonNode* JsonContainer::createNode()
- {
- if (!_node) return 0;
- JsonBuffer* buffer = _node->getContainerBuffer();
- if (!buffer) return 0;
- return buffer->createNode();
- }
- bool JsonContainer::operator==(const JsonContainer & other) const
- {
- if (_node == other._node) return true;
- if (!_node || !other._node) return false;
- return _node->getProxyTarget() == other._node->getProxyTarget();
- }
- void JsonContainer::addChild(JsonNode* childToAdd)
- {
- if (_node)
- _node->addChild(childToAdd);
- }
- void JsonContainer::removeChild(JsonNode* childToRemove)
- {
- if (_node)
- _node->removeChild(childToRemove);
- }
- size_t JsonContainer::size() const
- {
- int size = 0;
- for (JsonNodeIterator it = beginChildren(); it != endChildren(); ++it)
- {
- size++;
- }
- return size;
- }
|