Переглянути джерело

Simplified JsonWriter hierarchy

Benoit Blanchon 11 роки тому
батько
коміт
54f9bd9572

+ 0 - 28
include/ArduinoJson/Internals/CompactJsonWriter.hpp

@@ -1,28 +0,0 @@
-// Copyright Benoit Blanchon 2014
-// MIT License
-//
-// Arduino JSON library
-// https://github.com/bblanchon/ArduinoJson
-
-#pragma once
-
-#include "JsonWriter.hpp"
-
-namespace ArduinoJson {
-namespace Internals {
-
-class CompactJsonWriter : public JsonWriter {
- public:
-  explicit CompactJsonWriter(Print *sink) : JsonWriter(sink) {}
-
-  void beginArray() { _length += _sink->write('['); }
-  void endArray() { _length += _sink->write(']'); }
-
-  void beginObject() { _length += _sink->write('{'); }
-  void endObject() { _length += _sink->write('}'); }
-
-  void writeColon() { _length += _sink->write(':'); }
-  void writeComma() { _length += _sink->write(','); }
-};
-}
-}

+ 7 - 0
include/ArduinoJson/Internals/JsonWriter.hpp

@@ -17,8 +17,12 @@ class JsonWriter {
 
   size_t bytesWritten() { return _length; }
 
+  void beginArray() { _length += _sink->write('['); }
+  void endArray() { _length += _sink->write(']'); }
   void writeEmptyArray() { _length += _sink->print("[]"); }
 
+  void beginObject() { _length += _sink->write('{'); }
+  void endObject() { _length += _sink->write('}'); }
   void writeEmptyObject() { _length += _sink->print("{}"); }
 
   void writeString(const char *value);
@@ -26,6 +30,9 @@ class JsonWriter {
   void writeBoolean(bool value);
   void writeDouble(double value, int decimals);
 
+  void writeColon() { _length += _sink->write(':'); }
+  void writeComma() { _length += _sink->write(','); }
+
  protected:
   Print *_sink;
   size_t _length;

+ 2 - 4
include/ArduinoJson/JsonPrintable.hpp

@@ -6,19 +6,17 @@
 
 #pragma once
 
-#include "Arduino/Printable.hpp"
 #include "Internals/StringBuilder.hpp"
 #include "Internals/IndentedPrint.hpp"
-#include "Internals/CompactJsonWriter.hpp"
 #include "Internals/PrettyJsonWriter.hpp"
 
 namespace ArduinoJson {
 
 template <typename T>
-class JsonPrintable : public Printable {
+class JsonPrintable {
  public:
   size_t printTo(Print &print) const {
-    Internals::CompactJsonWriter writer(&print);
+    Internals::JsonWriter writer(&print);
     downcast().writeTo(writer);
     return writer.bytesWritten();
   }

+ 2 - 3
src/JsonArray.cpp

@@ -10,7 +10,6 @@
 
 #include "ArduinoJson/JsonBuffer.hpp"
 #include "ArduinoJson/JsonObject.hpp"
-#include "ArduinoJson/Internals/CompactJsonWriter.hpp"
 #include "ArduinoJson/Internals/PrettyJsonWriter.hpp"
 
 using namespace ArduinoJson;
@@ -91,5 +90,5 @@ void JsonArray::writeTo(T &writer) const {
   }
 }
 
-template void JsonArray::writeTo<CompactJsonWriter>(CompactJsonWriter &) const;
-template void JsonArray::writeTo<PrettyJsonWriter>(PrettyJsonWriter &) const;
+template void JsonArray::writeTo(JsonWriter &) const;
+template void JsonArray::writeTo(PrettyJsonWriter &) const;

+ 1 - 2
src/JsonObject.cpp

@@ -12,7 +12,6 @@
 #include "ArduinoJson/JsonBuffer.hpp"
 #include "ArduinoJson/JsonArray.hpp"
 #include "ArduinoJson/JsonValue.hpp"
-#include "ArduinoJson/Internals/CompactJsonWriter.hpp"
 #include "ArduinoJson/Internals/PrettyJsonWriter.hpp"
 #include "ArduinoJson/Internals/StringBuilder.hpp"
 
@@ -116,5 +115,5 @@ void JsonObject::writeTo(T &writer) const {
   }
 }
 
-template void JsonObject::writeTo(CompactJsonWriter &writer) const;
+template void JsonObject::writeTo(JsonWriter &writer) const;
 template void JsonObject::writeTo(PrettyJsonWriter &writer) const;

+ 0 - 15
src/JsonPrintable.cpp

@@ -1,15 +0,0 @@
-// Copyright Benoit Blanchon 2014
-// MIT License
-//
-// Arduino JSON library
-// https://github.com/bblanchon/ArduinoJson
-
-#include "ArduinoJson/JsonPrintable.hpp"
-
-#include "ArduinoJson/JsonBuffer.hpp"
-#include "ArduinoJson/Internals/StringBuilder.hpp"
-#include "ArduinoJson/Internals/CompactJsonWriter.hpp"
-#include "ArduinoJson/Internals/PrettyJsonWriter.hpp"
-
-using namespace ArduinoJson;
-using namespace ArduinoJson::Internals;

+ 2 - 3
src/JsonValue.cpp

@@ -7,7 +7,6 @@
 #include "ArduinoJson/JsonValue.hpp"
 #include "ArduinoJson/JsonArray.hpp"
 #include "ArduinoJson/JsonObject.hpp"
-#include "ArduinoJson/Internals/CompactJsonWriter.hpp"
 #include "ArduinoJson/Internals/PrettyJsonWriter.hpp"
 
 using namespace ArduinoJson;
@@ -104,5 +103,5 @@ void JsonValue::writeTo(T &writer) const {
   }
 }
 
-template void JsonValue::writeTo<CompactJsonWriter>(CompactJsonWriter &) const;
-template void JsonValue::writeTo<PrettyJsonWriter>(PrettyJsonWriter &) const;
+template void JsonValue::writeTo(JsonWriter &) const;
+template void JsonValue::writeTo(PrettyJsonWriter &) const;