Disambiguated the name get() with getElement() and getMember()

This commit is contained in:
Benoit Blanchon
2019-02-15 15:53:53 +01:00
parent 7ed92bebd3
commit e9b4c6289b
19 changed files with 172 additions and 200 deletions

View File

@@ -285,17 +285,23 @@ class VariantData {
return isCollection() ? _content.asCollection.size() : 0;
}
VariantData *get(size_t index) const {
VariantData *addElement(MemoryPool *pool) {
if (isNull()) toArray();
if (!isArray()) return 0;
return _content.asCollection.add(pool);
}
VariantData *getElement(size_t index) const {
return isArray() ? _content.asCollection.get(index) : 0;
}
template <typename TAdaptedString>
VariantData *get(TAdaptedString key) const {
VariantData *getMember(TAdaptedString key) const {
return isObject() ? _content.asCollection.get(key) : 0;
}
template <typename TAdaptedString>
VariantData *getOrCreate(TAdaptedString key, MemoryPool *pool) {
VariantData *getOrAddMember(TAdaptedString key, MemoryPool *pool) {
if (isNull()) toObject();
if (!isObject()) return 0;
VariantData *var = _content.asCollection.get(key);
@@ -303,12 +309,6 @@ class VariantData {
return _content.asCollection.add(key, pool);
}
VariantData *add(MemoryPool *pool) {
if (isNull()) toArray();
if (!isArray()) return 0;
return _content.asCollection.add(pool);
}
private:
uint8_t type() const {
return _flags & VALUE_MASK;

View File

@@ -147,19 +147,19 @@ inline CollectionData *variantToObject(VariantData *var) {
}
inline NO_INLINE VariantData *variantAdd(VariantData *var, MemoryPool *pool) {
return var != 0 ? var->add(pool) : 0;
return var != 0 ? var->addElement(pool) : 0;
}
template <typename TChar>
NO_INLINE VariantData *variantGetOrCreate(VariantData *var, TChar *key,
MemoryPool *pool) {
return var != 0 ? var->getOrCreate(adaptString(key), pool) : 0;
return var != 0 ? var->getOrAddMember(adaptString(key), pool) : 0;
}
template <typename TString>
NO_INLINE VariantData *variantGetOrCreate(VariantData *var, const TString &key,
MemoryPool *pool) {
return var != 0 ? var->getOrCreate(adaptString(key), pool) : 0;
return var != 0 ? var->getOrAddMember(adaptString(key), pool) : 0;
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@@ -102,32 +102,32 @@ inline VariantConstRef VariantConstRef::operator[](size_t index) const {
return ArrayConstRef(_data != 0 ? _data->asArray() : 0)[index];
}
inline VariantRef VariantRef::add() const {
inline VariantRef VariantRef::addElement() const {
return VariantRef(_pool, variantAdd(_data, _pool));
}
inline VariantRef VariantRef::get(size_t index) const {
return VariantRef(_pool, _data != 0 ? _data->get(index) : 0);
inline VariantRef VariantRef::getElement(size_t index) const {
return VariantRef(_pool, _data != 0 ? _data->getElement(index) : 0);
}
template <typename TChar>
inline VariantRef VariantRef::get(TChar *key) const {
return VariantRef(_pool, _data != 0 ? _data->get(adaptString(key)) : 0);
inline VariantRef VariantRef::getMember(TChar *key) const {
return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0);
}
template <typename TString>
inline typename enable_if<IsString<TString>::value, VariantRef>::type
VariantRef::get(const TString &key) const {
return VariantRef(_pool, _data != 0 ? _data->get(adaptString(key)) : 0);
VariantRef::getMember(const TString &key) const {
return VariantRef(_pool, _data != 0 ? _data->getMember(adaptString(key)) : 0);
}
template <typename TChar>
inline VariantRef VariantRef::getOrCreate(TChar *key) const {
inline VariantRef VariantRef::getOrAddMember(TChar *key) const {
return VariantRef(_pool, variantGetOrCreate(_data, key, _pool));
}
template <typename TString>
inline VariantRef VariantRef::getOrCreate(const TString &key) const {
inline VariantRef VariantRef::getOrAddMember(const TString &key) const {
return VariantRef(_pool, variantGetOrCreate(_data, key, _pool));
}
} // namespace ARDUINOJSON_NAMESPACE

View File

@@ -280,32 +280,31 @@ class VariantRef : public VariantRefBase<VariantData>,
typename enable_if<is_same<T, VariantRef>::value, VariantRef>::type to()
const;
VariantRef add() const;
using ArrayShortcuts::add;
VariantRef addElement() const;
FORCE_INLINE VariantRef get(size_t) const;
FORCE_INLINE VariantRef getElement(size_t) const;
// get(const char*) const
// get(const __FlashStringHelper*) const
// getMember(const char*) const
// getMember(const __FlashStringHelper*) const
template <typename TChar>
FORCE_INLINE VariantRef get(TChar *) const;
FORCE_INLINE VariantRef getMember(TChar *) const;
// get(const std::string&) const
// get(const String&) const
// getMember(const std::string&) const
// getMember(const String&) const
template <typename TString>
FORCE_INLINE typename enable_if<IsString<TString>::value, VariantRef>::type
get(const TString &) const;
getMember(const TString &) const;
// getOrCreate(char*) const
// getOrCreate(const char*) const
// getOrCreate(const __FlashStringHelper*) const
// getOrAddMember(char*) const
// getOrAddMember(const char*) const
// getOrAddMember(const __FlashStringHelper*) const
template <typename TChar>
FORCE_INLINE VariantRef getOrCreate(TChar *) const;
FORCE_INLINE VariantRef getOrAddMember(TChar *) const;
// getOrCreate(const std::string&) const
// getOrCreate(const String&) const
// getOrAddMember(const std::string&) const
// getOrAddMember(const String&) const
template <typename TString>
FORCE_INLINE VariantRef getOrCreate(const TString &) const;
FORCE_INLINE VariantRef getOrAddMember(const TString &) const;
private:
MemoryPool *_pool;