JsonBuffer.h 649 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "JsonArray.h"
  3. #include "JsonObject.h"
  4. class JsonBuffer
  5. {
  6. friend class JsonContainer;
  7. friend class JsonNode;
  8. public:
  9. virtual ~JsonBuffer() {};
  10. JsonArray createArray()
  11. {
  12. JsonNode* node = createNode();
  13. if (node) node->setAsArray(this);
  14. return JsonArray(node);
  15. }
  16. JsonObject createObject()
  17. {
  18. JsonNode* node = createNode();
  19. if (node) node->setAsObject(this);
  20. return JsonObject(node);
  21. }
  22. JsonValue createValue();
  23. protected:
  24. virtual void* allocateNode() = 0;
  25. private:
  26. JsonNode* createNode();
  27. };