From f167be37a1339a6bdea4e4c0b937c8fd3b4d27cf Mon Sep 17 00:00:00 2001 From: proddy Date: Sat, 10 Feb 2024 09:50:32 +0100 Subject: [PATCH] ArduinoJson 7.0.3 --- lib/ArduinoJson/ArduinoJson.h | 0 lib/ArduinoJson/CHANGELOG.md | 7 + lib/ArduinoJson/CMakeLists.txt | 25 --- lib/ArduinoJson/LICENSE.txt | 0 lib/ArduinoJson/README.md | 155 ++++++++++++++++++ lib/ArduinoJson/SUPPORT.md | 27 +++ lib/ArduinoJson/idf_component.yml | 13 -- lib/ArduinoJson/library.json | 23 --- lib/ArduinoJson/library.properties | 11 -- lib/ArduinoJson/src/ArduinoJson.h | 0 lib/ArduinoJson/src/ArduinoJson.hpp | 0 .../src/ArduinoJson/Array/ArrayData.hpp | 0 .../src/ArduinoJson/Array/ArrayImpl.hpp | 0 .../src/ArduinoJson/Array/ElementProxy.hpp | 10 +- .../src/ArduinoJson/Array/JsonArray.hpp | 29 ++-- .../src/ArduinoJson/Array/JsonArrayConst.hpp | 20 +-- .../ArduinoJson/Array/JsonArrayIterator.hpp | 0 .../src/ArduinoJson/Array/Utilities.hpp | 0 .../ArduinoJson/Collection/CollectionData.hpp | 4 + .../ArduinoJson/Collection/CollectionImpl.hpp | 0 .../src/ArduinoJson/Configuration.hpp | 0 .../Deserialization/DeserializationError.hpp | 0 .../DeserializationOptions.hpp | 0 .../ArduinoJson/Deserialization/Filter.hpp | 0 .../Deserialization/NestingLimit.hpp | 0 .../ArduinoJson/Deserialization/Reader.hpp | 0 .../Readers/ArduinoStreamReader.hpp | 0 .../Readers/ArduinoStringReader.hpp | 0 .../Deserialization/Readers/FlashReader.hpp | 0 .../Readers/IteratorReader.hpp | 0 .../Deserialization/Readers/RamReader.hpp | 0 .../Readers/StdStreamReader.hpp | 0 .../Deserialization/Readers/VariantReader.hpp | 0 .../Deserialization/deserialize.hpp | 0 .../src/ArduinoJson/Document/JsonDocument.hpp | 45 +++-- .../src/ArduinoJson/Json/EscapeSequence.hpp | 0 .../src/ArduinoJson/Json/JsonDeserializer.hpp | 0 .../src/ArduinoJson/Json/JsonSerializer.hpp | 34 ++-- .../src/ArduinoJson/Json/Latch.hpp | 0 .../ArduinoJson/Json/PrettyJsonSerializer.hpp | 0 .../src/ArduinoJson/Json/TextFormatter.hpp | 0 .../src/ArduinoJson/Json/Utf16.hpp | 0 lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp | 0 .../src/ArduinoJson/Memory/Alignment.hpp | 0 .../src/ArduinoJson/Memory/Allocator.hpp | 0 .../ArduinoJson/Memory/ResourceManager.hpp | 0 .../src/ArduinoJson/Memory/StringBuilder.hpp | 0 .../src/ArduinoJson/Memory/StringNode.hpp | 0 .../src/ArduinoJson/Memory/StringPool.hpp | 0 .../src/ArduinoJson/Memory/VariantPool.hpp | 0 .../ArduinoJson/Memory/VariantPoolImpl.hpp | 0 .../ArduinoJson/Memory/VariantPoolList.hpp | 0 .../src/ArduinoJson/Misc/SerializedValue.hpp | 0 .../MsgPack/MsgPackDeserializer.hpp | 0 .../ArduinoJson/MsgPack/MsgPackSerializer.hpp | 22 ++- .../src/ArduinoJson/MsgPack/endianess.hpp | 0 .../src/ArduinoJson/MsgPack/ieee754.hpp | 0 lib/ArduinoJson/src/ArduinoJson/Namespace.hpp | 0 .../src/ArduinoJson/Numbers/FloatParts.hpp | 0 .../src/ArduinoJson/Numbers/FloatTraits.hpp | 0 .../src/ArduinoJson/Numbers/JsonFloat.hpp | 0 .../src/ArduinoJson/Numbers/JsonInteger.hpp | 0 .../ArduinoJson/Numbers/arithmeticCompare.hpp | 0 .../src/ArduinoJson/Numbers/convertNumber.hpp | 0 .../src/ArduinoJson/Numbers/parseNumber.hpp | 0 .../src/ArduinoJson/Object/JsonObject.hpp | 47 +++--- .../ArduinoJson/Object/JsonObjectConst.hpp | 24 +-- .../ArduinoJson/Object/JsonObjectIterator.hpp | 0 .../src/ArduinoJson/Object/JsonPair.hpp | 0 .../src/ArduinoJson/Object/MemberProxy.hpp | 14 +- .../src/ArduinoJson/Object/ObjectData.hpp | 0 .../src/ArduinoJson/Object/ObjectImpl.hpp | 0 .../src/ArduinoJson/Polyfills/alias_cast.hpp | 0 .../src/ArduinoJson/Polyfills/assert.hpp | 0 .../src/ArduinoJson/Polyfills/attributes.hpp | 3 - .../src/ArduinoJson/Polyfills/ctype.hpp | 0 .../src/ArduinoJson/Polyfills/integer.hpp | 0 .../src/ArduinoJson/Polyfills/limits.hpp | 0 .../src/ArduinoJson/Polyfills/math.hpp | 0 .../src/ArduinoJson/Polyfills/mpl/max.hpp | 0 .../src/ArduinoJson/Polyfills/pgmspace.hpp | 0 .../Polyfills/pgmspace_generic.hpp | 0 .../ArduinoJson/Polyfills/preprocessor.hpp | 0 .../src/ArduinoJson/Polyfills/type_traits.hpp | 0 .../Polyfills/type_traits/conditional.hpp | 0 .../Polyfills/type_traits/declval.hpp | 0 .../Polyfills/type_traits/enable_if.hpp | 0 .../type_traits/integral_constant.hpp | 0 .../Polyfills/type_traits/is_array.hpp | 0 .../Polyfills/type_traits/is_base_of.hpp | 0 .../Polyfills/type_traits/is_class.hpp | 0 .../Polyfills/type_traits/is_const.hpp | 0 .../Polyfills/type_traits/is_convertible.hpp | 0 .../Polyfills/type_traits/is_enum.hpp | 0 .../type_traits/is_floating_point.hpp | 0 .../Polyfills/type_traits/is_integral.hpp | 0 .../Polyfills/type_traits/is_pointer.hpp | 0 .../Polyfills/type_traits/is_same.hpp | 0 .../Polyfills/type_traits/is_signed.hpp | 0 .../Polyfills/type_traits/is_unsigned.hpp | 0 .../Polyfills/type_traits/make_unsigned.hpp | 0 .../Polyfills/type_traits/make_void.hpp | 0 .../Polyfills/type_traits/remove_const.hpp | 0 .../Polyfills/type_traits/remove_cv.hpp | 0 .../type_traits/remove_reference.hpp | 0 .../Polyfills/type_traits/type_identity.hpp | 0 .../src/ArduinoJson/Polyfills/utility.hpp | 0 .../Serialization/CountingDecorator.hpp | 0 .../src/ArduinoJson/Serialization/Writer.hpp | 0 .../Writers/ArduinoStringWriter.hpp | 0 .../Serialization/Writers/DummyWriter.hpp | 0 .../Serialization/Writers/PrintWriter.hpp | 0 .../Writers/StaticStringWriter.hpp | 0 .../Serialization/Writers/StdStreamWriter.hpp | 0 .../Serialization/Writers/StdStringWriter.hpp | 6 +- .../src/ArduinoJson/Serialization/measure.hpp | 0 .../ArduinoJson/Serialization/serialize.hpp | 0 .../Strings/Adapters/FlashString.hpp | 0 .../Strings/Adapters/JsonString.hpp | 0 .../Strings/Adapters/RamString.hpp | 0 .../Strings/Adapters/StringObject.hpp | 0 .../src/ArduinoJson/Strings/IsString.hpp | 0 .../src/ArduinoJson/Strings/JsonString.hpp | 0 .../src/ArduinoJson/Strings/StringAdapter.hpp | 0 .../ArduinoJson/Strings/StringAdapters.hpp | 0 .../src/ArduinoJson/Strings/StringTraits.hpp | 0 .../src/ArduinoJson/Variant/Converter.hpp | 0 .../src/ArduinoJson/Variant/ConverterImpl.hpp | 10 ++ .../src/ArduinoJson/Variant/JsonVariant.hpp | 6 +- .../ArduinoJson/Variant/JsonVariantConst.hpp | 42 ++--- .../ArduinoJson/Variant/JsonVariantCopier.hpp | 0 .../Variant/JsonVariantVisitor.hpp | 0 .../ArduinoJson/Variant/VariantAttorney.hpp | 7 +- .../ArduinoJson/Variant/VariantCompare.hpp | 0 .../ArduinoJson/Variant/VariantContent.hpp | 0 .../src/ArduinoJson/Variant/VariantData.hpp | 0 .../Variant/VariantDataVisitor.hpp | 0 .../ArduinoJson/Variant/VariantOperators.hpp | 0 .../ArduinoJson/Variant/VariantRefBase.hpp | 62 ++++--- .../Variant/VariantRefBaseImpl.hpp | 0 .../src/ArduinoJson/Variant/VariantSlot.hpp | 0 .../src/ArduinoJson/Variant/VariantTag.hpp | 0 .../src/ArduinoJson/Variant/VariantTo.hpp | 0 .../src/ArduinoJson/compatibility.hpp | 0 lib/ArduinoJson/src/ArduinoJson/version.hpp | 6 +- lib/ArduinoJson/src/CMakeLists.txt | 91 ---------- 146 files changed, 390 insertions(+), 353 deletions(-) mode change 100644 => 100755 lib/ArduinoJson/ArduinoJson.h mode change 100644 => 100755 lib/ArduinoJson/CHANGELOG.md delete mode 100644 lib/ArduinoJson/CMakeLists.txt mode change 100644 => 100755 lib/ArduinoJson/LICENSE.txt create mode 100755 lib/ArduinoJson/README.md create mode 100755 lib/ArduinoJson/SUPPORT.md delete mode 100644 lib/ArduinoJson/idf_component.yml delete mode 100644 lib/ArduinoJson/library.json delete mode 100644 lib/ArduinoJson/library.properties mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson.h mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Configuration.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/VariantPool.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolList.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Namespace.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_void.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/JsonString.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/compatibility.hpp mode change 100644 => 100755 lib/ArduinoJson/src/ArduinoJson/version.hpp delete mode 100644 lib/ArduinoJson/src/CMakeLists.txt diff --git a/lib/ArduinoJson/ArduinoJson.h b/lib/ArduinoJson/ArduinoJson.h old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/CHANGELOG.md b/lib/ArduinoJson/CHANGELOG.md old mode 100644 new mode 100755 index e82281e20..fa4cfe6f0 --- a/lib/ArduinoJson/CHANGELOG.md +++ b/lib/ArduinoJson/CHANGELOG.md @@ -1,6 +1,13 @@ ArduinoJson: change log ======================= +v7.0.3 (2024-02-05) +------ + +* Improve error messages when using `char` or `char*` (issue #2043) +* Reduce stack consumption (issue #2046) +* Fix compatibility with GCC 4.8 (issue #2045) + v7.0.2 (2024-01-19) ------ diff --git a/lib/ArduinoJson/CMakeLists.txt b/lib/ArduinoJson/CMakeLists.txt deleted file mode 100644 index 6efa04b3b..000000000 --- a/lib/ArduinoJson/CMakeLists.txt +++ /dev/null @@ -1,25 +0,0 @@ -# ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON -# MIT License - -cmake_minimum_required(VERSION 3.15) - -if(ESP_PLATFORM) - # Build ArduinoJson as an ESP-IDF component - idf_component_register(INCLUDE_DIRS src) - return() -endif() - -project(ArduinoJson VERSION 7.0.2) - -if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) - include(CTest) -endif() - -add_subdirectory(src) - -if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME AND BUILD_TESTING) - include(extras/CompileOptions.cmake) - add_subdirectory(extras/tests) - add_subdirectory(extras/fuzzing) -endif() diff --git a/lib/ArduinoJson/LICENSE.txt b/lib/ArduinoJson/LICENSE.txt old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/README.md b/lib/ArduinoJson/README.md new file mode 100755 index 000000000..2900240e5 --- /dev/null +++ b/lib/ArduinoJson/README.md @@ -0,0 +1,155 @@ +

+ ArduinoJson +

+ +--- + +[![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/bblanchon/ArduinoJson/ci.yml?branch=7.x&logo=github)](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A7.x) +[![Continuous Integration](https://ci.appveyor.com/api/projects/status/m7s53wav1l0abssg/branch/7.x?svg=true)](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/7.x) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/arduinojson.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) +[![Coveralls branch](https://img.shields.io/coveralls/github/bblanchon/ArduinoJson/7.x?logo=coveralls)](https://coveralls.io/github/bblanchon/ArduinoJson?branch=7.x) +[![GitHub stars](https://img.shields.io/github/stars/bblanchon/ArduinoJson?style=flat&logo=github&color=orange)](https://github.com/bblanchon/ArduinoJson/stargazers) +[![GitHub Sponsors](https://img.shields.io/github/sponsors/bblanchon?logo=github&color=orange)](https://github.com/sponsors/bblanchon) + +ArduinoJson is a C++ JSON library for Arduino and IoT (Internet Of Things). + +## Features + +* [JSON deserialization](https://arduinojson.org/v7/api/json/deserializejson/) + * [Optionally decodes UTF-16 escape sequences to UTF-8](https://arduinojson.org/v7/api/config/decode_unicode/) + * [Optionally supports comments in the input](https://arduinojson.org/v7/api/config/enable_comments/) + * [Optionally filters the input to keep only desired values](https://arduinojson.org/v7/api/json/deserializejson/#filtering) + * Supports single quotes as a string delimiter + * Compatible with [NDJSON](http://ndjson.org/) and [JSON Lines](https://jsonlines.org/) +* [JSON serialization](https://arduinojson.org/v7/api/json/serializejson/) + * [Can write to a buffer or a stream](https://arduinojson.org/v7/api/json/serializejson/) + * [Optionally indents the document (prettified JSON)](https://arduinojson.org/v7/api/json/serializejsonpretty/) +* [MessagePack serialization](https://arduinojson.org/v7/api/msgpack/serializemsgpack/) +* [MessagePack deserialization](https://arduinojson.org/v7/api/msgpack/deserializemsgpack/) +* Efficient + * [Twice smaller than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) + * [Almost 10% faster than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) + * [Consumes roughly 10% less RAM than the "official" Arduino_JSON library](https://arduinojson.org/2019/11/19/arduinojson-vs-arduino_json/) + * [Deduplicates strings](https://arduinojson.org/news/2020/08/01/version-6-16-0/) +* Versatile + * Supports [custom allocators (to use external RAM chip, for example)](https://arduinojson.org/v7/how-to/use-external-ram-on-esp32/) + * Supports [`String`](https://arduinojson.org/v7/api/config/enable_arduino_string/), [`std::string`](https://arduinojson.org/v7/api/config/enable_std_string/), and [`std::string_view`](https://arduinojson.org/v7/api/config/enable_string_view/) + * Supports [`Stream`](https://arduinojson.org/v7/api/config/enable_arduino_stream/) and [`std::istream`/`std::ostream`](https://arduinojson.org/v7/api/config/enable_std_stream/) + * Supports [Flash strings](https://arduinojson.org/v7/api/config/enable_progmem/) + * Supports [custom readers](https://arduinojson.org/v7/api/json/deserializejson/#custom-reader) and [custom writers](https://arduinojson.org/v7/api/json/serializejson/#custom-writer) + * Supports [custom converters](https://arduinojson.org/news/2021/05/04/version-6-18-0/) +* Portable + * Usable on any C++ project (not limited to Arduino) + * Compatible with C++11, C++14 and C++17 + * Support for C++98/C++03 available on [ArduinoJson 6.20.x](https://github.com/bblanchon/ArduinoJson/tree/6.20.x) + * Zero warnings with `-Wall -Wextra -pedantic` and `/W4` + * [Header-only library](https://en.wikipedia.org/wiki/Header-only) + * Works with virtually any board + * Arduino boards: [Uno](https://amzn.to/38aL2ik), [Due](https://amzn.to/36YkWi2), [Micro](https://amzn.to/35WkdwG), [Nano](https://amzn.to/2QTvwRX), [Mega](https://amzn.to/36XWhuf), [Yun](https://amzn.to/30odURc), [Leonardo](https://amzn.to/36XWjlR)... + * Espressif chips: [ESP8266](https://amzn.to/36YluV8), [ESP32](https://amzn.to/2G4pRCB) + * Lolin (WeMos) boards: [D1 mini](https://amzn.to/2QUpz7q), [D1 Mini Pro](https://amzn.to/36UsGSs)... + * Teensy boards: [4.0](https://amzn.to/30ljXGq), [3.2](https://amzn.to/2FT0EuC), [2.0](https://amzn.to/2QXUMXj) + * Particle boards: [Argon](https://amzn.to/2FQHa9X), [Boron](https://amzn.to/36WgLUd), [Electron](https://amzn.to/30vEc4k), [Photon](https://amzn.to/387F9Cd)... + * Texas Instruments boards: [MSP430](https://amzn.to/30nJWgg)... + * Soft cores: [Nios II](https://en.wikipedia.org/wiki/Nios_II)... + * Tested on all major development environments + * [Arduino IDE](https://www.arduino.cc/en/Main/Software) + * [Atmel Studio](http://www.atmel.com/microsite/atmel-studio/) + * [Atollic TrueSTUDIO](https://atollic.com/truestudio/) + * [Energia](http://energia.nu/) + * [IAR Embedded Workbench](https://www.iar.com/iar-embedded-workbench/) + * [Keil uVision](http://www.keil.com/) + * [MPLAB X IDE](http://www.microchip.com/mplab/mplab-x-ide) + * [Particle](https://www.particle.io/) + * [PlatformIO](http://platformio.org/) + * [Sloeber plugin for Eclipse](https://eclipse.baeyens.it/) + * [Visual Micro](http://www.visualmicro.com/) + * [Visual Studio](https://www.visualstudio.com/) + * [Even works with online compilers like wandbox.org](https://wandbox.org/permlink/RlZSKy17DjJ6HcdN) + * [CMake friendly](https://arduinojson.org/v7/how-to/use-arduinojson-with-cmake/) +* Well designed + * [Elegant API](http://arduinojson.org/v7/example/) + * [Thread-safe](https://en.wikipedia.org/wiki/Thread_safety) + * Self-contained (no external dependency) + * `const` friendly + * [`for` friendly](https://arduinojson.org/v7/api/jsonobject/begin_end/) + * [TMP friendly](https://en.wikipedia.org/wiki/Template_metaprogramming) + * Handles [integer overflows](https://arduinojson.org/v7/api/jsonvariant/as/#integer-overflows) +* Well tested + * [Unit test coverage close to 100%](https://coveralls.io/github/bblanchon/ArduinoJson?branch=7.x) + * Continuously tested on + * [Visual Studio 2017, 2019, 2022](https://ci.appveyor.com/project/bblanchon/arduinojson/branch/7.x) + * [GCC 4.8, 5, 6, 7, 8, 9, 10, 11, 12](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) + * [Clang 3.9, 4.0, 5.0, 6.0, 7, 8, 9, 10, 11, 12, 13, 14, 15](https://github.com/bblanchon/ArduinoJson/actions?query=workflow%3A%22Continuous+Integration%22) + * [Continuously fuzzed with Google OSS Fuzz](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:arduinojson) + * Passes all default checks of [clang-tidy](https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/clang-tidy/) +* Well documented + * [Tutorials](https://arduinojson.org/v7/doc/deserialization/) + * [Examples](https://arduinojson.org/v7/example/) + * [How-tos](https://arduinojson.org/v7/example/) + * [FAQ](https://arduinojson.org/v7/faq/) + * [Troubleshooter](https://arduinojson.org/v7/troubleshooter/) + * [Book](https://arduinojson.org/book/) + * [Changelog](CHANGELOG.md) +* Vibrant user community + * Most popular of all Arduino libraries on [GitHub](https://github.com/search?o=desc&q=arduino+library&s=stars&type=Repositories) + * [Used in hundreds of projects](https://www.hackster.io/search?i=projects&q=arduinojson) + * [Responsive support](https://github.com/bblanchon/ArduinoJson/issues?q=is%3Aissue+is%3Aclosed) + +## Quickstart + +### Deserialization + +Here is a program that parses a JSON document with ArduinoJson. + +```c++ +const char* json = "{\"sensor\":\"gps\",\"time\":1351824120,\"data\":[48.756080,2.302038]}"; + +JsonDocument doc; +deserializeJson(doc, json); + +const char* sensor = doc["sensor"]; +long time = doc["time"]; +double latitude = doc["data"][0]; +double longitude = doc["data"][1]; +``` + +See the [tutorial on arduinojson.org](https://arduinojson.org/v7/doc/deserialization/) + +### Serialization + +Here is a program that generates a JSON document with ArduinoJson: + +```c++ +JsonDocument doc; + +doc["sensor"] = "gps"; +doc["time"] = 1351824120; +doc["data"][0] = 48.756080; +doc["data"][1] = 2.302038; + +serializeJson(doc, Serial); +// This prints: +// {"sensor":"gps","time":1351824120,"data":[48.756080,2.302038]} +``` + +See the [tutorial on arduinojson.org](https://arduinojson.org/v7/doc/serialization/) + +## Sponsors + +ArduinoJson is thankful to its sponsors. Please give them a visit; they deserve it! + +

+ + Programming Electronics Academy + +

+

+ + 1technophile + +

+ +If you run a commercial project that embeds ArduinoJson, think about [sponsoring the library's development](https://github.com/sponsors/bblanchon): it ensures the code that your products rely on stays actively maintained. It can also give your project some exposure to the makers' community. + +If you are an individual user and want to support the development (or give a sign of appreciation), consider purchasing the book [Mastering ArduinoJson](https://arduinojson.org/book/) ❤, or simply [cast a star](https://github.com/bblanchon/ArduinoJson/stargazers) ⭐. diff --git a/lib/ArduinoJson/SUPPORT.md b/lib/ArduinoJson/SUPPORT.md new file mode 100755 index 000000000..c47e1b1ba --- /dev/null +++ b/lib/ArduinoJson/SUPPORT.md @@ -0,0 +1,27 @@ +# ArduinoJson Support + +First off, thank you very much for using ArduinoJson. + +We'll be very happy to help you, but first please read the following. + +## Before asking for help + +1. Read the [FAQ](https://arduinojson.org/faq/?utm_source=github&utm_medium=support) +2. Search in the [API Reference](https://arduinojson.org/api/?utm_source=github&utm_medium=support) + +If you did not find the answer, please create a [new issue on GitHub](https://github.com/bblanchon/ArduinoJson/issues/new). + +It is OK to add a comment to a currently opened issue, but please avoid adding comments to a closed issue. + +## Before hitting the Submit button + +Please provide all the relevant information: + +* Good title +* Short description of the problem +* Target platform +* Compiler model and version +* [MVCE](https://stackoverflow.com/help/mcve) +* Compiler output + +Good questions get fast answers! diff --git a/lib/ArduinoJson/idf_component.yml b/lib/ArduinoJson/idf_component.yml deleted file mode 100644 index 429d37339..000000000 --- a/lib/ArduinoJson/idf_component.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: "7.0.2" -description: >- - A simple and efficient JSON library for embedded C++. - ⭐ 6444 stars on GitHub! - Supports serialization, deserialization, MessagePack, streams, filtering, and more. - Fully tested and documented. -url: https://arduinojson.org/ -files: - exclude: - - "**/.vs/**/*" - - ".devcontainer/**/*" - - "examples/**/*" - - "extras/**/*" diff --git a/lib/ArduinoJson/library.json b/lib/ArduinoJson/library.json deleted file mode 100644 index 46f156ac4..000000000 --- a/lib/ArduinoJson/library.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "ArduinoJson", - "keywords": "json, rest, http, web", - "description": "A simple and efficient JSON library for embedded C++. ⭐ 6444 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented.", - "homepage": "https://arduinojson.org/?utm_source=meta&utm_medium=library.json", - "repository": { - "type": "git", - "url": "https://github.com/bblanchon/ArduinoJson.git" - }, - "version": "7.0.2", - "authors": { - "name": "Benoit Blanchon", - "url": "https://blog.benoitblanchon.fr" - }, - "export": { - "include": ["src", "examples", "LICENSE.txt", "ArduinoJson.h"] - }, - "frameworks": "*", - "platforms": "*", - "build": { - "libArchive": false - } -} diff --git a/lib/ArduinoJson/library.properties b/lib/ArduinoJson/library.properties deleted file mode 100644 index e9d9c2c7d..000000000 --- a/lib/ArduinoJson/library.properties +++ /dev/null @@ -1,11 +0,0 @@ -name=ArduinoJson -version=7.0.2 -author=Benoit Blanchon -maintainer=Benoit Blanchon -sentence=A simple and efficient JSON library for embedded C++. -paragraph=⭐ 6444 stars on GitHub! Supports serialization, deserialization, MessagePack, streams, filtering, and more. Fully tested and documented. -category=Data Processing -url=https://arduinojson.org/?utm_source=meta&utm_medium=library.properties -architectures=* -repository=https://github.com/bblanchon/ArduinoJson.git -license=MIT diff --git a/lib/ArduinoJson/src/ArduinoJson.h b/lib/ArduinoJson/src/ArduinoJson.h old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson.hpp b/lib/ArduinoJson/src/ArduinoJson.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp old mode 100644 new mode 100755 index 2ae26624a..f36b68ea3 --- a/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp @@ -22,25 +22,25 @@ class ElementProxy : public VariantRefBase>, ElementProxy(const ElementProxy& src) : upstream_(src.upstream_), index_(src.index_) {} - FORCE_INLINE ElementProxy& operator=(const ElementProxy& src) { + ElementProxy& operator=(const ElementProxy& src) { this->set(src); return *this; } template - FORCE_INLINE ElementProxy& operator=(const T& src) { + ElementProxy& operator=(const T& src) { this->set(src); return *this; } template - FORCE_INLINE ElementProxy& operator=(T* src) { + ElementProxy& operator=(T* src) { this->set(src); return *this; } private: - FORCE_INLINE ResourceManager* getResourceManager() const { + ResourceManager* getResourceManager() const { return VariantAttorney::getResourceManager(upstream_); } @@ -50,7 +50,7 @@ class ElementProxy : public VariantRefBase>, VariantAttorney::getResourceManager(upstream_)); } - FORCE_INLINE VariantData* getOrCreateData() const { + VariantData* getOrCreateData() const { auto data = VariantAttorney::getOrCreateData(upstream_); if (!data) return nullptr; diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp old mode 100644 new mode 100755 index 069c353de..292336308 --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp @@ -20,11 +20,10 @@ class JsonArray : public detail::VariantOperators { typedef JsonArrayIterator iterator; // Constructs an unbound reference. - FORCE_INLINE JsonArray() : data_(0), resources_(0) {} + JsonArray() : data_(0), resources_(0) {} // INTERNAL USE ONLY - FORCE_INLINE JsonArray(detail::ArrayData* data, - detail::ResourceManager* resources) + JsonArray(detail::ArrayData* data, detail::ResourceManager* resources) : data_(data), resources_(resources) {} // Returns a JsonVariant pointing to the array. @@ -63,20 +62,20 @@ class JsonArray : public detail::VariantOperators { // Appends a value to the array. // https://arduinojson.org/v7/api/jsonarray/add/ template - FORCE_INLINE bool add(const T& value) const { + bool add(const T& value) const { return add().set(value); } // Appends a value to the array. // https://arduinojson.org/v7/api/jsonarray/add/ template - FORCE_INLINE bool add(T* value) const { + bool add(T* value) const { return add().set(value); } // Returns an iterator to the first element of the array. // https://arduinojson.org/v7/api/jsonarray/begin/ - FORCE_INLINE iterator begin() const { + iterator begin() const { if (!data_) return iterator(); return iterator(data_->createIterator(resources_), resources_); @@ -84,13 +83,13 @@ class JsonArray : public detail::VariantOperators { // Returns an iterator following the last element of the array. // https://arduinojson.org/v7/api/jsonarray/end/ - FORCE_INLINE iterator end() const { + iterator end() const { return iterator(); } // Copies an array. // https://arduinojson.org/v7/api/jsonarray/set/ - FORCE_INLINE bool set(JsonArrayConst src) const { + bool set(JsonArrayConst src) const { if (!data_) return false; @@ -105,13 +104,13 @@ class JsonArray : public detail::VariantOperators { // Removes the element at the specified iterator. // https://arduinojson.org/v7/api/jsonarray/remove/ - FORCE_INLINE void remove(iterator it) const { + void remove(iterator it) const { detail::ArrayData::remove(data_, it.iterator_, resources_); } // Removes the element at the specified index. // https://arduinojson.org/v7/api/jsonarray/remove/ - FORCE_INLINE void remove(size_t index) const { + void remove(size_t index) const { detail::ArrayData::removeElement(data_, index, resources_); } @@ -123,7 +122,7 @@ class JsonArray : public detail::VariantOperators { // Gets or sets the element at the specified index. // https://arduinojson.org/v7/api/jsonarray/subscript/ - FORCE_INLINE detail::ElementProxy operator[](size_t index) const { + detail::ElementProxy operator[](size_t index) const { return {*this, index}; } @@ -133,25 +132,25 @@ class JsonArray : public detail::VariantOperators { // Returns true if the reference is unbound. // https://arduinojson.org/v7/api/jsonarray/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. // https://arduinojson.org/v7/api/jsonarray/isnull/ - FORCE_INLINE operator bool() const { + operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the array. // https://arduinojson.org/v7/api/jsonarray/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of elements in the array. // https://arduinojson.org/v7/api/jsonarray/size/ - FORCE_INLINE size_t size() const { + size_t size() const { return data_ ? data_->size(resources_) : 0; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp old mode 100644 new mode 100755 index 526975a24..6c0d7db2f --- a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -23,7 +23,7 @@ class JsonArrayConst : public detail::VariantOperators { // Returns an iterator to the first element of the array. // https://arduinojson.org/v7/api/jsonarrayconst/begin/ - FORCE_INLINE iterator begin() const { + iterator begin() const { if (!data_) return iterator(); return iterator(data_->createIterator(resources_), resources_); @@ -31,21 +31,21 @@ class JsonArrayConst : public detail::VariantOperators { // Returns an iterator to the element following the last element of the array. // https://arduinojson.org/v7/api/jsonarrayconst/end/ - FORCE_INLINE iterator end() const { + iterator end() const { return iterator(); } // Creates an unbound reference. - FORCE_INLINE JsonArrayConst() : data_(0) {} + JsonArrayConst() : data_(0) {} // INTERNAL USE ONLY - FORCE_INLINE JsonArrayConst(const detail::ArrayData* data, - const detail::ResourceManager* resources) + JsonArrayConst(const detail::ArrayData* data, + const detail::ResourceManager* resources) : data_(data), resources_(resources) {} // Returns the element at the specified index. // https://arduinojson.org/v7/api/jsonarrayconst/subscript/ - FORCE_INLINE JsonVariantConst operator[](size_t index) const { + JsonVariantConst operator[](size_t index) const { return JsonVariantConst( detail::ArrayData::getElement(data_, index, resources_), resources_); } @@ -56,25 +56,25 @@ class JsonArrayConst : public detail::VariantOperators { // Returns true if the reference is unbound. // https://arduinojson.org/v7/api/jsonarrayconst/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. // https://arduinojson.org/v7/api/jsonarrayconst/isnull/ - FORCE_INLINE operator bool() const { + operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the array. // https://arduinojson.org/v7/api/jsonarrayconst/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return detail::VariantData::nesting(getData(), resources_); } // Returns the number of elements in the array. // https://arduinojson.org/v7/api/jsonarrayconst/size/ - FORCE_INLINE size_t size() const { + size_t size() const { return data_ ? data_->size(resources_) : 0; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/JsonArrayIterator.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp b/lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp old mode 100644 new mode 100755 index 1010795ce..07fe7e043 --- a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionData.hpp @@ -107,6 +107,10 @@ class CollectionData { return collection->remove(it, resources); } + SlotId head() const { + return head_; + } + protected: iterator addSlot(ResourceManager*); diff --git a/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Collection/CollectionImpl.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp b/lib/ArduinoJson/src/ArduinoJson/Configuration.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationError.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/DeserializationOptions.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Filter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/NestingLimit.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Reader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/FlashReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/RamReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp b/lib/ArduinoJson/src/ArduinoJson/Deserialization/deserialize.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp old mode 100644 new mode 100755 index d2daf97ad..0f336f1a2 --- a/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp @@ -30,7 +30,8 @@ class JsonDocument : public detail::VariantOperators { } // Move-constructor - JsonDocument(JsonDocument&& src) : JsonDocument() { + JsonDocument(JsonDocument&& src) + : JsonDocument(detail::DefaultAllocator::instance()) { swap(*this, src); } @@ -169,9 +170,8 @@ class JsonDocument : public detail::VariantOperators { // Gets or sets a root object's member. // https://arduinojson.org/v7/api/jsondocument/subscript/ template - FORCE_INLINE typename detail::enable_if< - detail::IsString::value, - detail::MemberProxy>::type + typename detail::enable_if::value, + detail::MemberProxy>::type operator[](const TString& key) { return {*this, key}; } @@ -179,9 +179,8 @@ class JsonDocument : public detail::VariantOperators { // Gets or sets a root object's member. // https://arduinojson.org/v7/api/jsondocument/subscript/ template - FORCE_INLINE typename detail::enable_if< - detail::IsString::value, - detail::MemberProxy>::type + typename detail::enable_if::value, + detail::MemberProxy>::type operator[](TChar* key) { return {*this, key}; } @@ -189,8 +188,8 @@ class JsonDocument : public detail::VariantOperators { // Gets a root object's member. // https://arduinojson.org/v7/api/jsondocument/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](const TString& key) const { return JsonVariantConst( data_.getMember(detail::adaptString(key), &resources_), &resources_); @@ -199,8 +198,8 @@ class JsonDocument : public detail::VariantOperators { // Gets a root object's member. // https://arduinojson.org/v7/api/jsondocument/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](TChar* key) const { return JsonVariantConst( data_.getMember(detail::adaptString(key), &resources_), &resources_); @@ -208,13 +207,13 @@ class JsonDocument : public detail::VariantOperators { // Gets or sets a root array's element. // https://arduinojson.org/v7/api/jsondocument/subscript/ - FORCE_INLINE detail::ElementProxy operator[](size_t index) { + detail::ElementProxy operator[](size_t index) { return {*this, index}; } // Gets a root array's member. // https://arduinojson.org/v7/api/jsondocument/subscript/ - FORCE_INLINE JsonVariantConst operator[](size_t index) const { + JsonVariantConst operator[](size_t index) const { return JsonVariantConst(data_.getElement(index, &resources_), &resources_); } @@ -239,28 +238,28 @@ class JsonDocument : public detail::VariantOperators { // Appends a value to the root array. // https://arduinojson.org/v7/api/jsondocument/add/ template - FORCE_INLINE bool add(const TValue& value) { + bool add(const TValue& value) { return add().set(value); } // Appends a value to the root array. // https://arduinojson.org/v7/api/jsondocument/add/ template - FORCE_INLINE bool add(TChar* value) { + bool add(TChar* value) { return add().set(value); } // Removes an element of the root array. // https://arduinojson.org/v7/api/jsondocument/remove/ - FORCE_INLINE void remove(size_t index) { + void remove(size_t index) { detail::VariantData::removeElement(getData(), index, getResourceManager()); } // Removes a member of the root object. // https://arduinojson.org/v7/api/jsondocument/remove/ template - FORCE_INLINE typename detail::enable_if::value>::type - remove(TChar* key) { + typename detail::enable_if::value>::type remove( + TChar* key) { detail::VariantData::removeMember(getData(), detail::adaptString(key), getResourceManager()); } @@ -268,18 +267,18 @@ class JsonDocument : public detail::VariantOperators { // Removes a member of the root object. // https://arduinojson.org/v7/api/jsondocument/remove/ template - FORCE_INLINE - typename detail::enable_if::value>::type - remove(const TString& key) { + + typename detail::enable_if::value>::type remove( + const TString& key) { detail::VariantData::removeMember(getData(), detail::adaptString(key), getResourceManager()); } - FORCE_INLINE operator JsonVariant() { + operator JsonVariant() { return getVariant(); } - FORCE_INLINE operator JsonVariantConst() const { + operator JsonVariantConst() const { return getVariant(); } diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/EscapeSequence.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/JsonDeserializer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp old mode 100644 new mode 100755 index f4751f0c2..6b02cc593 --- a/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp @@ -19,19 +19,20 @@ class JsonSerializer : public VariantDataVisitor { JsonSerializer(TWriter writer, const ResourceManager* resources) : formatter_(writer), resources_(resources) {} - FORCE_INLINE size_t visit(const ArrayData& array) { + size_t visit(const ArrayData& array) { write('['); - auto it = array.createIterator(resources_); + auto slotId = array.head(); - while (!it.done()) { - it->accept(*this); + while (slotId != NULL_SLOT) { + auto slot = resources_->getSlot(slotId); - it.next(resources_); - if (it.done()) - break; + slot->data()->accept(*this); - write(','); + slotId = slot->next(); + + if (slotId != NULL_SLOT) + write(','); } write(']'); @@ -41,18 +42,19 @@ class JsonSerializer : public VariantDataVisitor { size_t visit(const ObjectData& object) { write('{'); - auto it = object.createIterator(resources_); + auto slotId = object.head(); - while (!it.done()) { - formatter_.writeString(it.key()); + while (slotId != NULL_SLOT) { + auto slot = resources_->getSlot(slotId); + + formatter_.writeString(slot->key()); write(':'); - it->accept(*this); + slot->data()->accept(*this); - it.next(resources_); - if (it.done()) - break; + slotId = slot->next(); - write(','); + if (slotId != NULL_SLOT) + write(','); } write('}'); diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/PrettyJsonSerializer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp b/lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/ResourceManager.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringBuilder.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPool.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPool.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolImpl.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolList.hpp b/lib/ArduinoJson/src/ArduinoJson/Memory/VariantPoolList.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp b/lib/ArduinoJson/src/ArduinoJson/Misc/SerializedValue.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackDeserializer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp old mode 100644 new mode 100755 index 5c3fc24ea..15c5a0e32 --- a/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/MsgPack/MsgPackSerializer.hpp @@ -59,10 +59,14 @@ class MsgPackSerializer : public VariantDataVisitor { writeByte(0xDD); writeInteger(uint32_t(n)); } - for (auto it = array.createIterator(resources_); !it.done(); - it.next(resources_)) { - it->accept(*this); + + auto slotId = array.head(); + while (slotId != NULL_SLOT) { + auto slot = resources_->getSlot(slotId); + slot->data()->accept(*this); + slotId = slot->next(); } + return bytesWritten(); } @@ -77,11 +81,15 @@ class MsgPackSerializer : public VariantDataVisitor { writeByte(0xDF); writeInteger(uint32_t(n)); } - for (auto it = object.createIterator(resources_); !it.done(); - it.next(resources_)) { - visit(it.key()); - it->accept(*this); + + auto slotId = object.head(); + while (slotId != NULL_SLOT) { + auto slot = resources_->getSlot(slotId); + visit(slot->key()); + slot->data()->accept(*this); + slotId = slot->next(); } + return bytesWritten(); } diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp b/lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp b/lib/ArduinoJson/src/ArduinoJson/Namespace.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/FloatTraits.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/JsonInteger.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/arithmeticCompare.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/convertNumber.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp b/lib/ArduinoJson/src/ArduinoJson/Numbers/parseNumber.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp old mode 100644 new mode 100755 index 096afa87b..e4e7dee4a --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp @@ -20,11 +20,10 @@ class JsonObject : public detail::VariantOperators { typedef JsonObjectIterator iterator; // Creates an unbound reference. - FORCE_INLINE JsonObject() : data_(0), resources_(0) {} + JsonObject() : data_(0), resources_(0) {} // INTERNAL USE ONLY - FORCE_INLINE JsonObject(detail::ObjectData* data, - detail::ResourceManager* resource) + JsonObject(detail::ObjectData* data, detail::ResourceManager* resource) : data_(data), resources_(resource) {} operator JsonVariant() const { @@ -43,31 +42,31 @@ class JsonObject : public detail::VariantOperators { // Returns true if the reference is unbound. // https://arduinojson.org/v7/api/jsonobject/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. // https://arduinojson.org/v7/api/jsonobject/isnull/ - FORCE_INLINE operator bool() const { + operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the object. // https://arduinojson.org/v7/api/jsonobject/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return detail::VariantData::nesting(collectionToVariant(data_), resources_); } // Returns the number of members in the object. // https://arduinojson.org/v7/api/jsonobject/size/ - FORCE_INLINE size_t size() const { + size_t size() const { return data_ ? data_->size(resources_) : 0; } // Returns an iterator to the first key-value pair of the object. // https://arduinojson.org/v7/api/jsonobject/begin/ - FORCE_INLINE iterator begin() const { + iterator begin() const { if (!data_) return iterator(); return iterator(data_->createIterator(resources_), resources_); @@ -75,7 +74,7 @@ class JsonObject : public detail::VariantOperators { // Returns an iterator following the last key-value pair of the object. // https://arduinojson.org/v7/api/jsonobject/end/ - FORCE_INLINE iterator end() const { + iterator end() const { return iterator(); } @@ -87,7 +86,7 @@ class JsonObject : public detail::VariantOperators { // Copies an object. // https://arduinojson.org/v7/api/jsonobject/set/ - FORCE_INLINE bool set(JsonObjectConst src) { + bool set(JsonObjectConst src) { if (!data_ || !src.data_) return false; @@ -103,20 +102,20 @@ class JsonObject : public detail::VariantOperators { // Gets or sets the member with specified key. // https://arduinojson.org/v7/api/jsonobject/subscript/ template - FORCE_INLINE - typename detail::enable_if::value, - detail::MemberProxy>::type - operator[](const TString& key) const { + + typename detail::enable_if::value, + detail::MemberProxy>::type + operator[](const TString& key) const { return {*this, key}; } // Gets or sets the member with specified key. // https://arduinojson.org/v7/api/jsonobject/subscript/ template - FORCE_INLINE - typename detail::enable_if::value, - detail::MemberProxy>::type - operator[](TChar* key) const { + + typename detail::enable_if::value, + detail::MemberProxy>::type + operator[](TChar* key) const { return {*this, key}; } @@ -145,9 +144,9 @@ class JsonObject : public detail::VariantOperators { // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonobject/containskey/ template - FORCE_INLINE - typename detail::enable_if::value, bool>::type - containsKey(const TString& key) const { + + typename detail::enable_if::value, bool>::type + containsKey(const TString& key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), resources_) != 0; } @@ -155,9 +154,9 @@ class JsonObject : public detail::VariantOperators { // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonobject/containskey/ template - FORCE_INLINE - typename detail::enable_if::value, bool>::type - containsKey(TChar* key) const { + + typename detail::enable_if::value, bool>::type + containsKey(TChar* key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), resources_) != 0; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp old mode 100644 new mode 100755 index 8f2c8bb10..908fa275d --- a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectConst.hpp @@ -32,31 +32,31 @@ class JsonObjectConst : public detail::VariantOperators { // Returns true if the reference is unbound. // https://arduinojson.org/v7/api/jsonobjectconst/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return data_ == 0; } // Returns true if the reference is bound. // https://arduinojson.org/v7/api/jsonobjectconst/isnull/ - FORCE_INLINE operator bool() const { + operator bool() const { return data_ != 0; } // Returns the depth (nesting level) of the object. // https://arduinojson.org/v7/api/jsonobjectconst/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return detail::VariantData::nesting(getData(), resources_); } // Returns the number of members in the object. // https://arduinojson.org/v7/api/jsonobjectconst/size/ - FORCE_INLINE size_t size() const { + size_t size() const { return data_ ? data_->size(resources_) : 0; } // Returns an iterator to the first key-value pair of the object. // https://arduinojson.org/v7/api/jsonobjectconst/begin/ - FORCE_INLINE iterator begin() const { + iterator begin() const { if (!data_) return iterator(); return iterator(data_->createIterator(resources_), resources_); @@ -64,14 +64,14 @@ class JsonObjectConst : public detail::VariantOperators { // Returns an iterator following the last key-value pair of the object. // https://arduinojson.org/v7/api/jsonobjectconst/end/ - FORCE_INLINE iterator end() const { + iterator end() const { return iterator(); } // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonobjectconst/containskey/ template - FORCE_INLINE bool containsKey(const TString& key) const { + bool containsKey(const TString& key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), resources_) != 0; } @@ -79,7 +79,7 @@ class JsonObjectConst : public detail::VariantOperators { // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonobjectconst/containskey/ template - FORCE_INLINE bool containsKey(TChar* key) const { + bool containsKey(TChar* key) const { return detail::ObjectData::getMember(data_, detail::adaptString(key), resources_) != 0; } @@ -87,8 +87,8 @@ class JsonObjectConst : public detail::VariantOperators { // Gets the member with specified key. // https://arduinojson.org/v7/api/jsonobjectconst/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](const TString& key) const { return JsonVariantConst(detail::ObjectData::getMember( data_, detail::adaptString(key), resources_), @@ -98,8 +98,8 @@ class JsonObjectConst : public detail::VariantOperators { // Gets the member with specified key. // https://arduinojson.org/v7/api/jsonobjectconst/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](TChar* key) const { return JsonVariantConst(detail::ObjectData::getMember( data_, detail::adaptString(key), resources_), diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonObjectIterator.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp old mode 100644 new mode 100755 index 2a56f6dae..eb9feedeb --- a/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp @@ -17,41 +17,41 @@ class MemberProxy friend class VariantAttorney; public: - FORCE_INLINE MemberProxy(TUpstream upstream, TStringRef key) + MemberProxy(TUpstream upstream, TStringRef key) : upstream_(upstream), key_(key) {} MemberProxy(const MemberProxy& src) : upstream_(src.upstream_), key_(src.key_) {} - FORCE_INLINE MemberProxy& operator=(const MemberProxy& src) { + MemberProxy& operator=(const MemberProxy& src) { this->set(src); return *this; } template - FORCE_INLINE MemberProxy& operator=(const T& src) { + MemberProxy& operator=(const T& src) { this->set(src); return *this; } template - FORCE_INLINE MemberProxy& operator=(T* src) { + MemberProxy& operator=(T* src) { this->set(src); return *this; } private: - FORCE_INLINE ResourceManager* getResourceManager() const { + ResourceManager* getResourceManager() const { return VariantAttorney::getResourceManager(upstream_); } - FORCE_INLINE VariantData* getData() const { + VariantData* getData() const { return VariantData::getMember( VariantAttorney::getData(upstream_), adaptString(key_), VariantAttorney::getResourceManager(upstream_)); } - FORCE_INLINE VariantData* getOrCreateData() const { + VariantData* getOrCreateData() const { auto data = VariantAttorney::getOrCreateData(upstream_); if (!data) return nullptr; diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/alias_cast.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp old mode 100644 new mode 100755 index 2eaaa57cf..268026f21 --- a/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Polyfills/attributes.hpp @@ -7,7 +7,6 @@ #ifdef _MSC_VER // Visual Studio # define FORCE_INLINE // __forceinline causes C4714 when returning std::string -# define NO_INLINE __declspec(noinline) # ifndef ARDUINOJSON_DEPRECATED # define ARDUINOJSON_DEPRECATED(msg) __declspec(deprecated(msg)) @@ -16,7 +15,6 @@ #elif defined(__GNUC__) // GCC or Clang # define FORCE_INLINE __attribute__((always_inline)) -# define NO_INLINE __attribute__((noinline)) # ifndef ARDUINOJSON_DEPRECATED # if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5) @@ -29,7 +27,6 @@ #else // Other compilers # define FORCE_INLINE -# define NO_INLINE # ifndef ARDUINOJSON_DEPRECATED # define ARDUINOJSON_DEPRECATED(msg) diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace_generic.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/preprocessor.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/conditional.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/declval.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/enable_if.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/integral_constant.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_array.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_base_of.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_class.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_const.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_convertible.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_enum.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_floating_point.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_integral.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_pointer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_same.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_signed.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/is_unsigned.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_unsigned.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_void.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/make_void.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_const.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_cv.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/remove_reference.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/type_traits/type_identity.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp b/lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/CountingDecorator.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writer.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/ArduinoStringWriter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/DummyWriter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/PrintWriter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StaticStringWriter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStreamWriter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp old mode 100644 new mode 100755 index 46dc8ba55..6ac4d9738 --- a/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Serialization/Writers/StdStringWriter.hpp @@ -9,15 +9,13 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE -template -using void_t = void; - template struct is_std_string : false_type {}; template struct is_std_string< - T, void_t> + T, typename enable_if::value && + is_same::value>::type> : true_type {}; template diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/measure.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp b/lib/ArduinoJson/src/ArduinoJson/Serialization/serialize.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/FlashString.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/JsonString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/JsonString.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/RamString.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/Adapters/StringObject.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/IsString.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/JsonString.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringAdapters.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp b/lib/ArduinoJson/src/ArduinoJson/Strings/StringTraits.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/Converter.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp old mode 100644 new mode 100755 index cc89687ee..8e35f72b5 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/ConverterImpl.hpp @@ -21,6 +21,10 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE template struct Converter { + static_assert(!detail::is_same::value, + "type 'char' is not supported, use 'signed char', 'unsigned " + "char' or another integer type instead"); + static void toJson(const T& src, JsonVariant dst) { // clang-format off convertToJson(src, dst); // Error here? See https://arduinojson.org/v7/unsupported-set/ @@ -28,6 +32,9 @@ struct Converter { } static T fromJson(JsonVariantConst src) { + static_assert(!detail::is_same::value, + "type 'char*' is not supported, use 'const char*' instead"); + // clang-format off T result; // Error here? See https://arduinojson.org/v7/non-default-constructible/ convertFromJson(src, result); // Error here? See https://arduinojson.org/v7/unsupported-as/ @@ -36,6 +43,9 @@ struct Converter { } static bool checkJson(JsonVariantConst src) { + static_assert(!detail::is_same::value, + "type 'char*' is not supported, use 'const char*' instead"); + T dummy = T(); // clang-format off return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v7/unsupported-is/ diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp old mode 100644 new mode 100755 index f38963c1b..5039c38ae --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariant.hpp @@ -23,15 +23,15 @@ class JsonVariant : public detail::VariantRefBase, : data_(data), resources_(resources) {} private: - FORCE_INLINE detail::ResourceManager* getResourceManager() const { + detail::ResourceManager* getResourceManager() const { return resources_; } - FORCE_INLINE detail::VariantData* getData() const { + detail::VariantData* getData() const { return data_; } - FORCE_INLINE detail::VariantData* getOrCreateData() const { + detail::VariantData* getOrCreateData() const { return data_; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp old mode 100644 new mode 100755 index 8ff741110..7e7b8c0d8 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantConst.hpp @@ -38,18 +38,18 @@ class JsonVariantConst : public detail::VariantTag, // Returns true if the value is null or the reference is unbound. // https://arduinojson.org/v7/api/jsonvariantconst/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return detail::VariantData::isNull(data_); } // Returns true if the reference is unbound. - FORCE_INLINE bool isUnbound() const { + bool isUnbound() const { return !data_; } // Returns the depth (nesting level) of the value. // https://arduinojson.org/v7/api/jsonvariantconst/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return detail::VariantData::nesting(data_, resources_); } @@ -62,9 +62,9 @@ class JsonVariantConst : public detail::VariantTag, // Casts the value to the specified type. // https://arduinojson.org/v7/api/jsonvariantconst/as/ template - FORCE_INLINE typename detail::enable_if::value && - !detail::is_same::value, - T>::type + typename detail::enable_if::value && + !detail::is_same::value, + T>::type as() const { return Converter::fromJson(*this); } @@ -72,21 +72,21 @@ class JsonVariantConst : public detail::VariantTag, // Returns true if the value is of the specified type. // https://arduinojson.org/v7/api/jsonvariantconst/is/ template - FORCE_INLINE typename detail::enable_if::value && - !detail::is_same::value, - bool>::type + typename detail::enable_if::value && + !detail::is_same::value, + bool>::type is() const { return Converter::checkJson(*this); } template - FORCE_INLINE operator T() const { + operator T() const { return as(); } // Gets array's element at specified index. // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ - FORCE_INLINE JsonVariantConst operator[](size_t index) const { + JsonVariantConst operator[](size_t index) const { return JsonVariantConst( detail::VariantData::getElement(data_, index, resources_), resources_); } @@ -94,8 +94,8 @@ class JsonVariantConst : public detail::VariantTag, // Gets object's member with specified key. // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](const TString& key) const { return JsonVariantConst(detail::VariantData::getMember( data_, detail::adaptString(key), resources_), @@ -105,8 +105,8 @@ class JsonVariantConst : public detail::VariantTag, // Gets object's member with specified key. // https://arduinojson.org/v7/api/jsonvariantconst/subscript/ template - FORCE_INLINE typename detail::enable_if::value, - JsonVariantConst>::type + typename detail::enable_if::value, + JsonVariantConst>::type operator[](TChar* key) const { return JsonVariantConst(detail::VariantData::getMember( data_, detail::adaptString(key), resources_), @@ -116,9 +116,9 @@ class JsonVariantConst : public detail::VariantTag, // Returns true if tge object contains the specified key. // https://arduinojson.org/v7/api/jsonvariantconst/containskey/ template - FORCE_INLINE - typename detail::enable_if::value, bool>::type - containsKey(const TString& key) const { + + typename detail::enable_if::value, bool>::type + containsKey(const TString& key) const { return detail::VariantData::getMember(getData(), detail::adaptString(key), resources_) != 0; } @@ -126,9 +126,9 @@ class JsonVariantConst : public detail::VariantTag, // Returns true if tge object contains the specified key. // https://arduinojson.org/v7/api/jsonvariantconst/containskey/ template - FORCE_INLINE - typename detail::enable_if::value, bool>::type - containsKey(TChar* key) const { + + typename detail::enable_if::value, bool>::type + containsKey(TChar* key) const { return detail::VariantData::getMember(getData(), detail::adaptString(key), resources_) != 0; } diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantCopier.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/JsonVariantVisitor.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp old mode 100644 new mode 100755 index 24f22dda5..b75eb3806 --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantAttorney.hpp @@ -16,19 +16,18 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE class VariantAttorney { public: template - FORCE_INLINE static auto getResourceManager(TClient& client) + static auto getResourceManager(TClient& client) -> decltype(client.getResourceManager()) { return client.getResourceManager(); } template - FORCE_INLINE static auto getData(TClient& client) - -> decltype(client.getData()) { + static auto getData(TClient& client) -> decltype(client.getData()) { return client.getData(); } template - FORCE_INLINE static VariantData* getOrCreateData(TClient& client) { + static VariantData* getOrCreateData(TClient& client) { return client.getOrCreateData(); } }; diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantCompare.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantContent.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantData.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantDataVisitor.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantOperators.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp old mode 100644 new mode 100755 index c81334af2..318915e8d --- a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBase.hpp @@ -28,39 +28,38 @@ class VariantRefBase : public VariantTag { public: // Sets the value to null. // https://arduinojson.org/v7/api/jsonvariant/clear/ - FORCE_INLINE void clear() const { + void clear() const { VariantData::setNull(getOrCreateData(), getResourceManager()); } // Returns true if the value is null or the reference is unbound. // https://arduinojson.org/v7/api/jsonvariant/isnull/ - FORCE_INLINE bool isNull() const { + bool isNull() const { return VariantData::isNull(getData()); } // Returns true if the reference is unbound. - FORCE_INLINE bool isUnbound() const { + bool isUnbound() const { return !getData(); } // Casts the value to the specified type. // https://arduinojson.org/v7/api/jsonvariant/as/ template - FORCE_INLINE - typename enable_if::value, T>::type - as() const { + + typename enable_if::value, T>::type as() + const { return Converter::fromJson(getVariantConst()); } // Casts the value to the specified type. // https://arduinojson.org/v7/api/jsonvariant/as/ template - FORCE_INLINE typename enable_if::value, T>::type - as() const; + typename enable_if::value, T>::type as() const; template ::value>::type> - FORCE_INLINE operator T() const { + operator T() const { return as(); } @@ -91,33 +90,31 @@ class VariantRefBase : public VariantTag { // Returns true if the value is of the specified type. // https://arduinojson.org/v7/api/jsonvariant/is/ template - FORCE_INLINE typename enable_if::value && - !is_same::value && - !is_same::value, - bool>::type - is() const { + FORCE_INLINE + typename enable_if::value, bool>::type + is() const { return Converter::checkJson(getVariantConst()); } // Copies the specified value. // https://arduinojson.org/v7/api/jsonvariant/set/ template - FORCE_INLINE bool set(const T& value) const; + bool set(const T& value) const; // Copies the specified value. // https://arduinojson.org/v7/api/jsonvariant/set/ template - FORCE_INLINE bool set(T* value) const; + bool set(T* value) const; // Returns the size of the array or object. // https://arduinojson.org/v7/api/jsonvariant/size/ - FORCE_INLINE size_t size() const { + size_t size() const { return VariantData::size(getData(), getResourceManager()); } // Returns the depth (nesting level) of the value. // https://arduinojson.org/v7/api/jsonvariant/nesting/ - FORCE_INLINE size_t nesting() const { + size_t nesting() const { return VariantData::nesting(getData(), getResourceManager()); } @@ -138,28 +135,27 @@ class VariantRefBase : public VariantTag { // Appends a value to the array. // https://arduinojson.org/v7/api/jsonvariant/add/ template - FORCE_INLINE bool add(const T& value) const { + bool add(const T& value) const { return add().set(value); } // Appends a value to the array. // https://arduinojson.org/v7/api/jsonvariant/add/ template - FORCE_INLINE bool add(T* value) const { + bool add(T* value) const { return add().set(value); } // Removes an element of the array. // https://arduinojson.org/v7/api/jsonvariant/remove/ - FORCE_INLINE void remove(size_t index) const { + void remove(size_t index) const { VariantData::removeElement(getData(), index, getResourceManager()); } // Removes a member of the object. // https://arduinojson.org/v7/api/jsonvariant/remove/ template - FORCE_INLINE typename enable_if::value>::type remove( - TChar* key) const { + typename enable_if::value>::type remove(TChar* key) const { VariantData::removeMember(getData(), adaptString(key), getResourceManager()); } @@ -167,7 +163,7 @@ class VariantRefBase : public VariantTag { // Removes a member of the object. // https://arduinojson.org/v7/api/jsonvariant/remove/ template - FORCE_INLINE typename enable_if::value>::type remove( + typename enable_if::value>::type remove( const TString& key) const { VariantData::removeMember(getData(), adaptString(key), getResourceManager()); @@ -175,19 +171,19 @@ class VariantRefBase : public VariantTag { // Gets or sets an array element. // https://arduinojson.org/v7/api/jsonvariant/subscript/ - FORCE_INLINE ElementProxy operator[](size_t index) const; + ElementProxy operator[](size_t index) const; // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonvariant/containskey/ template - FORCE_INLINE typename enable_if::value, bool>::type - containsKey(const TString& key) const; + typename enable_if::value, bool>::type containsKey( + const TString& key) const; // Returns true if the object contains the specified key. // https://arduinojson.org/v7/api/jsonvariant/containskey/ template - FORCE_INLINE typename enable_if::value, bool>::type - containsKey(TChar* key) const; + typename enable_if::value, bool>::type containsKey( + TChar* key) const; // Gets or sets an object member. // https://arduinojson.org/v7/api/jsonvariant/subscript/ @@ -256,15 +252,15 @@ class VariantRefBase : public VariantTag { return static_cast(*this); } - FORCE_INLINE ResourceManager* getResourceManager() const { + ResourceManager* getResourceManager() const { return VariantAttorney::getResourceManager(derived()); } - FORCE_INLINE VariantData* getData() const { + VariantData* getData() const { return VariantAttorney::getData(derived()); } - FORCE_INLINE VariantData* getOrCreateData() const { + VariantData* getOrCreateData() const { return VariantAttorney::getOrCreateData(derived()); } @@ -274,7 +270,7 @@ class VariantRefBase : public VariantTag { return ArduinoJson::JsonVariantConst(getData(), getResourceManager()); } - FORCE_INLINE ArduinoJson::JsonVariant getOrCreateVariant() const; + ArduinoJson::JsonVariant getOrCreateVariant() const; }; ARDUINOJSON_END_PRIVATE_NAMESPACE diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantRefBaseImpl.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantSlot.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTag.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp b/lib/ArduinoJson/src/ArduinoJson/Variant/VariantTo.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp b/lib/ArduinoJson/src/ArduinoJson/compatibility.hpp old mode 100644 new mode 100755 diff --git a/lib/ArduinoJson/src/ArduinoJson/version.hpp b/lib/ArduinoJson/src/ArduinoJson/version.hpp old mode 100644 new mode 100755 index e41890e9f..dc1215a6d --- a/lib/ArduinoJson/src/ArduinoJson/version.hpp +++ b/lib/ArduinoJson/src/ArduinoJson/version.hpp @@ -4,8 +4,8 @@ #pragma once -#define ARDUINOJSON_VERSION "7.0.2" +#define ARDUINOJSON_VERSION "7.0.3" #define ARDUINOJSON_VERSION_MAJOR 7 #define ARDUINOJSON_VERSION_MINOR 0 -#define ARDUINOJSON_VERSION_REVISION 2 -#define ARDUINOJSON_VERSION_MACRO V702 +#define ARDUINOJSON_VERSION_REVISION 3 +#define ARDUINOJSON_VERSION_MACRO V703 diff --git a/lib/ArduinoJson/src/CMakeLists.txt b/lib/ArduinoJson/src/CMakeLists.txt deleted file mode 100644 index cc782e702..000000000 --- a/lib/ArduinoJson/src/CMakeLists.txt +++ /dev/null @@ -1,91 +0,0 @@ -# ArduinoJson - https://arduinojson.org -# Copyright © 2014-2024, Benoit BLANCHON -# MIT License - -# I have no idea what this is about, I simply followed the instructions from: -# https://dominikberner.ch/cmake-interface-lib/ - -add_library(ArduinoJson INTERFACE) - -include(GNUInstallDirs) - -# Adding the install interface generator expression makes sure that the include -# files are installed to the proper location (provided by GNUInstallDirs) -target_include_directories(ArduinoJson - INTERFACE - $ - $ -) - -target_compile_definitions(ArduinoJson - INTERFACE - ARDUINOJSON_DEBUG=$ -) - -# locations are provided by GNUInstallDirs -install( - TARGETS - ArduinoJson - EXPORT - ArduinoJson_Targets - ARCHIVE DESTINATION - ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION - ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION - ${CMAKE_INSTALL_BINDIR} -) - -include(CMakePackageConfigHelpers) - -if(${CMAKE_VERSION} VERSION_GREATER "3.14.0") - set(ARCH_INDEPENDENT "ARCH_INDEPENDENT") -endif() - -write_basic_package_version_file( - "${PROJECT_BINARY_DIR}/ArduinoJsonConfigVersion.cmake" - VERSION - ${PROJECT_VERSION} - COMPATIBILITY - SameMajorVersion - ${ARCH_INDEPENDENT} -) - -configure_package_config_file( - "${PROJECT_SOURCE_DIR}/extras/ArduinoJsonConfig.cmake.in" - "${PROJECT_BINARY_DIR}/ArduinoJsonConfig.cmake" - INSTALL_DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake -) - -install( - EXPORT - ArduinoJson_Targets - FILE - ArduinoJsonTargets.cmake - DESTINATION - ${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake -) - -install( - FILES - "${PROJECT_BINARY_DIR}/ArduinoJsonConfig.cmake" - "${PROJECT_BINARY_DIR}/ArduinoJsonConfigVersion.cmake" - DESTINATION - "${CMAKE_INSTALL_DATAROOTDIR}/ArduinoJson/cmake" -) - -install( - FILES - ArduinoJson.h - ArduinoJson.hpp - DESTINATION - include -) - -install( - DIRECTORY - "${CMAKE_CURRENT_SOURCE_DIR}/ArduinoJson" - DESTINATION - include -)