StaticJsonBuffer.hpp 534 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include "JsonBuffer.hpp"
  3. #include "JsonObject.hpp"
  4. namespace ArduinoJson {
  5. template <int CAPACITY>
  6. class StaticJsonBuffer : public JsonBuffer {
  7. friend class JsonObject;
  8. public:
  9. explicit StaticJsonBuffer() : _size(0) {}
  10. virtual ~StaticJsonBuffer() {}
  11. int capacity() { return CAPACITY; }
  12. int size() { return _size; }
  13. protected:
  14. virtual void *allocateNode() {
  15. if (_size >= CAPACITY) return 0;
  16. return &_buffer[_size++];
  17. }
  18. private:
  19. Internals::JsonNode _buffer[CAPACITY];
  20. int _size;
  21. };
  22. }