mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Rename ArrayIterator to JsonArrayIterator
				
					
				
			This commit is contained in:
		
							
								
								
									
										117
									
								
								src/ArduinoJson/Array/JsonArrayIterator.hpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										117
									
								
								src/ArduinoJson/Array/JsonArrayIterator.hpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,117 @@ | ||||
| // ArduinoJson - https://arduinojson.org | ||||
| // Copyright © 2014-2022, Benoit BLANCHON | ||||
| // MIT License | ||||
|  | ||||
| #pragma once | ||||
|  | ||||
| #include <ArduinoJson/Variant/SlotFunctions.hpp> | ||||
| #include <ArduinoJson/Variant/VariantRef.hpp> | ||||
|  | ||||
| namespace ARDUINOJSON_NAMESPACE { | ||||
|  | ||||
| class VariantPtr { | ||||
|  public: | ||||
|   VariantPtr(MemoryPool* pool, VariantData* data) : _variant(pool, data) {} | ||||
|  | ||||
|   VariantRef* operator->() { | ||||
|     return &_variant; | ||||
|   } | ||||
|  | ||||
|   VariantRef& operator*() { | ||||
|     return _variant; | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   VariantRef _variant; | ||||
| }; | ||||
|  | ||||
| class JsonArrayIterator { | ||||
|   friend class JsonArray; | ||||
|  | ||||
|  public: | ||||
|   JsonArrayIterator() : _slot(0) {} | ||||
|   explicit JsonArrayIterator(MemoryPool* pool, VariantSlot* slot) | ||||
|       : _pool(pool), _slot(slot) {} | ||||
|  | ||||
|   VariantRef operator*() const { | ||||
|     return VariantRef(_pool, _slot->data()); | ||||
|   } | ||||
|   VariantPtr operator->() { | ||||
|     return VariantPtr(_pool, _slot->data()); | ||||
|   } | ||||
|  | ||||
|   bool operator==(const JsonArrayIterator& other) const { | ||||
|     return _slot == other._slot; | ||||
|   } | ||||
|  | ||||
|   bool operator!=(const JsonArrayIterator& other) const { | ||||
|     return _slot != other._slot; | ||||
|   } | ||||
|  | ||||
|   JsonArrayIterator& operator++() { | ||||
|     _slot = _slot->next(); | ||||
|     return *this; | ||||
|   } | ||||
|  | ||||
|   JsonArrayIterator& operator+=(size_t distance) { | ||||
|     _slot = _slot->next(distance); | ||||
|     return *this; | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   MemoryPool* _pool; | ||||
|   VariantSlot* _slot; | ||||
| }; | ||||
|  | ||||
| class VariantConstPtr { | ||||
|  public: | ||||
|   VariantConstPtr(const VariantData* data) : _variant(data) {} | ||||
|  | ||||
|   VariantConstRef* operator->() { | ||||
|     return &_variant; | ||||
|   } | ||||
|  | ||||
|   VariantConstRef& operator*() { | ||||
|     return _variant; | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   VariantConstRef _variant; | ||||
| }; | ||||
|  | ||||
| class JsonArrayConstIterator { | ||||
|   friend class JsonArray; | ||||
|  | ||||
|  public: | ||||
|   JsonArrayConstIterator() : _slot(0) {} | ||||
|   explicit JsonArrayConstIterator(const VariantSlot* slot) : _slot(slot) {} | ||||
|  | ||||
|   VariantConstRef operator*() const { | ||||
|     return VariantConstRef(_slot->data()); | ||||
|   } | ||||
|   VariantConstPtr operator->() { | ||||
|     return VariantConstPtr(_slot->data()); | ||||
|   } | ||||
|  | ||||
|   bool operator==(const JsonArrayConstIterator& other) const { | ||||
|     return _slot == other._slot; | ||||
|   } | ||||
|  | ||||
|   bool operator!=(const JsonArrayConstIterator& other) const { | ||||
|     return _slot != other._slot; | ||||
|   } | ||||
|  | ||||
|   JsonArrayConstIterator& operator++() { | ||||
|     _slot = _slot->next(); | ||||
|     return *this; | ||||
|   } | ||||
|  | ||||
|   JsonArrayConstIterator& operator+=(size_t distance) { | ||||
|     _slot = _slot->next(distance); | ||||
|     return *this; | ||||
|   } | ||||
|  | ||||
|  private: | ||||
|   const VariantSlot* _slot; | ||||
| }; | ||||
| }  // namespace ARDUINOJSON_NAMESPACE | ||||
		Reference in New Issue
	
	Block a user