diff --git a/extras/tests/Deprecated/CMakeLists.txt b/extras/tests/Deprecated/CMakeLists.txt index 89a696a2..dd7a7b84 100644 --- a/extras/tests/Deprecated/CMakeLists.txt +++ b/extras/tests/Deprecated/CMakeLists.txt @@ -17,6 +17,7 @@ endif() add_executable(DeprecatedTests BasicJsonDocument.cpp DynamicJsonDocument.cpp + memoryUsage.cpp StaticJsonDocument.cpp ) diff --git a/extras/tests/Deprecated/memoryUsage.cpp b/extras/tests/Deprecated/memoryUsage.cpp new file mode 100644 index 00000000..309aab25 --- /dev/null +++ b/extras/tests/Deprecated/memoryUsage.cpp @@ -0,0 +1,51 @@ +// ArduinoJson - https://arduinojson.org +// Copyright © 2014-2023, Benoit BLANCHON +// MIT License + +#include +#include + +TEST_CASE("JsonArray::memoryUsage()") { + JsonArray array; + REQUIRE(array.memoryUsage() == 0); +} + +TEST_CASE("JsonArrayConst::memoryUsage()") { + JsonArrayConst array; + REQUIRE(array.memoryUsage() == 0); +} + +TEST_CASE("JsonDocument::memoryUsage()") { + JsonDocument doc; + REQUIRE(doc.memoryUsage() == 0); +} + +TEST_CASE("JsonObject::memoryUsage()") { + JsonObject array; + REQUIRE(array.memoryUsage() == 0); +} + +TEST_CASE("JsonObjectConst::memoryUsage()") { + JsonObjectConst array; + REQUIRE(array.memoryUsage() == 0); +} + +TEST_CASE("JsonVariant::memoryUsage()") { + JsonVariant doc; + REQUIRE(doc.memoryUsage() == 0); +} + +TEST_CASE("JsonVariantConst::memoryUsage()") { + JsonVariantConst doc; + REQUIRE(doc.memoryUsage() == 0); +} + +TEST_CASE("ElementProxy::memoryUsage()") { + JsonDocument doc; + REQUIRE(doc[0].memoryUsage() == 0); +} + +TEST_CASE("MemberProxy::memoryUsage()") { + JsonDocument doc; + REQUIRE(doc["hello"].memoryUsage() == 0); +} diff --git a/src/ArduinoJson/Array/JsonArray.hpp b/src/ArduinoJson/Array/JsonArray.hpp index 09e45093..00540039 100644 --- a/src/ArduinoJson/Array/JsonArray.hpp +++ b/src/ArduinoJson/Array/JsonArray.hpp @@ -158,6 +158,12 @@ class JsonArray : public detail::VariantOperators { return data_ ? data_->size(resources_) : 0; } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: detail::ResourceManager* getResourceManager() const { return resources_; diff --git a/src/ArduinoJson/Array/JsonArrayConst.hpp b/src/ArduinoJson/Array/JsonArrayConst.hpp index 371fe21b..fcd247a4 100644 --- a/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -78,6 +78,12 @@ class JsonArrayConst : public detail::VariantOperators { return data_ ? data_->size(resources_) : 0; } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: const detail::VariantData* getData() const { return collectionToVariant(data_); diff --git a/src/ArduinoJson/Document/JsonDocument.hpp b/src/ArduinoJson/Document/JsonDocument.hpp index dc182e14..93c54e28 100644 --- a/src/ArduinoJson/Document/JsonDocument.hpp +++ b/src/ArduinoJson/Document/JsonDocument.hpp @@ -291,6 +291,12 @@ class JsonDocument : public detail::VariantOperators { swap_(a.data_, b.data_); } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: JsonVariant getVariant() { return JsonVariant(&data_, &resources_); diff --git a/src/ArduinoJson/Object/JsonObject.hpp b/src/ArduinoJson/Object/JsonObject.hpp index 9f961184..a9a75793 100644 --- a/src/ArduinoJson/Object/JsonObject.hpp +++ b/src/ArduinoJson/Object/JsonObject.hpp @@ -166,6 +166,12 @@ class JsonObject : public detail::VariantOperators { resources_) != 0; } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: detail::ResourceManager* getResourceManager() const { return resources_; diff --git a/src/ArduinoJson/Object/JsonObjectConst.hpp b/src/ArduinoJson/Object/JsonObjectConst.hpp index 0536bb1c..8ce4dc77 100644 --- a/src/ArduinoJson/Object/JsonObjectConst.hpp +++ b/src/ArduinoJson/Object/JsonObjectConst.hpp @@ -105,6 +105,12 @@ class JsonObjectConst : public detail::VariantOperators { detail::ObjectData::getMember(data_, detail::adaptString(key))); } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: const detail::VariantData* getData() const { return collectionToVariant(data_); diff --git a/src/ArduinoJson/Variant/JsonVariantConst.hpp b/src/ArduinoJson/Variant/JsonVariantConst.hpp index 069ae914..41e8fbb7 100644 --- a/src/ArduinoJson/Variant/JsonVariantConst.hpp +++ b/src/ArduinoJson/Variant/JsonVariantConst.hpp @@ -133,6 +133,12 @@ class JsonVariantConst : public detail::VariantTag, resources_) != 0; } + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + protected: const detail::VariantData* getData() const { return data_; diff --git a/src/ArduinoJson/Variant/VariantRefBase.hpp b/src/ArduinoJson/Variant/VariantRefBase.hpp index 0138e403..588b628f 100644 --- a/src/ArduinoJson/Variant/VariantRefBase.hpp +++ b/src/ArduinoJson/Variant/VariantRefBase.hpp @@ -221,6 +221,12 @@ class VariantRefBase : public VariantTag { MemberProxy>::type operator[](TChar* key) const; + // DEPRECATED: always returns zero + ARDUINOJSON_DEPRECATED("always returns zero") + size_t memoryUsage() const { + return 0; + } + private: TDerived& derived() { return static_cast(*this);