2016-12-21 22:09:13 +01:00
|
|
|
// 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
|
|
|
|
|
|
|
|
namespace ArduinoJson {
|
|
|
|
namespace Internals {
|
|
|
|
|
|
|
|
class StringWriter {
|
|
|
|
public:
|
2016-12-29 17:26:16 +01:00
|
|
|
class String {
|
|
|
|
public:
|
|
|
|
String(char** ptr) : _writePtr(ptr), _startPtr(*ptr) {}
|
2016-12-21 22:09:13 +01:00
|
|
|
|
2016-12-29 17:26:16 +01:00
|
|
|
void append(char c) {
|
|
|
|
*(*_writePtr)++ = c;
|
|
|
|
}
|
2016-12-21 22:09:13 +01:00
|
|
|
|
2016-12-29 17:26:16 +01:00
|
|
|
const char* c_str() const {
|
|
|
|
*(*_writePtr)++ = 0;
|
|
|
|
return _startPtr;
|
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
|
|
|
char** _writePtr;
|
|
|
|
char* _startPtr;
|
|
|
|
};
|
|
|
|
|
|
|
|
StringWriter(char* buffer) : _ptr(buffer) {}
|
2016-12-21 22:09:13 +01:00
|
|
|
|
2016-12-29 17:26:16 +01:00
|
|
|
String startString() {
|
|
|
|
return String(&_ptr);
|
2016-12-21 22:09:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
private:
|
2016-12-29 17:26:16 +01:00
|
|
|
char* _ptr;
|
2016-12-21 22:09:13 +01:00
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|