Improved JsonObjectIterator

This commit is contained in:
Benoit Blanchon
2014-10-23 18:56:04 +02:00
parent d83f1a6319
commit 888fdc1d54
2 changed files with 62 additions and 61 deletions

View File

@ -4,44 +4,45 @@
namespace ArduinoJson
{
class JsonObject;
class JsonObject;
class JsonObjectIterator
{
friend class JsonObject;
class JsonObjectIterator
{
friend class JsonObject;
public:
explicit JsonObjectIterator(Internals::JsonNode* node)
: _objectKeyValue(node)
{
}
public:
explicit JsonObjectIterator(Internals::JsonNode* node)
: _objectKeyValue(node)
{
}
void operator++()
{
++_objectKeyValue;
}
JsonObjectIterator& operator++()
{
_objectKeyValue = JsonObjectKeyValue(_objectKeyValue.next());
return *this;
}
JsonObjectKeyValue operator*() const
{
return _objectKeyValue;
}
JsonObjectKeyValue operator*() const
{
return _objectKeyValue;
}
JsonObjectKeyValue* operator->()
{
return &_objectKeyValue;
}
{
return &_objectKeyValue;
}
bool operator==(const JsonObjectIterator& other) const
{
return _objectKeyValue == other._objectKeyValue;
}
bool operator==(const JsonObjectIterator& other) const
{
return _objectKeyValue == other._objectKeyValue;
}
bool operator!=(const JsonObjectIterator& other) const
{
return _objectKeyValue != other._objectKeyValue;
}
bool operator!=(const JsonObjectIterator& other) const
{
return _objectKeyValue != other._objectKeyValue;
}
private:
JsonObjectKeyValue _objectKeyValue;
};
private:
JsonObjectKeyValue _objectKeyValue;
};
}

View File

@ -4,40 +4,40 @@
namespace ArduinoJson
{
class JsonObjectKeyValue
{
public:
explicit JsonObjectKeyValue(Internals::JsonNode* node)
: _node(node)
{
}
class JsonObjectKeyValue
{
public:
explicit JsonObjectKeyValue(Internals::JsonNode* node)
: _node(node)
{
}
const char* key() const
{
return _node->getAsObjectKey();
}
const char* key() const
{
return _node->getAsObjectKey();
}
JsonValue value()
{
return JsonValue(_node->getAsObjectValue());
}
JsonValue value()
{
return JsonValue(_node->getAsObjectValue());
}
void operator++()
{
_node = _node->next;
}
bool operator==(const JsonObjectKeyValue& other) const
{
return _node == other._node;
}
bool operator==(const JsonObjectKeyValue& other) const
{
return _node == other._node;
}
bool operator!=(const JsonObjectKeyValue& other) const
{
return _node != other._node;
}
bool operator!=(const JsonObjectKeyValue& other) const
{
return _node != other._node;
}
Internals::JsonNode* next()
{
return _node->next;
}
private:
Internals::JsonNode* _node;
};
private:
Internals::JsonNode* _node;
};
}