From 8ac4346fd5893406badc0dbabf33ea24c66e5686 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Wed, 5 Nov 2014 09:27:03 +0100 Subject: [PATCH] Replaced JsonObjectIterator and JsonObjectConstIterator by a template --- include/ArduinoJson/JsonObject.hpp | 9 +++-- .../ArduinoJson/JsonObjectConstIterator.hpp | 37 ------------------- include/ArduinoJson/JsonObjectIterator.hpp | 36 ------------------ 3 files changed, 5 insertions(+), 77 deletions(-) delete mode 100644 include/ArduinoJson/JsonObjectConstIterator.hpp delete mode 100644 include/ArduinoJson/JsonObjectIterator.hpp diff --git a/include/ArduinoJson/JsonObject.hpp b/include/ArduinoJson/JsonObject.hpp index f13d5a15..851a97f8 100644 --- a/include/ArduinoJson/JsonObject.hpp +++ b/include/ArduinoJson/JsonObject.hpp @@ -6,10 +6,10 @@ #pragma once +#include "Internals/JsonIterator.hpp" +#include "Internals/JsonObjectNode.hpp" #include "Internals/JsonPrintable.hpp" #include "Internals/ReferenceType.hpp" -#include "JsonObjectConstIterator.hpp" -#include "JsonObjectIterator.hpp" #define JSON_OBJECT_SIZE(NUMBER_OF_ELEMENTS) \ (sizeof(JsonObject) + \ @@ -27,8 +27,9 @@ class JsonObject : public Internals::JsonPrintable, public: typedef const char *key_type; typedef JsonPair value_type; - typedef JsonObjectIterator iterator; - typedef JsonObjectConstIterator const_iterator; + typedef Internals::JsonIterator iterator; + typedef Internals::JsonIterator + const_iterator; bool success() const { return _buffer != NULL; } int size() const; diff --git a/include/ArduinoJson/JsonObjectConstIterator.hpp b/include/ArduinoJson/JsonObjectConstIterator.hpp deleted file mode 100644 index a41208e2..00000000 --- a/include/ArduinoJson/JsonObjectConstIterator.hpp +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright Benoit Blanchon 2014 -// MIT License -// -// Arduino JSON library -// https://github.com/bblanchon/ArduinoJson - -#pragma once - -#include "Internals/JsonObjectNode.hpp" - -namespace ArduinoJson { - -class JsonObjectConstIterator { - public: - explicit JsonObjectConstIterator(Internals::JsonObjectNode *node) - : _node(node) {} - - const JsonPair &operator*() { return _node->content; } - const JsonPair *operator->() { return &_node->content; } - - bool operator==(const JsonObjectConstIterator &other) const { - return _node == other._node; - } - - bool operator!=(const JsonObjectConstIterator &other) const { - return _node != other._node; - } - - JsonObjectConstIterator &operator++() { - if (_node) _node = _node->next; - return *this; - } - - private: - Internals::JsonObjectNode *_node; -}; -} diff --git a/include/ArduinoJson/JsonObjectIterator.hpp b/include/ArduinoJson/JsonObjectIterator.hpp deleted file mode 100644 index 94576627..00000000 --- a/include/ArduinoJson/JsonObjectIterator.hpp +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright Benoit Blanchon 2014 -// MIT License -// -// Arduino JSON library -// https://github.com/bblanchon/ArduinoJson - -#pragma once - -#include "Internals/JsonObjectNode.hpp" - -namespace ArduinoJson { - -class JsonObjectIterator { - public: - explicit JsonObjectIterator(Internals::JsonObjectNode *node) : _node(node) {} - - JsonPair &operator*() { return _node->content; } - JsonPair *operator->() { return &_node->content; } - - bool operator==(const JsonObjectIterator &other) const { - return _node == other._node; - } - - bool operator!=(const JsonObjectIterator &other) const { - return _node != other._node; - } - - JsonObjectIterator &operator++() { - if (_node) _node = _node->next; - return *this; - } - - private: - Internals::JsonObjectNode *_node; -}; -}