Files
thirdparty-ArduinoJson/src/ArduinoJson/DynamicJsonVariant.hpp
2018-03-18 14:50:52 +01:00

46 lines
900 B
C++

// ArduinoJson - arduinojson.org
// Copyright Benoit Blanchon 2014-2018
// MIT License
#pragma once
#include "JsonVariant.hpp"
#include "Memory/DynamicJsonBuffer.hpp"
namespace ArduinoJson {
class DynamicJsonVariant : public JsonVariant {
DynamicJsonBuffer _buffer;
public:
DynamicJsonVariant() : JsonVariant() {}
DynamicJsonVariant(size_t capacity) : JsonVariant(), _buffer(capacity) {}
template <typename T>
DynamicJsonVariant& operator=(const T& value) {
_buffer.clear();
JsonVariant::operator=(value);
return *this;
}
template <typename T>
DynamicJsonVariant& operator=(const T* value) {
_buffer.clear();
JsonVariant::operator=(value);
return *this;
}
DynamicJsonBuffer& buffer() {
return _buffer;
}
void clear() {
_buffer.clear();
}
size_t memoryUsage() const {
return _buffer.size();
}
};
} // namespace ArduinoJson