mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 00:32:37 +01:00 
			
		
		
		
	Add namespace StringStoragePolicy
				
					
				
			This commit is contained in:
		| @@ -209,8 +209,8 @@ class MemoryPool { | ||||
| }; | ||||
|  | ||||
| template <typename TAdaptedString, typename TCallback> | ||||
| 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 <typename TAdaptedString, typename TCallback> | ||||
| 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 <typename TAdaptedString, typename TCallback> | ||||
| 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 <typename TAdaptedString, typename TCallback> | ||||
|   | ||||
| @@ -61,8 +61,8 @@ class FlashString { | ||||
|     ::memcpy_P(p, s._str, n); | ||||
|   } | ||||
|  | ||||
|   CopyStringStoragePolicy storagePolicy() { | ||||
|     return CopyStringStoragePolicy(); | ||||
|   StringStoragePolicy::Copy storagePolicy() { | ||||
|     return StringStoragePolicy::Copy(); | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
| @@ -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: | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user