diff --git a/JsonGenerator/JsonArrayBase.h b/JsonGenerator/JsonArrayBase.h index a36c0525..359fd137 100644 --- a/JsonGenerator/JsonArrayBase.h +++ b/JsonGenerator/JsonArrayBase.h @@ -6,6 +6,7 @@ #pragma once #include "JsonPrintable.h" +#include "JsonValue.h" namespace ArduinoJson { diff --git a/JsonGenerator/JsonGenerator.vcxproj b/JsonGenerator/JsonGenerator.vcxproj index bbbb623b..b24261ba 100644 --- a/JsonGenerator/JsonGenerator.vcxproj +++ b/JsonGenerator/JsonGenerator.vcxproj @@ -30,6 +30,7 @@ + diff --git a/JsonGenerator/JsonGenerator.vcxproj.filters b/JsonGenerator/JsonGenerator.vcxproj.filters index 9046b7e3..70143357 100644 --- a/JsonGenerator/JsonGenerator.vcxproj.filters +++ b/JsonGenerator/JsonGenerator.vcxproj.filters @@ -77,5 +77,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/JsonGenerator/JsonObjectBase.h b/JsonGenerator/JsonObjectBase.h index ccfed649..5e27d34f 100644 --- a/JsonGenerator/JsonObjectBase.h +++ b/JsonGenerator/JsonObjectBase.h @@ -6,6 +6,7 @@ #pragma once #include "JsonPrintable.h" +#include "JsonValue.h" #include "EscapedString.h" namespace ArduinoJson diff --git a/JsonGenerator/JsonPrintable.cpp b/JsonGenerator/JsonPrintable.cpp new file mode 100644 index 00000000..beb21454 --- /dev/null +++ b/JsonGenerator/JsonPrintable.cpp @@ -0,0 +1,29 @@ +/* +* Arduino JSON library +* Benoit Blanchon 2014 - MIT License +*/ + +#include "JsonPrintable.h" +#include "JsonPrettyPrint.h" +#include "StringBuilder.h" + +using namespace ArduinoJson::Generator; +using namespace ArduinoJson::Internals; + +size_t JsonPrintable::printTo(char* buffer, size_t bufferSize) +{ + StringBuilder sb(buffer, bufferSize); + return printTo(sb); +} + +size_t JsonPrintable::prettyPrintTo(IndentedPrint& p) const +{ + JsonPrettyPrint prettyPrint(p); + return printTo(prettyPrint); +} + +size_t JsonPrintable::prettyPrintTo(Print& p) const +{ + IndentedPrint indentedPrint(p); + return printTo(indentedPrint); +} \ No newline at end of file diff --git a/JsonGenerator/JsonPrintable.h b/JsonGenerator/JsonPrintable.h index cac48599..008bad60 100644 --- a/JsonGenerator/JsonPrintable.h +++ b/JsonGenerator/JsonPrintable.h @@ -5,10 +5,9 @@ #pragma once -#include "JsonValue.h" #include "Print.h" #include "Printable.h" -#include "JsonPrettyPrint.h" +#include "IndentedPrint.h" namespace ArduinoJson { @@ -18,27 +17,12 @@ namespace ArduinoJson { public: - size_t printTo(char* buffer, size_t bufferSize) - { - using namespace Internals; - - StringBuilder sb(buffer, bufferSize); - return printTo(sb); - } - - size_t prettyPrintTo(IndentedPrint& p) const - { - JsonPrettyPrint decorator(p); - return printTo(decorator); - } - - size_t prettyPrintTo(Print& p) const - { - IndentedPrint decorator(p); - return printTo(decorator); - } - virtual size_t printTo(Print& p) const = 0; + + size_t printTo(char* buffer, size_t bufferSize); + + size_t prettyPrintTo(IndentedPrint& p) const; + size_t prettyPrintTo(Print& p) const; }; } } \ No newline at end of file