Remove ArrayFunctions.hpp and ObjectFunctions.hpp

This commit is contained in:
Benoit Blanchon
2022-11-28 12:25:20 +01:00
parent ac14f29e6c
commit 5d2a440c69
4 changed files with 25 additions and 51 deletions

View File

@ -1,15 +0,0 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// MIT License
#pragma once
#include <ArduinoJson/Collection/CollectionData.hpp>
namespace ARDUINOJSON_NAMESPACE {
inline VariantData* arrayAdd(CollectionData* arr, MemoryPool* pool) {
return arr ? arr->addElement(pool) : 0;
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@ -4,7 +4,6 @@
#pragma once
#include <ArduinoJson/Array/ArrayFunctions.hpp>
#include <ArduinoJson/Array/ArrayIterator.hpp>
#include <ArduinoJson/Array/ElementProxy.hpp>
#include <ArduinoJson/Variant/VariantAttorney.hpp>
@ -124,7 +123,9 @@ class ArrayRef : public ArrayRefBase<CollectionData>,
}
VariantRef add() const {
return VariantRef(_pool, arrayAdd(_data, _pool));
if (!_data)
return VariantRef();
return VariantRef(_pool, _data->addElement(_pool));
}
template <typename T>

View File

@ -1,25 +0,0 @@
// ArduinoJson - https://arduinojson.org
// Copyright © 2014-2022, Benoit BLANCHON
// MIT License
#pragma once
#include <ArduinoJson/Collection/CollectionData.hpp>
namespace ARDUINOJSON_NAMESPACE {
template <typename TAdaptedString>
inline VariantData* objectGetMember(const CollectionData* obj,
TAdaptedString key) {
if (!obj)
return 0;
return obj->getMember(key);
}
template <typename TAdaptedString>
void objectRemove(CollectionData* obj, TAdaptedString key) {
if (!obj)
return;
obj->removeMember(key);
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@ -5,7 +5,6 @@
#pragma once
#include <ArduinoJson/Object/MemberProxy.hpp>
#include <ArduinoJson/Object/ObjectFunctions.hpp>
#include <ArduinoJson/Object/ObjectIterator.hpp>
namespace ARDUINOJSON_NAMESPACE {
@ -46,6 +45,13 @@ class ObjectRefBase {
return collectionToVariant(_data);
}
template <typename TAdaptedString>
inline VariantData* getMember(TAdaptedString key) const {
if (!_data)
return 0;
return _data->getMember(key);
}
ObjectRefBase(TData* data) : _data(data) {}
TData* _data;
};
@ -75,7 +81,7 @@ class ObjectConstRef : public ObjectRefBase<const CollectionData>,
// containsKey(const String&) const
template <typename TString>
FORCE_INLINE bool containsKey(const TString& key) const {
return objectGetMember(_data, adaptString(key)) != 0;
return getMember(adaptString(key)) != 0;
}
// containsKey(char*) const
@ -83,7 +89,7 @@ class ObjectConstRef : public ObjectRefBase<const CollectionData>,
// containsKey(const __FlashStringHelper*) const
template <typename TChar>
FORCE_INLINE bool containsKey(TChar* key) const {
return objectGetMember(_data, adaptString(key)) != 0;
return getMember(adaptString(key)) != 0;
}
// operator[](const std::string&) const
@ -92,7 +98,7 @@ class ObjectConstRef : public ObjectRefBase<const CollectionData>,
FORCE_INLINE
typename enable_if<IsString<TString>::value, VariantConstRef>::type
operator[](const TString& key) const {
return VariantConstRef(objectGetMember(_data, adaptString(key)));
return VariantConstRef(getMember(adaptString(key)));
}
// operator[](char*) const
@ -102,7 +108,7 @@ class ObjectConstRef : public ObjectRefBase<const CollectionData>,
FORCE_INLINE
typename enable_if<IsString<TChar*>::value, VariantConstRef>::type
operator[](TChar* key) const {
return VariantConstRef(objectGetMember(_data, adaptString(key)));
return VariantConstRef(getMember(adaptString(key)));
}
FORCE_INLINE bool operator==(ObjectConstRef rhs) const {
@ -194,7 +200,7 @@ class ObjectRef : public ObjectRefBase<CollectionData>,
// remove(const String&) const
template <typename TString>
FORCE_INLINE void remove(const TString& key) const {
objectRemove(_data, adaptString(key));
removeMember(adaptString(key));
}
// remove(char*) const
@ -202,19 +208,19 @@ class ObjectRef : public ObjectRefBase<CollectionData>,
// remove(const __FlashStringHelper*) const
template <typename TChar>
FORCE_INLINE void remove(TChar* key) const {
objectRemove(_data, adaptString(key));
removeMember(adaptString(key));
}
template <typename TString>
FORCE_INLINE typename enable_if<IsString<TString>::value, bool>::type
containsKey(const TString& key) const {
return objectGetMember(_data, adaptString(key)) != 0;
return getMember(adaptString(key)) != 0;
}
template <typename TChar>
FORCE_INLINE typename enable_if<IsString<TChar*>::value, bool>::type
containsKey(TChar* key) const {
return objectGetMember(_data, adaptString(key)) != 0;
return getMember(adaptString(key)) != 0;
}
template <typename TString>
@ -246,6 +252,13 @@ class ObjectRef : public ObjectRefBase<CollectionData>,
return collectionToVariant(_data);
}
template <typename TAdaptedString>
void removeMember(TAdaptedString key) const {
if (!_data)
return;
_data->removeMember(key);
}
private:
MemoryPool* _pool;
};