Replace VariantPtr, VariantConstPtr, JsonPairPtr, and JsonPairConstPtr with Ptr<T>

This commit is contained in:
Benoit Blanchon
2023-06-20 17:52:14 +02:00
parent 18ae8ab7b9
commit db2fb01795
2 changed files with 16 additions and 65 deletions

View File

@ -9,21 +9,21 @@
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
class VariantPtr {
template <typename T>
class Ptr {
public:
VariantPtr(detail::ResourceManager* resources, detail::VariantData* data)
: variant_(resources, data) {}
Ptr(T value) : value_(value) {}
JsonVariant* operator->() {
return &variant_;
T* operator->() {
return &value_;
}
JsonVariant& operator*() {
return variant_;
T& operator*() {
return value_;
}
private:
JsonVariant variant_;
T value_;
};
class JsonArrayIterator {
@ -38,8 +38,8 @@ class JsonArrayIterator {
JsonVariant operator*() const {
return JsonVariant(resources_, slot_->data());
}
VariantPtr operator->() {
return VariantPtr(resources_, slot_->data());
Ptr<JsonVariant> operator->() {
return operator*();
}
bool operator==(const JsonArrayIterator& other) const {
@ -65,22 +65,6 @@ class JsonArrayIterator {
detail::VariantSlot* slot_;
};
class VariantConstPtr {
public:
VariantConstPtr(const detail::VariantData* data) : variant_(data) {}
JsonVariantConst* operator->() {
return &variant_;
}
JsonVariantConst& operator*() {
return variant_;
}
private:
JsonVariantConst variant_;
};
class JsonArrayConstIterator {
friend class JsonArray;
@ -92,8 +76,8 @@ class JsonArrayConstIterator {
JsonVariantConst operator*() const {
return JsonVariantConst(slot_->data());
}
VariantConstPtr operator->() {
return VariantConstPtr(slot_->data());
Ptr<JsonVariantConst> operator->() {
return operator*();
}
bool operator==(const JsonArrayConstIterator& other) const {

View File

@ -9,23 +9,6 @@
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
class JsonPairPtr {
public:
JsonPairPtr(detail::ResourceManager* resources, detail::VariantSlot* slot)
: pair_(resources, slot) {}
const JsonPair* operator->() const {
return &pair_;
}
const JsonPair& operator*() const {
return pair_;
}
private:
JsonPair pair_;
};
class JsonObjectIterator {
friend class JsonObject;
@ -39,8 +22,8 @@ class JsonObjectIterator {
JsonPair operator*() const {
return JsonPair(resources_, slot_);
}
JsonPairPtr operator->() {
return JsonPairPtr(resources_, slot_);
Ptr<JsonPair> operator->() {
return operator*();
}
bool operator==(const JsonObjectIterator& other) const {
@ -66,22 +49,6 @@ class JsonObjectIterator {
detail::VariantSlot* slot_;
};
class JsonPairConstPtr {
public:
JsonPairConstPtr(const detail::VariantSlot* slot) : pair_(slot) {}
const JsonPairConst* operator->() const {
return &pair_;
}
const JsonPairConst& operator*() const {
return pair_;
}
private:
JsonPairConst pair_;
};
class JsonObjectConstIterator {
friend class JsonObject;
@ -94,8 +61,8 @@ class JsonObjectConstIterator {
JsonPairConst operator*() const {
return JsonPairConst(slot_);
}
JsonPairConstPtr operator->() {
return JsonPairConstPtr(slot_);
Ptr<JsonPairConst> operator->() {
return operator*();
}
bool operator==(const JsonObjectConstIterator& other) const {