summaryrefslogtreecommitdiff
path: root/include/lib/ArduinoJson/StaticJsonBuffer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/lib/ArduinoJson/StaticJsonBuffer.hpp')
-rw-r--r--include/lib/ArduinoJson/StaticJsonBuffer.hpp126
1 files changed, 0 insertions, 126 deletions
diff --git a/include/lib/ArduinoJson/StaticJsonBuffer.hpp b/include/lib/ArduinoJson/StaticJsonBuffer.hpp
deleted file mode 100644
index 267d9d0..0000000
--- a/include/lib/ArduinoJson/StaticJsonBuffer.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// ArduinoJson - arduinojson.org
-// Copyright Benoit Blanchon 2014-2018
-// MIT License
-
-#pragma once
-
-#include "JsonBufferBase.hpp"
-
-namespace ArduinoJson {
-namespace Internals {
-
-class StaticJsonBufferBase : public JsonBufferBase<StaticJsonBufferBase> {
- public:
- class String {
- public:
- String(StaticJsonBufferBase* parent) : _parent(parent) {
- _start = parent->_buffer + parent->_size;
- }
-
- void append(char c) {
- if (_parent->canAlloc(1)) {
- char* last = static_cast<char*>(_parent->doAlloc(1));
- *last = c;
- }
- }
-
- const char* c_str() const {
- if (_parent->canAlloc(1)) {
- char* last = static_cast<char*>(_parent->doAlloc(1));
- *last = '\0';
- return _start;
- } else {
- return NULL;
- }
- }
-
- private:
- StaticJsonBufferBase* _parent;
- char* _start;
- };
-
- StaticJsonBufferBase(char* buffer, size_t capa)
- : _buffer(buffer), _capacity(capa), _size(0) {}
-
- // Gets the capacity of the buffer in bytes
- size_t capacity() const {
- return _capacity;
- }
-
- // Gets the current usage of the buffer in bytes
- size_t size() const {
- return _size;
- }
-
- // Allocates the specified amount of bytes in the buffer
- virtual void* alloc(size_t bytes) {
- alignNextAlloc();
- if (!canAlloc(bytes)) return NULL;
- return doAlloc(bytes);
- }
-
- // Resets the buffer.
- // USE WITH CAUTION: this invalidates all previously allocated data
- void clear() {
- _size = 0;
- }
-
- String startString() {
- return String(this);
- }
-
- protected:
- ~StaticJsonBufferBase() {}
-
- private:
- void alignNextAlloc() {
- _size = round_size_up(_size);
- }
-
- bool canAlloc(size_t bytes) const {
- return _size + bytes <= _capacity;
- }
-
- void* doAlloc(size_t bytes) {
- void* p = &_buffer[_size];
- _size += bytes;
- return p;
- }
-
- char* _buffer;
- size_t _capacity;
- size_t _size;
-};
-}
-
-#if defined(__clang__)
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wnon-virtual-dtor"
-#elif defined(__GNUC__)
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
-#pragma GCC diagnostic push
-#endif
-#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
-#endif
-
-// Implements a JsonBuffer with fixed memory allocation.
-// The template paramenter CAPACITY specifies the capacity of the buffer in
-// bytes.
-template <size_t CAPACITY>
-class StaticJsonBuffer : public Internals::StaticJsonBufferBase {
- public:
- explicit StaticJsonBuffer()
- : Internals::StaticJsonBufferBase(_buffer, CAPACITY) {}
-
- private:
- char _buffer[CAPACITY];
-};
-}
-
-#if defined(__clang__)
-#pragma clang diagnostic pop
-#elif defined(__GNUC__)
-#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
-#pragma GCC diagnostic pop
-#endif
-#endif