#pragma once #include "JsonArray.h" #include "JsonObject.h" class JsonBuffer { friend class JsonContainer; friend class JsonNode; public: virtual ~JsonBuffer() {}; JsonArray createArray() { JsonNode* node = createNode(); if (node) node->setAsArray(this); return JsonArray(node); } JsonObject createObject() { JsonNode* node = createNode(); if (node) node->setAsObject(this); return JsonObject(node); } JsonValue createValue(); protected: virtual void* allocateNode() = 0; private: JsonNode* createNode(); };