diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c1d4b34..a91cbf3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ ArduinoJson: change log ======================= +HEAD +---- + +* Renamed `*.ipp` to `*Impl.hpp` because they were ignored by Arduino IDE (issue #396) + v5.7.2 ------ diff --git a/include/ArduinoJson.hpp b/include/ArduinoJson.hpp index 0326578c..118f4dc7 100644 --- a/include/ArduinoJson.hpp +++ b/include/ArduinoJson.hpp @@ -12,11 +12,11 @@ #include "ArduinoJson/JsonObject.hpp" #include "ArduinoJson/StaticJsonBuffer.hpp" -#include "ArduinoJson/Internals/JsonParser.ipp" -#include "ArduinoJson/Internals/JsonSerializer.ipp" -#include "ArduinoJson/JsonArray.ipp" -#include "ArduinoJson/JsonBuffer.ipp" -#include "ArduinoJson/JsonObject.ipp" -#include "ArduinoJson/JsonVariant.ipp" +#include "ArduinoJson/Internals/JsonParserImpl.hpp" +#include "ArduinoJson/Internals/JsonSerializerImpl.hpp" +#include "ArduinoJson/JsonArrayImpl.hpp" +#include "ArduinoJson/JsonBufferImpl.hpp" +#include "ArduinoJson/JsonObjectImpl.hpp" +#include "ArduinoJson/JsonVariantImpl.hpp" using namespace ArduinoJson; diff --git a/include/ArduinoJson/Internals/JsonParser.ipp b/include/ArduinoJson/Internals/JsonParserImpl.hpp similarity index 100% rename from include/ArduinoJson/Internals/JsonParser.ipp rename to include/ArduinoJson/Internals/JsonParserImpl.hpp diff --git a/include/ArduinoJson/Internals/JsonSerializer.ipp b/include/ArduinoJson/Internals/JsonSerializerImpl.hpp similarity index 100% rename from include/ArduinoJson/Internals/JsonSerializer.ipp rename to include/ArduinoJson/Internals/JsonSerializerImpl.hpp diff --git a/include/ArduinoJson/JsonArray.hpp b/include/ArduinoJson/JsonArray.hpp index 6faf0304..bfc2c386 100644 --- a/include/ArduinoJson/JsonArray.hpp +++ b/include/ArduinoJson/JsonArray.hpp @@ -227,4 +227,13 @@ class JsonArray : public Internals::JsonPrintable, value); } }; + +namespace Internals { +template <> +struct JsonVariantDefault { + static JsonArray &get() { + return JsonArray::invalid(); + } +}; +} } diff --git a/include/ArduinoJson/JsonArray.ipp b/include/ArduinoJson/JsonArray.ipp deleted file mode 100644 index 9d44a885..00000000 --- a/include/ArduinoJson/JsonArray.ipp +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright Benoit Blanchon 2014-2016 -// MIT License -// -// Arduino JSON library -// https://github.com/bblanchon/ArduinoJson -// If you like this project, please add a star! - -#pragma once - -#include "JsonArray.hpp" -#include "JsonArraySubscript.hpp" -#include "JsonObject.hpp" - -namespace ArduinoJson { - -inline JsonVariant::JsonVariant(const JsonArray &array) { - if (array.success()) { - _type = Internals::JSON_ARRAY; - _content.asArray = const_cast(&array); - } else { - _type = Internals::JSON_UNDEFINED; - } -} - -inline JsonVariant::JsonVariant(const JsonObject &object) { - if (object.success()) { - _type = Internals::JSON_OBJECT; - _content.asObject = const_cast(&object); - } else { - _type = Internals::JSON_UNDEFINED; - } -} - -namespace Internals { -template <> -struct JsonVariantDefault { - static JsonArray &get() { - return JsonArray::invalid(); - } -}; -} - -inline JsonArray &JsonVariant::asArray() const { - if (_type == Internals::JSON_ARRAY) return *_content.asArray; - return JsonArray::invalid(); -} - -inline JsonArray &JsonArray::createNestedArray() { - if (!_buffer) return JsonArray::invalid(); - JsonArray &array = _buffer->createArray(); - add(array); - return array; -} - -template -inline JsonArray &JsonObject::createNestedArray(const TString &key) { - if (!_buffer) return JsonArray::invalid(); - JsonArray &array = _buffer->createArray(); - set(key, array); - return array; -} -} diff --git a/include/ArduinoJson/JsonArrayImpl.hpp b/include/ArduinoJson/JsonArrayImpl.hpp new file mode 100644 index 00000000..6868f48b --- /dev/null +++ b/include/ArduinoJson/JsonArrayImpl.hpp @@ -0,0 +1,29 @@ +// Copyright Benoit Blanchon 2014-2016 +// MIT License +// +// Arduino JSON library +// https://github.com/bblanchon/ArduinoJson +// If you like this project, please add a star! + +#pragma once + +#include "JsonArray.hpp" +#include "JsonArraySubscript.hpp" +#include "JsonObject.hpp" + +namespace ArduinoJson { + +inline JsonArray &JsonArray::createNestedArray() { + if (!_buffer) return JsonArray::invalid(); + JsonArray &array = _buffer->createArray(); + add(array); + return array; +} + +inline JsonObject &JsonArray::createNestedObject() { + if (!_buffer) return JsonObject::invalid(); + JsonObject &object = _buffer->createObject(); + add(object); + return object; +} +} diff --git a/include/ArduinoJson/JsonBuffer.ipp b/include/ArduinoJson/JsonBufferImpl.hpp similarity index 100% rename from include/ArduinoJson/JsonBuffer.ipp rename to include/ArduinoJson/JsonBufferImpl.hpp diff --git a/include/ArduinoJson/JsonObject.hpp b/include/ArduinoJson/JsonObject.hpp index d72aa14a..479d29c0 100644 --- a/include/ArduinoJson/JsonObject.hpp +++ b/include/ArduinoJson/JsonObject.hpp @@ -165,4 +165,13 @@ class JsonObject : public Internals::JsonPrintable, value); } }; + +namespace Internals { +template <> +struct JsonVariantDefault { + static JsonObject& get() { + return JsonObject::invalid(); + } +}; +} } diff --git a/include/ArduinoJson/JsonObject.ipp b/include/ArduinoJson/JsonObjectImpl.hpp similarity index 52% rename from include/ArduinoJson/JsonObject.ipp rename to include/ArduinoJson/JsonObjectImpl.hpp index 25f85101..eb58c168 100644 --- a/include/ArduinoJson/JsonObject.ipp +++ b/include/ArduinoJson/JsonObjectImpl.hpp @@ -13,20 +13,6 @@ namespace ArduinoJson { -namespace Internals { -template <> -struct JsonVariantDefault { - static JsonObject &get() { - return JsonObject::invalid(); - } -}; -} - -inline JsonObject &JsonVariant::asObject() const { - if (_type == Internals::JSON_OBJECT) return *_content.asObject; - return JsonObject::invalid(); -} - template inline JsonObject &JsonObject::createNestedObject(const TString &key) { if (!_buffer) return JsonObject::invalid(); @@ -35,10 +21,11 @@ inline JsonObject &JsonObject::createNestedObject(const TString &key) { return object; } -inline JsonObject &JsonArray::createNestedObject() { - if (!_buffer) return JsonObject::invalid(); - JsonObject &object = _buffer->createObject(); - add(object); - return object; +template +inline JsonArray &JsonObject::createNestedArray(const TString &key) { + if (!_buffer) return JsonArray::invalid(); + JsonArray &array = _buffer->createArray(); + set(key, array); + return array; } } diff --git a/include/ArduinoJson/JsonVariant.ipp b/include/ArduinoJson/JsonVariantImpl.hpp similarity index 82% rename from include/ArduinoJson/JsonVariant.ipp rename to include/ArduinoJson/JsonVariantImpl.hpp index 01291f9b..a526be64 100644 --- a/include/ArduinoJson/JsonVariant.ipp +++ b/include/ArduinoJson/JsonVariantImpl.hpp @@ -19,6 +19,34 @@ namespace ArduinoJson { +inline JsonVariant::JsonVariant(const JsonArray &array) { + if (array.success()) { + _type = Internals::JSON_ARRAY; + _content.asArray = const_cast(&array); + } else { + _type = Internals::JSON_UNDEFINED; + } +} + +inline JsonVariant::JsonVariant(const JsonObject &object) { + if (object.success()) { + _type = Internals::JSON_OBJECT; + _content.asObject = const_cast(&object); + } else { + _type = Internals::JSON_UNDEFINED; + } +} + +inline JsonArray &JsonVariant::asArray() const { + if (_type == Internals::JSON_ARRAY) return *_content.asArray; + return JsonArray::invalid(); +} + +inline JsonObject &JsonVariant::asObject() const { + if (_type == Internals::JSON_OBJECT) return *_content.asObject; + return JsonObject::invalid(); +} + inline Internals::JsonInteger JsonVariant::asInteger() const { using namespace Internals; switch (_type) {