Files
ArduinoJson/JsonGeneratorTests/StringBuilder.h

43 lines
693 B
C
Raw Normal View History

2014-06-25 13:02:39 +02:00
/*
* Arduino JSON library
* Benoit Blanchon 2014 - MIT License
*/
#pragma once
2014-06-30 19:19:39 +02:00
#include "JsonSink.h"
class StringBuilder : public JsonSink
2014-06-25 13:02:39 +02:00
{
public:
2014-06-30 19:19:39 +02:00
StringBuilder(char* buf, int size)
: buffer(buf), capacity(size-1), length(0)
2014-06-25 13:02:39 +02:00
{
2014-06-26 12:50:48 +02:00
buffer[0] = 0;
2014-06-25 13:02:39 +02:00
}
2014-06-30 19:19:39 +02:00
virtual void append(char c);
virtual void append(const char* s);
virtual bool hasRoomFor(int n)
{
return capacity - length >= n;
}
virtual void reserveRoom(int n)
{
capacity -= n;
}
virtual void releaseRoom(int n)
{
capacity += n;
}
2014-06-25 13:02:39 +02:00
private:
char* buffer;
2014-06-30 19:19:39 +02:00
int capacity;
int length;
2014-06-25 13:02:39 +02:00
};