You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
961 B

#include "DynamicJsonHandler.h"
DynamicJsonHandler::DynamicJsonHandler() : doc(min_size) {
}
DynamicJsonHandler::~DynamicJsonHandler() {
delete &doc;
}
String DynamicJsonHandler::toString() {
String jsonString;
serializeJson(doc, jsonString);
return jsonString;
}
void DynamicJsonHandler::clear() {
doc.clear();
}
size_t DynamicJsonHandler::size() const {
return doc.memoryUsage();
}
void DynamicJsonHandler::resizeDocument(size_t requiredSize) {
// TODO: multiplikator zwei muss ersetzt werden? Kann noch minimal werden.
size_t newCapacity = min(max(requiredSize * 2, min_size), max_size);
DynamicJsonDocument newDoc(newCapacity);
newDoc.set(doc); // Bestehende Daten kopieren
doc = std::move(newDoc);
}
size_t DynamicJsonHandler::min(size_t a, size_t b) {
return (a < b) ? a : b;
}
size_t DynamicJsonHandler::max(size_t a, size_t b) {
return (a > b) ? a : b;
}