Files
ArduinoJson/srcs/Internals/PrettyJsonWriter.h

66 lines
1.2 KiB
C
Raw Normal View History

2014-10-07 11:22:10 +02:00
#pragma once
#include "JsonWriter.h"
#include "IndentedPrint.h"
using namespace ArduinoJson::Generator;
class PrettyJsonWriter : public JsonWriter
{
public:
explicit PrettyJsonWriter(IndentedPrint* sink)
2014-10-07 11:22:10 +02:00
: JsonWriter(sink), _indenter(sink)
{
}
virtual void beginArray()
{
_length += _sink->write('[');
2014-10-07 11:58:59 +02:00
indent();
2014-10-07 11:22:10 +02:00
}
virtual void endArray()
{
2014-10-07 11:58:59 +02:00
unindent();
_length += _sink->write(']');
2014-10-07 11:22:10 +02:00
}
virtual void writeColon()
{
_length += _sink->print(": ");
2014-10-07 11:22:10 +02:00
}
virtual void writeComma()
{
_length += _sink->write(',');
_length += _indenter->println();
2014-10-07 11:22:10 +02:00
}
virtual void beginObject()
{
_length += _sink->write('{');
2014-10-07 11:58:59 +02:00
indent();
2014-10-07 11:22:10 +02:00
}
virtual void endObject()
{
2014-10-07 11:58:59 +02:00
unindent();
_length += _sink->write('}');
2014-10-07 11:22:10 +02:00
}
private:
IndentedPrint* _indenter;
2014-10-07 11:58:59 +02:00
void indent()
{
_indenter->indent();
_length += _indenter->println();
2014-10-07 11:58:59 +02:00
}
void unindent()
{
_length += _indenter->println();
_indenter->unindent();
2014-10-07 11:58:59 +02:00
}
2014-10-07 11:22:10 +02:00
};