mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Add namespace StringStoragePolicy
				
					
				
			This commit is contained in:
		| @@ -209,8 +209,8 @@ class MemoryPool { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| template <typename TAdaptedString, typename TCallback> | template <typename TAdaptedString, typename TCallback> | ||||||
| bool storeString(MemoryPool* pool, TAdaptedString str, CopyStringStoragePolicy, | bool storeString(MemoryPool* pool, TAdaptedString str, | ||||||
|                  TCallback callback) { |                  StringStoragePolicy::Copy, TCallback callback) { | ||||||
|   const char* copy = pool->saveString(str); |   const char* copy = pool->saveString(str); | ||||||
|   String storedString(copy, str.size(), String::Copied); |   String storedString(copy, str.size(), String::Copied); | ||||||
|   callback(storedString); |   callback(storedString); | ||||||
| @@ -218,7 +218,7 @@ bool storeString(MemoryPool* pool, TAdaptedString str, CopyStringStoragePolicy, | |||||||
| } | } | ||||||
|  |  | ||||||
| template <typename TAdaptedString, typename TCallback> | template <typename TAdaptedString, typename TCallback> | ||||||
| bool storeString(MemoryPool*, TAdaptedString str, LinkStringStoragePolicy, | bool storeString(MemoryPool*, TAdaptedString str, StringStoragePolicy::Link, | ||||||
|                  TCallback callback) { |                  TCallback callback) { | ||||||
|   String storedString(str.data(), str.size(), String::Linked); |   String storedString(str.data(), str.size(), String::Linked); | ||||||
|   callback(storedString); |   callback(storedString); | ||||||
| @@ -227,11 +227,11 @@ bool storeString(MemoryPool*, TAdaptedString str, LinkStringStoragePolicy, | |||||||
|  |  | ||||||
| template <typename TAdaptedString, typename TCallback> | template <typename TAdaptedString, typename TCallback> | ||||||
| bool storeString(MemoryPool* pool, TAdaptedString str, | bool storeString(MemoryPool* pool, TAdaptedString str, | ||||||
|                  LinkOrCopyStringStoragePolicy policy, TCallback callback) { |                  StringStoragePolicy::LinkOrCopy policy, TCallback callback) { | ||||||
|   if (policy.link) |   if (policy.link) | ||||||
|     return storeString(pool, str, LinkStringStoragePolicy(), callback); |     return storeString(pool, str, StringStoragePolicy::Link(), callback); | ||||||
|   else |   else | ||||||
|     return storeString(pool, str, CopyStringStoragePolicy(), callback); |     return storeString(pool, str, StringStoragePolicy::Copy(), callback); | ||||||
| } | } | ||||||
|  |  | ||||||
| template <typename TAdaptedString, typename TCallback> | template <typename TAdaptedString, typename TCallback> | ||||||
|   | |||||||
| @@ -61,8 +61,8 @@ class FlashString { | |||||||
|     ::memcpy_P(p, s._str, n); |     ::memcpy_P(p, s._str, n); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   CopyStringStoragePolicy storagePolicy() { |   StringStoragePolicy::Copy storagePolicy() { | ||||||
|     return CopyStringStoragePolicy(); |     return StringStoragePolicy::Copy(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   | |||||||
| @@ -15,8 +15,9 @@ class JsonStringAdapter : public SizedRamString { | |||||||
|   JsonStringAdapter(const String& s) |   JsonStringAdapter(const String& s) | ||||||
|       : SizedRamString(s.c_str(), s.size()), _linked(s.isLinked()) {} |       : SizedRamString(s.c_str(), s.size()), _linked(s.isLinked()) {} | ||||||
|  |  | ||||||
|   LinkOrCopyStringStoragePolicy storagePolicy() { |   StringStoragePolicy::LinkOrCopy storagePolicy() { | ||||||
|     return LinkOrCopyStringStoragePolicy(_linked); |     StringStoragePolicy::LinkOrCopy policy = {_linked}; | ||||||
|  |     return policy; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   | |||||||
| @@ -49,8 +49,8 @@ class ZeroTerminatedRamString { | |||||||
|     return stringCompare(a, b) == 0; |     return stringCompare(a, b) == 0; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   CopyStringStoragePolicy storagePolicy() { |   StringStoragePolicy::Copy storagePolicy() { | ||||||
|     return CopyStringStoragePolicy(); |     return StringStoragePolicy::Copy(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
| @@ -82,8 +82,8 @@ class StaticStringAdapter : public ZeroTerminatedRamString { | |||||||
|  public: |  public: | ||||||
|   StaticStringAdapter(const char* str) : ZeroTerminatedRamString(str) {} |   StaticStringAdapter(const char* str) : ZeroTerminatedRamString(str) {} | ||||||
|  |  | ||||||
|   LinkStringStoragePolicy storagePolicy() { |   StringStoragePolicy::Link storagePolicy() { | ||||||
|     return LinkStringStoragePolicy(); |     return StringStoragePolicy::Link(); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -115,8 +115,8 @@ class SizedRamString { | |||||||
|     return _str; |     return _str; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   CopyStringStoragePolicy storagePolicy() { |   StringStoragePolicy::Copy storagePolicy() { | ||||||
|     return CopyStringStoragePolicy(); |     return StringStoragePolicy::Copy(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  protected: |  protected: | ||||||
|   | |||||||
| @@ -6,14 +6,13 @@ | |||||||
|  |  | ||||||
| namespace ARDUINOJSON_NAMESPACE { | namespace ARDUINOJSON_NAMESPACE { | ||||||
|  |  | ||||||
| struct LinkStringStoragePolicy {}; | namespace StringStoragePolicy { | ||||||
|  |  | ||||||
| struct CopyStringStoragePolicy {}; |  | ||||||
|  |  | ||||||
| struct LinkOrCopyStringStoragePolicy { |  | ||||||
|   LinkOrCopyStringStoragePolicy(bool l) : link(l) {} |  | ||||||
|  |  | ||||||
|  | struct Link {}; | ||||||
|  | struct Copy {}; | ||||||
|  | struct LinkOrCopy { | ||||||
|   bool link; |   bool link; | ||||||
| }; | }; | ||||||
|  | }  // namespace StringStoragePolicy | ||||||
|  |  | ||||||
| }  // namespace ARDUINOJSON_NAMESPACE | }  // namespace ARDUINOJSON_NAMESPACE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user