diff --git a/CHANGELOG.md b/CHANGELOG.md index 76a46589..39074049 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ ArduinoJson: change log ======================= +HEAD +---- + +* Changed `::String` to `ArduinoJson::String` (issue #275) +* Changed `::Print` to `ArduinoJson::Print` too + v5.3.0 ------ diff --git a/include/ArduinoJson/Configuration.hpp b/include/ArduinoJson/Configuration.hpp index 8956827d..c0b88ece 100644 --- a/include/ArduinoJson/Configuration.hpp +++ b/include/ArduinoJson/Configuration.hpp @@ -22,6 +22,11 @@ #define ARDUINOJSON_USE_INT64 0 #endif +// arduino has its own implementation of String to replace std::string +#ifndef ARDUINOJSON_USE_ARDUINO_STRING +#define ARDUINOJSON_USE_ARDUINO_STRING 1 +#endif + // arduino doesn't support STL stream #ifndef ARDUINOJSON_ENABLE_STD_STREAM #define ARDUINOJSON_ENABLE_STD_STREAM 0 @@ -62,6 +67,11 @@ #endif #endif +// on a computer, we can use std::string +#ifndef ARDUINOJSON_USE_ARDUINO_STRING +#define ARDUINOJSON_USE_ARDUINO_STRING 0 +#endif + // on a computer, we can assume that the STL is there #ifndef ARDUINOJSON_ENABLE_STD_STREAM #define ARDUINOJSON_ENABLE_STD_STREAM 1 diff --git a/include/ArduinoJson/Internals/DummyPrint.hpp b/include/ArduinoJson/Internals/DummyPrint.hpp index c6779dd2..4e9efcaa 100644 --- a/include/ArduinoJson/Internals/DummyPrint.hpp +++ b/include/ArduinoJson/Internals/DummyPrint.hpp @@ -7,7 +7,7 @@ #pragma once -#include "../Arduino/Print.hpp" +#include "../Print.hpp" namespace ArduinoJson { namespace Internals { diff --git a/include/ArduinoJson/Internals/DynamicStringBuilder.hpp b/include/ArduinoJson/Internals/DynamicStringBuilder.hpp index 0dc64a29..035646ff 100644 --- a/include/ArduinoJson/Internals/DynamicStringBuilder.hpp +++ b/include/ArduinoJson/Internals/DynamicStringBuilder.hpp @@ -7,8 +7,8 @@ #pragma once -#include "../Arduino/Print.hpp" -#include "../Arduino/String.hpp" +#include "../Print.hpp" +#include "../String.hpp" namespace ArduinoJson { namespace Internals { diff --git a/include/ArduinoJson/Internals/Encoding.hpp b/include/ArduinoJson/Internals/Encoding.hpp index cd4288cf..571f6087 100644 --- a/include/ArduinoJson/Internals/Encoding.hpp +++ b/include/ArduinoJson/Internals/Encoding.hpp @@ -7,7 +7,7 @@ #pragma once -#include "../Arduino/Print.hpp" +#include "../Print.hpp" namespace ArduinoJson { namespace Internals { diff --git a/include/ArduinoJson/Internals/IndentedPrint.hpp b/include/ArduinoJson/Internals/IndentedPrint.hpp index ebffc700..6bc0009d 100644 --- a/include/ArduinoJson/Internals/IndentedPrint.hpp +++ b/include/ArduinoJson/Internals/IndentedPrint.hpp @@ -7,7 +7,7 @@ #pragma once -#include "../Arduino/Print.hpp" +#include "../Print.hpp" namespace ArduinoJson { namespace Internals { diff --git a/include/ArduinoJson/Internals/JsonWriter.hpp b/include/ArduinoJson/Internals/JsonWriter.hpp index fd4b55c3..a73621be 100644 --- a/include/ArduinoJson/Internals/JsonWriter.hpp +++ b/include/ArduinoJson/Internals/JsonWriter.hpp @@ -7,10 +7,10 @@ #pragma once -#include "../Arduino/Print.hpp" -#include "../Polyfills/isNaN.hpp" #include "../Polyfills/isInfinity.hpp" +#include "../Polyfills/isNaN.hpp" #include "../Polyfills/normalize.hpp" +#include "../Print.hpp" #include "Encoding.hpp" #include "ForceInline.hpp" #include "JsonFloat.hpp" diff --git a/include/ArduinoJson/Internals/StaticStringBuilder.hpp b/include/ArduinoJson/Internals/StaticStringBuilder.hpp index 037551ed..a44800fc 100644 --- a/include/ArduinoJson/Internals/StaticStringBuilder.hpp +++ b/include/ArduinoJson/Internals/StaticStringBuilder.hpp @@ -7,7 +7,7 @@ #pragma once -#include "../Arduino/Print.hpp" +#include "../Print.hpp" namespace ArduinoJson { namespace Internals { diff --git a/include/ArduinoJson/Internals/StreamPrintAdapter.hpp b/include/ArduinoJson/Internals/StreamPrintAdapter.hpp index 68e9fdfb..e954ea4a 100644 --- a/include/ArduinoJson/Internals/StreamPrintAdapter.hpp +++ b/include/ArduinoJson/Internals/StreamPrintAdapter.hpp @@ -11,7 +11,7 @@ #if ARDUINOJSON_ENABLE_STD_STREAM -#include "../Arduino/Print.hpp" +#include "../Print.hpp" #include diff --git a/include/ArduinoJson/JsonBuffer.hpp b/include/ArduinoJson/JsonBuffer.hpp index 9cf2408a..128a3511 100644 --- a/include/ArduinoJson/JsonBuffer.hpp +++ b/include/ArduinoJson/JsonBuffer.hpp @@ -11,7 +11,7 @@ #include // for uint8_t #include -#include "Arduino/String.hpp" +#include "String.hpp" #include "JsonVariant.hpp" #if defined(__clang__) diff --git a/include/ArduinoJson/JsonObject.hpp b/include/ArduinoJson/JsonObject.hpp index d72f5f94..8a26a3a6 100644 --- a/include/ArduinoJson/JsonObject.hpp +++ b/include/ArduinoJson/JsonObject.hpp @@ -7,7 +7,7 @@ #pragma once -#include "Arduino/String.hpp" +#include "String.hpp" #include "Internals/JsonBufferAllocated.hpp" #include "Internals/JsonPrintable.hpp" #include "Internals/List.hpp" diff --git a/include/ArduinoJson/JsonObjectKey.hpp b/include/ArduinoJson/JsonObjectKey.hpp index 22876aff..982a989f 100644 --- a/include/ArduinoJson/JsonObjectKey.hpp +++ b/include/ArduinoJson/JsonObjectKey.hpp @@ -7,7 +7,7 @@ #pragma once -#include "Arduino/String.hpp" +#include "String.hpp" namespace ArduinoJson { diff --git a/include/ArduinoJson/Arduino/Print.hpp b/include/ArduinoJson/Print.hpp similarity index 95% rename from include/ArduinoJson/Arduino/Print.hpp rename to include/ArduinoJson/Print.hpp index a68f8d5e..4a880a55 100644 --- a/include/ArduinoJson/Arduino/Print.hpp +++ b/include/ArduinoJson/Print.hpp @@ -12,6 +12,7 @@ #include #include +namespace ArduinoJson { // This class reproduces Arduino's Print class class Print { public: @@ -29,6 +30,7 @@ class Print { size_t println() { return write('\r') + write('\n'); } }; +} #else diff --git a/include/ArduinoJson/Arduino/String.hpp b/include/ArduinoJson/String.hpp similarity index 74% rename from include/ArduinoJson/Arduino/String.hpp rename to include/ArduinoJson/String.hpp index 9b9536e2..92580052 100644 --- a/include/ArduinoJson/Arduino/String.hpp +++ b/include/ArduinoJson/String.hpp @@ -7,13 +7,18 @@ #pragma once -#ifndef ARDUINO +#include "Configuration.hpp" -#include -typedef std::string String; - -#else +#if ARDUINOJSON_USE_ARDUINO_STRING #include +#else + +#include + +namespace ArduinoJson { +typedef std::string String; +} + #endif diff --git a/test/StringBuilderTests.cpp b/test/StringBuilderTests.cpp index 7eedd769..c8aede9a 100644 --- a/test/StringBuilderTests.cpp +++ b/test/StringBuilderTests.cpp @@ -5,8 +5,8 @@ // https://github.com/bblanchon/ArduinoJson // If you like this project, please add a star! +#include #include -#include using namespace ArduinoJson::Internals;