Files
ArduinoJson/include/ArduinoJson/Internals/JsonWriter.h

55 lines
1.1 KiB
C
Raw Normal View History

2014-10-16 00:11:23 +02:00
#pragma once
#include "../Arduino/Print.h"
2014-10-18 23:05:54 +02:00
namespace ArduinoJson
2014-10-16 00:11:23 +02:00
{
2014-10-18 23:05:54 +02:00
namespace Internals
2014-10-16 00:11:23 +02:00
{
2014-10-18 23:05:54 +02:00
class JsonWriter
{
public:
explicit JsonWriter(Print* sink)
: _sink(sink), _length(0)
{
}
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
size_t bytesWritten()
{
return _length;
}
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void beginArray() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void endArray() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void beginObject() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void endObject() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
void writeString(const char* value);
void writeInteger(long value);
void writeBoolean(bool value);
void writeDouble(double value, int decimals);
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void writeColon() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
virtual void writeComma() = 0;
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
void writeEmptyArray()
{
_length += _sink->print("[]");
}
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
void writeEmptyObject()
{
_length += _sink->print("{}");
}
2014-10-16 00:11:23 +02:00
2014-10-18 23:05:54 +02:00
protected:
Print* _sink;
size_t _length;
};
}
}