From 057956225c846a313d4152d2c2aa895576c7cb9b Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 26 Oct 2022 10:41:42 +0200 Subject: [PATCH] Add namespace `StringStoragePolicy` --- src/ArduinoJson/Memory/MemoryPool.hpp | 12 ++++++------ src/ArduinoJson/Strings/Adapters/FlashString.hpp | 4 ++-- src/ArduinoJson/Strings/Adapters/JsonString.hpp | 5 +++-- src/ArduinoJson/Strings/Adapters/RamString.hpp | 12 ++++++------ src/ArduinoJson/Strings/StoragePolicy.hpp | 11 +++++------ 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/ArduinoJson/Memory/MemoryPool.hpp b/src/ArduinoJson/Memory/MemoryPool.hpp index a4b2035a..e150d01c 100644 --- a/src/ArduinoJson/Memory/MemoryPool.hpp +++ b/src/ArduinoJson/Memory/MemoryPool.hpp @@ -209,8 +209,8 @@ class MemoryPool { }; template -bool storeString(MemoryPool* pool, TAdaptedString str, CopyStringStoragePolicy, - TCallback callback) { +bool storeString(MemoryPool* pool, TAdaptedString str, + StringStoragePolicy::Copy, TCallback callback) { const char* copy = pool->saveString(str); String storedString(copy, str.size(), String::Copied); callback(storedString); @@ -218,7 +218,7 @@ bool storeString(MemoryPool* pool, TAdaptedString str, CopyStringStoragePolicy, } template -bool storeString(MemoryPool*, TAdaptedString str, LinkStringStoragePolicy, +bool storeString(MemoryPool*, TAdaptedString str, StringStoragePolicy::Link, TCallback callback) { String storedString(str.data(), str.size(), String::Linked); callback(storedString); @@ -227,11 +227,11 @@ bool storeString(MemoryPool*, TAdaptedString str, LinkStringStoragePolicy, template bool storeString(MemoryPool* pool, TAdaptedString str, - LinkOrCopyStringStoragePolicy policy, TCallback callback) { + StringStoragePolicy::LinkOrCopy policy, TCallback callback) { if (policy.link) - return storeString(pool, str, LinkStringStoragePolicy(), callback); + return storeString(pool, str, StringStoragePolicy::Link(), callback); else - return storeString(pool, str, CopyStringStoragePolicy(), callback); + return storeString(pool, str, StringStoragePolicy::Copy(), callback); } template diff --git a/src/ArduinoJson/Strings/Adapters/FlashString.hpp b/src/ArduinoJson/Strings/Adapters/FlashString.hpp index 36ac6327..b728f502 100644 --- a/src/ArduinoJson/Strings/Adapters/FlashString.hpp +++ b/src/ArduinoJson/Strings/Adapters/FlashString.hpp @@ -61,8 +61,8 @@ class FlashString { ::memcpy_P(p, s._str, n); } - CopyStringStoragePolicy storagePolicy() { - return CopyStringStoragePolicy(); + StringStoragePolicy::Copy storagePolicy() { + return StringStoragePolicy::Copy(); } private: diff --git a/src/ArduinoJson/Strings/Adapters/JsonString.hpp b/src/ArduinoJson/Strings/Adapters/JsonString.hpp index f7e52c24..5bf4c6fc 100644 --- a/src/ArduinoJson/Strings/Adapters/JsonString.hpp +++ b/src/ArduinoJson/Strings/Adapters/JsonString.hpp @@ -15,8 +15,9 @@ class JsonStringAdapter : public SizedRamString { JsonStringAdapter(const String& s) : SizedRamString(s.c_str(), s.size()), _linked(s.isLinked()) {} - LinkOrCopyStringStoragePolicy storagePolicy() { - return LinkOrCopyStringStoragePolicy(_linked); + StringStoragePolicy::LinkOrCopy storagePolicy() { + StringStoragePolicy::LinkOrCopy policy = {_linked}; + return policy; } private: diff --git a/src/ArduinoJson/Strings/Adapters/RamString.hpp b/src/ArduinoJson/Strings/Adapters/RamString.hpp index 50493d54..dfa4c0cb 100644 --- a/src/ArduinoJson/Strings/Adapters/RamString.hpp +++ b/src/ArduinoJson/Strings/Adapters/RamString.hpp @@ -49,8 +49,8 @@ class ZeroTerminatedRamString { return stringCompare(a, b) == 0; } - CopyStringStoragePolicy storagePolicy() { - return CopyStringStoragePolicy(); + StringStoragePolicy::Copy storagePolicy() { + return StringStoragePolicy::Copy(); } protected: @@ -82,8 +82,8 @@ class StaticStringAdapter : public ZeroTerminatedRamString { public: StaticStringAdapter(const char* str) : ZeroTerminatedRamString(str) {} - LinkStringStoragePolicy storagePolicy() { - return LinkStringStoragePolicy(); + StringStoragePolicy::Link storagePolicy() { + return StringStoragePolicy::Link(); } }; @@ -115,8 +115,8 @@ class SizedRamString { return _str; } - CopyStringStoragePolicy storagePolicy() { - return CopyStringStoragePolicy(); + StringStoragePolicy::Copy storagePolicy() { + return StringStoragePolicy::Copy(); } protected: diff --git a/src/ArduinoJson/Strings/StoragePolicy.hpp b/src/ArduinoJson/Strings/StoragePolicy.hpp index d2fd9c37..8f3d2730 100644 --- a/src/ArduinoJson/Strings/StoragePolicy.hpp +++ b/src/ArduinoJson/Strings/StoragePolicy.hpp @@ -6,14 +6,13 @@ namespace ARDUINOJSON_NAMESPACE { -struct LinkStringStoragePolicy {}; - -struct CopyStringStoragePolicy {}; - -struct LinkOrCopyStringStoragePolicy { - LinkOrCopyStringStoragePolicy(bool l) : link(l) {} +namespace StringStoragePolicy { +struct Link {}; +struct Copy {}; +struct LinkOrCopy { bool link; }; +} // namespace StringStoragePolicy } // namespace ARDUINOJSON_NAMESPACE