// Copyright Benoit Blanchon 2014-2016 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson // If you like this project, please add a star! #pragma once #include "JsonBuffer.hpp" namespace ArduinoJson { // Implements a JsonBuffer with fixed memory allocation. // The template paramenter CAPACITY specifies the capacity of the buffer in // bytes. template class StaticJsonBuffer : public JsonBuffer { public: explicit StaticJsonBuffer() : _size(0) {} size_t capacity() const { return CAPACITY; } size_t size() const { return _size; } virtual void* alloc(size_t bytes) { if (_size + bytes > CAPACITY) return NULL; void* p = &_buffer[_size]; _size += round_size_up(bytes); return p; } private: uint8_t _buffer[CAPACITY]; size_t _size; }; }