ArduinoJson 7.0.3

This commit is contained in:
proddy
2024-02-10 09:50:32 +01:00
parent 4ac2d1a9a7
commit f167be37a1
146 changed files with 390 additions and 353 deletions

0
lib/ArduinoJson/src/ArduinoJson.h Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Array/ArrayData.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Array/ArrayImpl.hpp Normal file → Executable file
View File

10
lib/ArduinoJson/src/ArduinoJson/Array/ElementProxy.hpp Normal file → Executable file
View File

@@ -22,25 +22,25 @@ class ElementProxy : public VariantRefBase<ElementProxy<TUpstream>>,
ElementProxy(const ElementProxy& src)
: upstream_(src.upstream_), index_(src.index_) {}
FORCE_INLINE ElementProxy& operator=(const ElementProxy& src) {
ElementProxy& operator=(const ElementProxy& src) {
this->set(src);
return *this;
}
template <typename T>
FORCE_INLINE ElementProxy& operator=(const T& src) {
ElementProxy& operator=(const T& src) {
this->set(src);
return *this;
}
template <typename T>
FORCE_INLINE ElementProxy& operator=(T* src) {
ElementProxy& operator=(T* src) {
this->set(src);
return *this;
}
private:
FORCE_INLINE ResourceManager* getResourceManager() const {
ResourceManager* getResourceManager() const {
return VariantAttorney::getResourceManager(upstream_);
}
@@ -50,7 +50,7 @@ class ElementProxy : public VariantRefBase<ElementProxy<TUpstream>>,
VariantAttorney::getResourceManager(upstream_));
}
FORCE_INLINE VariantData* getOrCreateData() const {
VariantData* getOrCreateData() const {
auto data = VariantAttorney::getOrCreateData(upstream_);
if (!data)
return nullptr;

29
lib/ArduinoJson/src/ArduinoJson/Array/JsonArray.hpp Normal file → Executable file
View File

@@ -20,11 +20,10 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
typedef JsonArrayIterator iterator;
// Constructs an unbound reference.
FORCE_INLINE JsonArray() : data_(0), resources_(0) {}
JsonArray() : data_(0), resources_(0) {}
// INTERNAL USE ONLY
FORCE_INLINE JsonArray(detail::ArrayData* data,
detail::ResourceManager* resources)
JsonArray(detail::ArrayData* data, detail::ResourceManager* resources)
: data_(data), resources_(resources) {}
// Returns a JsonVariant pointing to the array.
@@ -63,20 +62,20 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Appends a value to the array.
// https://arduinojson.org/v7/api/jsonarray/add/
template <typename T>
FORCE_INLINE bool add(const T& value) const {
bool add(const T& value) const {
return add<JsonVariant>().set(value);
}
// Appends a value to the array.
// https://arduinojson.org/v7/api/jsonarray/add/
template <typename T>
FORCE_INLINE bool add(T* value) const {
bool add(T* value) const {
return add<JsonVariant>().set(value);
}
// Returns an iterator to the first element of the array.
// https://arduinojson.org/v7/api/jsonarray/begin/
FORCE_INLINE iterator begin() const {
iterator begin() const {
if (!data_)
return iterator();
return iterator(data_->createIterator(resources_), resources_);
@@ -84,13 +83,13 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Returns an iterator following the last element of the array.
// https://arduinojson.org/v7/api/jsonarray/end/
FORCE_INLINE iterator end() const {
iterator end() const {
return iterator();
}
// Copies an array.
// https://arduinojson.org/v7/api/jsonarray/set/
FORCE_INLINE bool set(JsonArrayConst src) const {
bool set(JsonArrayConst src) const {
if (!data_)
return false;
@@ -105,13 +104,13 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Removes the element at the specified iterator.
// https://arduinojson.org/v7/api/jsonarray/remove/
FORCE_INLINE void remove(iterator it) const {
void remove(iterator it) const {
detail::ArrayData::remove(data_, it.iterator_, resources_);
}
// Removes the element at the specified index.
// https://arduinojson.org/v7/api/jsonarray/remove/
FORCE_INLINE void remove(size_t index) const {
void remove(size_t index) const {
detail::ArrayData::removeElement(data_, index, resources_);
}
@@ -123,7 +122,7 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Gets or sets the element at the specified index.
// https://arduinojson.org/v7/api/jsonarray/subscript/
FORCE_INLINE detail::ElementProxy<JsonArray> operator[](size_t index) const {
detail::ElementProxy<JsonArray> operator[](size_t index) const {
return {*this, index};
}
@@ -133,25 +132,25 @@ class JsonArray : public detail::VariantOperators<JsonArray> {
// Returns true if the reference is unbound.
// https://arduinojson.org/v7/api/jsonarray/isnull/
FORCE_INLINE bool isNull() const {
bool isNull() const {
return data_ == 0;
}
// Returns true if the reference is bound.
// https://arduinojson.org/v7/api/jsonarray/isnull/
FORCE_INLINE operator bool() const {
operator bool() const {
return data_ != 0;
}
// Returns the depth (nesting level) of the array.
// https://arduinojson.org/v7/api/jsonarray/nesting/
FORCE_INLINE size_t nesting() const {
size_t nesting() const {
return detail::VariantData::nesting(collectionToVariant(data_), resources_);
}
// Returns the number of elements in the array.
// https://arduinojson.org/v7/api/jsonarray/size/
FORCE_INLINE size_t size() const {
size_t size() const {
return data_ ? data_->size(resources_) : 0;
}

View File

@@ -23,7 +23,7 @@ class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
// Returns an iterator to the first element of the array.
// https://arduinojson.org/v7/api/jsonarrayconst/begin/
FORCE_INLINE iterator begin() const {
iterator begin() const {
if (!data_)
return iterator();
return iterator(data_->createIterator(resources_), resources_);
@@ -31,21 +31,21 @@ class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
// Returns an iterator to the element following the last element of the array.
// https://arduinojson.org/v7/api/jsonarrayconst/end/
FORCE_INLINE iterator end() const {
iterator end() const {
return iterator();
}
// Creates an unbound reference.
FORCE_INLINE JsonArrayConst() : data_(0) {}
JsonArrayConst() : data_(0) {}
// INTERNAL USE ONLY
FORCE_INLINE JsonArrayConst(const detail::ArrayData* data,
const detail::ResourceManager* resources)
JsonArrayConst(const detail::ArrayData* data,
const detail::ResourceManager* resources)
: data_(data), resources_(resources) {}
// Returns the element at the specified index.
// https://arduinojson.org/v7/api/jsonarrayconst/subscript/
FORCE_INLINE JsonVariantConst operator[](size_t index) const {
JsonVariantConst operator[](size_t index) const {
return JsonVariantConst(
detail::ArrayData::getElement(data_, index, resources_), resources_);
}
@@ -56,25 +56,25 @@ class JsonArrayConst : public detail::VariantOperators<JsonArrayConst> {
// Returns true if the reference is unbound.
// https://arduinojson.org/v7/api/jsonarrayconst/isnull/
FORCE_INLINE bool isNull() const {
bool isNull() const {
return data_ == 0;
}
// Returns true if the reference is bound.
// https://arduinojson.org/v7/api/jsonarrayconst/isnull/
FORCE_INLINE operator bool() const {
operator bool() const {
return data_ != 0;
}
// Returns the depth (nesting level) of the array.
// https://arduinojson.org/v7/api/jsonarrayconst/nesting/
FORCE_INLINE size_t nesting() const {
size_t nesting() const {
return detail::VariantData::nesting(getData(), resources_);
}
// Returns the number of elements in the array.
// https://arduinojson.org/v7/api/jsonarrayconst/size/
FORCE_INLINE size_t size() const {
size_t size() const {
return data_ ? data_->size(resources_) : 0;
}

View File

0
lib/ArduinoJson/src/ArduinoJson/Array/Utilities.hpp Normal file → Executable file
View File

View File

@@ -107,6 +107,10 @@ class CollectionData {
return collection->remove(it, resources);
}
SlotId head() const {
return head_;
}
protected:
iterator addSlot(ResourceManager*);

View File

0
lib/ArduinoJson/src/ArduinoJson/Configuration.hpp Normal file → Executable file
View File

View File

View File

View File

View File

View File

View File

@@ -30,7 +30,8 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
}
// Move-constructor
JsonDocument(JsonDocument&& src) : JsonDocument() {
JsonDocument(JsonDocument&& src)
: JsonDocument(detail::DefaultAllocator::instance()) {
swap(*this, src);
}
@@ -169,9 +170,8 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Gets or sets a root object's member.
// https://arduinojson.org/v7/api/jsondocument/subscript/
template <typename TString>
FORCE_INLINE typename detail::enable_if<
detail::IsString<TString>::value,
detail::MemberProxy<JsonDocument&, TString>>::type
typename detail::enable_if<detail::IsString<TString>::value,
detail::MemberProxy<JsonDocument&, TString>>::type
operator[](const TString& key) {
return {*this, key};
}
@@ -179,9 +179,8 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Gets or sets a root object's member.
// https://arduinojson.org/v7/api/jsondocument/subscript/
template <typename TChar>
FORCE_INLINE typename detail::enable_if<
detail::IsString<TChar*>::value,
detail::MemberProxy<JsonDocument&, TChar*>>::type
typename detail::enable_if<detail::IsString<TChar*>::value,
detail::MemberProxy<JsonDocument&, TChar*>>::type
operator[](TChar* key) {
return {*this, key};
}
@@ -189,8 +188,8 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Gets a root object's member.
// https://arduinojson.org/v7/api/jsondocument/subscript/
template <typename TString>
FORCE_INLINE typename detail::enable_if<detail::IsString<TString>::value,
JsonVariantConst>::type
typename detail::enable_if<detail::IsString<TString>::value,
JsonVariantConst>::type
operator[](const TString& key) const {
return JsonVariantConst(
data_.getMember(detail::adaptString(key), &resources_), &resources_);
@@ -199,8 +198,8 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Gets a root object's member.
// https://arduinojson.org/v7/api/jsondocument/subscript/
template <typename TChar>
FORCE_INLINE typename detail::enable_if<detail::IsString<TChar*>::value,
JsonVariantConst>::type
typename detail::enable_if<detail::IsString<TChar*>::value,
JsonVariantConst>::type
operator[](TChar* key) const {
return JsonVariantConst(
data_.getMember(detail::adaptString(key), &resources_), &resources_);
@@ -208,13 +207,13 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Gets or sets a root array's element.
// https://arduinojson.org/v7/api/jsondocument/subscript/
FORCE_INLINE detail::ElementProxy<JsonDocument&> operator[](size_t index) {
detail::ElementProxy<JsonDocument&> operator[](size_t index) {
return {*this, index};
}
// Gets a root array's member.
// https://arduinojson.org/v7/api/jsondocument/subscript/
FORCE_INLINE JsonVariantConst operator[](size_t index) const {
JsonVariantConst operator[](size_t index) const {
return JsonVariantConst(data_.getElement(index, &resources_), &resources_);
}
@@ -239,28 +238,28 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Appends a value to the root array.
// https://arduinojson.org/v7/api/jsondocument/add/
template <typename TValue>
FORCE_INLINE bool add(const TValue& value) {
bool add(const TValue& value) {
return add<JsonVariant>().set(value);
}
// Appends a value to the root array.
// https://arduinojson.org/v7/api/jsondocument/add/
template <typename TChar>
FORCE_INLINE bool add(TChar* value) {
bool add(TChar* value) {
return add<JsonVariant>().set(value);
}
// Removes an element of the root array.
// https://arduinojson.org/v7/api/jsondocument/remove/
FORCE_INLINE void remove(size_t index) {
void remove(size_t index) {
detail::VariantData::removeElement(getData(), index, getResourceManager());
}
// Removes a member of the root object.
// https://arduinojson.org/v7/api/jsondocument/remove/
template <typename TChar>
FORCE_INLINE typename detail::enable_if<detail::IsString<TChar*>::value>::type
remove(TChar* key) {
typename detail::enable_if<detail::IsString<TChar*>::value>::type remove(
TChar* key) {
detail::VariantData::removeMember(getData(), detail::adaptString(key),
getResourceManager());
}
@@ -268,18 +267,18 @@ class JsonDocument : public detail::VariantOperators<const JsonDocument&> {
// Removes a member of the root object.
// https://arduinojson.org/v7/api/jsondocument/remove/
template <typename TString>
FORCE_INLINE
typename detail::enable_if<detail::IsString<TString>::value>::type
remove(const TString& key) {
typename detail::enable_if<detail::IsString<TString>::value>::type remove(
const TString& key) {
detail::VariantData::removeMember(getData(), detail::adaptString(key),
getResourceManager());
}
FORCE_INLINE operator JsonVariant() {
operator JsonVariant() {
return getVariant();
}
FORCE_INLINE operator JsonVariantConst() const {
operator JsonVariantConst() const {
return getVariant();
}

View File

View File

34
lib/ArduinoJson/src/ArduinoJson/Json/JsonSerializer.hpp Normal file → Executable file
View File

@@ -19,19 +19,20 @@ class JsonSerializer : public VariantDataVisitor<size_t> {
JsonSerializer(TWriter writer, const ResourceManager* resources)
: formatter_(writer), resources_(resources) {}
FORCE_INLINE size_t visit(const ArrayData& array) {
size_t visit(const ArrayData& array) {
write('[');
auto it = array.createIterator(resources_);
auto slotId = array.head();
while (!it.done()) {
it->accept(*this);
while (slotId != NULL_SLOT) {
auto slot = resources_->getSlot(slotId);
it.next(resources_);
if (it.done())
break;
slot->data()->accept(*this);
write(',');
slotId = slot->next();
if (slotId != NULL_SLOT)
write(',');
}
write(']');
@@ -41,18 +42,19 @@ class JsonSerializer : public VariantDataVisitor<size_t> {
size_t visit(const ObjectData& object) {
write('{');
auto it = object.createIterator(resources_);
auto slotId = object.head();
while (!it.done()) {
formatter_.writeString(it.key());
while (slotId != NULL_SLOT) {
auto slot = resources_->getSlot(slotId);
formatter_.writeString(slot->key());
write(':');
it->accept(*this);
slot->data()->accept(*this);
it.next(resources_);
if (it.done())
break;
slotId = slot->next();
write(',');
if (slotId != NULL_SLOT)
write(',');
}
write('}');

0
lib/ArduinoJson/src/ArduinoJson/Json/Latch.hpp Normal file → Executable file
View File

View File

0
lib/ArduinoJson/src/ArduinoJson/Json/TextFormatter.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Json/Utf16.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Json/Utf8.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Memory/Alignment.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Memory/Allocator.hpp Normal file → Executable file
View File

View File

View File

0
lib/ArduinoJson/src/ArduinoJson/Memory/StringNode.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Memory/StringPool.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Memory/VariantPool.hpp Normal file → Executable file
View File

View File

View File

View File

View File

View File

@@ -59,10 +59,14 @@ class MsgPackSerializer : public VariantDataVisitor<size_t> {
writeByte(0xDD);
writeInteger(uint32_t(n));
}
for (auto it = array.createIterator(resources_); !it.done();
it.next(resources_)) {
it->accept(*this);
auto slotId = array.head();
while (slotId != NULL_SLOT) {
auto slot = resources_->getSlot(slotId);
slot->data()->accept(*this);
slotId = slot->next();
}
return bytesWritten();
}
@@ -77,11 +81,15 @@ class MsgPackSerializer : public VariantDataVisitor<size_t> {
writeByte(0xDF);
writeInteger(uint32_t(n));
}
for (auto it = object.createIterator(resources_); !it.done();
it.next(resources_)) {
visit(it.key());
it->accept(*this);
auto slotId = object.head();
while (slotId != NULL_SLOT) {
auto slot = resources_->getSlot(slotId);
visit(slot->key());
slot->data()->accept(*this);
slotId = slot->next();
}
return bytesWritten();
}

0
lib/ArduinoJson/src/ArduinoJson/MsgPack/endianess.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/MsgPack/ieee754.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Namespace.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Numbers/FloatParts.hpp Normal file → Executable file
View File

View File

0
lib/ArduinoJson/src/ArduinoJson/Numbers/JsonFloat.hpp Normal file → Executable file
View File

View File

View File

View File

View File

47
lib/ArduinoJson/src/ArduinoJson/Object/JsonObject.hpp Normal file → Executable file
View File

@@ -20,11 +20,10 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
typedef JsonObjectIterator iterator;
// Creates an unbound reference.
FORCE_INLINE JsonObject() : data_(0), resources_(0) {}
JsonObject() : data_(0), resources_(0) {}
// INTERNAL USE ONLY
FORCE_INLINE JsonObject(detail::ObjectData* data,
detail::ResourceManager* resource)
JsonObject(detail::ObjectData* data, detail::ResourceManager* resource)
: data_(data), resources_(resource) {}
operator JsonVariant() const {
@@ -43,31 +42,31 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Returns true if the reference is unbound.
// https://arduinojson.org/v7/api/jsonobject/isnull/
FORCE_INLINE bool isNull() const {
bool isNull() const {
return data_ == 0;
}
// Returns true if the reference is bound.
// https://arduinojson.org/v7/api/jsonobject/isnull/
FORCE_INLINE operator bool() const {
operator bool() const {
return data_ != 0;
}
// Returns the depth (nesting level) of the object.
// https://arduinojson.org/v7/api/jsonobject/nesting/
FORCE_INLINE size_t nesting() const {
size_t nesting() const {
return detail::VariantData::nesting(collectionToVariant(data_), resources_);
}
// Returns the number of members in the object.
// https://arduinojson.org/v7/api/jsonobject/size/
FORCE_INLINE size_t size() const {
size_t size() const {
return data_ ? data_->size(resources_) : 0;
}
// Returns an iterator to the first key-value pair of the object.
// https://arduinojson.org/v7/api/jsonobject/begin/
FORCE_INLINE iterator begin() const {
iterator begin() const {
if (!data_)
return iterator();
return iterator(data_->createIterator(resources_), resources_);
@@ -75,7 +74,7 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Returns an iterator following the last key-value pair of the object.
// https://arduinojson.org/v7/api/jsonobject/end/
FORCE_INLINE iterator end() const {
iterator end() const {
return iterator();
}
@@ -87,7 +86,7 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Copies an object.
// https://arduinojson.org/v7/api/jsonobject/set/
FORCE_INLINE bool set(JsonObjectConst src) {
bool set(JsonObjectConst src) {
if (!data_ || !src.data_)
return false;
@@ -103,20 +102,20 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Gets or sets the member with specified key.
// https://arduinojson.org/v7/api/jsonobject/subscript/
template <typename TString>
FORCE_INLINE
typename detail::enable_if<detail::IsString<TString>::value,
detail::MemberProxy<JsonObject, TString>>::type
operator[](const TString& key) const {
typename detail::enable_if<detail::IsString<TString>::value,
detail::MemberProxy<JsonObject, TString>>::type
operator[](const TString& key) const {
return {*this, key};
}
// Gets or sets the member with specified key.
// https://arduinojson.org/v7/api/jsonobject/subscript/
template <typename TChar>
FORCE_INLINE
typename detail::enable_if<detail::IsString<TChar*>::value,
detail::MemberProxy<JsonObject, TChar*>>::type
operator[](TChar* key) const {
typename detail::enable_if<detail::IsString<TChar*>::value,
detail::MemberProxy<JsonObject, TChar*>>::type
operator[](TChar* key) const {
return {*this, key};
}
@@ -145,9 +144,9 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Returns true if the object contains the specified key.
// https://arduinojson.org/v7/api/jsonobject/containskey/
template <typename TString>
FORCE_INLINE
typename detail::enable_if<detail::IsString<TString>::value, bool>::type
containsKey(const TString& key) const {
typename detail::enable_if<detail::IsString<TString>::value, bool>::type
containsKey(const TString& key) const {
return detail::ObjectData::getMember(data_, detail::adaptString(key),
resources_) != 0;
}
@@ -155,9 +154,9 @@ class JsonObject : public detail::VariantOperators<JsonObject> {
// Returns true if the object contains the specified key.
// https://arduinojson.org/v7/api/jsonobject/containskey/
template <typename TChar>
FORCE_INLINE
typename detail::enable_if<detail::IsString<TChar*>::value, bool>::type
containsKey(TChar* key) const {
typename detail::enable_if<detail::IsString<TChar*>::value, bool>::type
containsKey(TChar* key) const {
return detail::ObjectData::getMember(data_, detail::adaptString(key),
resources_) != 0;
}

View File

@@ -32,31 +32,31 @@ class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
// Returns true if the reference is unbound.
// https://arduinojson.org/v7/api/jsonobjectconst/isnull/
FORCE_INLINE bool isNull() const {
bool isNull() const {
return data_ == 0;
}
// Returns true if the reference is bound.
// https://arduinojson.org/v7/api/jsonobjectconst/isnull/
FORCE_INLINE operator bool() const {
operator bool() const {
return data_ != 0;
}
// Returns the depth (nesting level) of the object.
// https://arduinojson.org/v7/api/jsonobjectconst/nesting/
FORCE_INLINE size_t nesting() const {
size_t nesting() const {
return detail::VariantData::nesting(getData(), resources_);
}
// Returns the number of members in the object.
// https://arduinojson.org/v7/api/jsonobjectconst/size/
FORCE_INLINE size_t size() const {
size_t size() const {
return data_ ? data_->size(resources_) : 0;
}
// Returns an iterator to the first key-value pair of the object.
// https://arduinojson.org/v7/api/jsonobjectconst/begin/
FORCE_INLINE iterator begin() const {
iterator begin() const {
if (!data_)
return iterator();
return iterator(data_->createIterator(resources_), resources_);
@@ -64,14 +64,14 @@ class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
// Returns an iterator following the last key-value pair of the object.
// https://arduinojson.org/v7/api/jsonobjectconst/end/
FORCE_INLINE iterator end() const {
iterator end() const {
return iterator();
}
// Returns true if the object contains the specified key.
// https://arduinojson.org/v7/api/jsonobjectconst/containskey/
template <typename TString>
FORCE_INLINE bool containsKey(const TString& key) const {
bool containsKey(const TString& key) const {
return detail::ObjectData::getMember(data_, detail::adaptString(key),
resources_) != 0;
}
@@ -79,7 +79,7 @@ class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
// Returns true if the object contains the specified key.
// https://arduinojson.org/v7/api/jsonobjectconst/containskey/
template <typename TChar>
FORCE_INLINE bool containsKey(TChar* key) const {
bool containsKey(TChar* key) const {
return detail::ObjectData::getMember(data_, detail::adaptString(key),
resources_) != 0;
}
@@ -87,8 +87,8 @@ class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
// Gets the member with specified key.
// https://arduinojson.org/v7/api/jsonobjectconst/subscript/
template <typename TString>
FORCE_INLINE typename detail::enable_if<detail::IsString<TString>::value,
JsonVariantConst>::type
typename detail::enable_if<detail::IsString<TString>::value,
JsonVariantConst>::type
operator[](const TString& key) const {
return JsonVariantConst(detail::ObjectData::getMember(
data_, detail::adaptString(key), resources_),
@@ -98,8 +98,8 @@ class JsonObjectConst : public detail::VariantOperators<JsonObjectConst> {
// Gets the member with specified key.
// https://arduinojson.org/v7/api/jsonobjectconst/subscript/
template <typename TChar>
FORCE_INLINE typename detail::enable_if<detail::IsString<TChar*>::value,
JsonVariantConst>::type
typename detail::enable_if<detail::IsString<TChar*>::value,
JsonVariantConst>::type
operator[](TChar* key) const {
return JsonVariantConst(detail::ObjectData::getMember(
data_, detail::adaptString(key), resources_),

View File

0
lib/ArduinoJson/src/ArduinoJson/Object/JsonPair.hpp Normal file → Executable file
View File

14
lib/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp Normal file → Executable file
View File

@@ -17,41 +17,41 @@ class MemberProxy
friend class VariantAttorney;
public:
FORCE_INLINE MemberProxy(TUpstream upstream, TStringRef key)
MemberProxy(TUpstream upstream, TStringRef key)
: upstream_(upstream), key_(key) {}
MemberProxy(const MemberProxy& src)
: upstream_(src.upstream_), key_(src.key_) {}
FORCE_INLINE MemberProxy& operator=(const MemberProxy& src) {
MemberProxy& operator=(const MemberProxy& src) {
this->set(src);
return *this;
}
template <typename T>
FORCE_INLINE MemberProxy& operator=(const T& src) {
MemberProxy& operator=(const T& src) {
this->set(src);
return *this;
}
template <typename T>
FORCE_INLINE MemberProxy& operator=(T* src) {
MemberProxy& operator=(T* src) {
this->set(src);
return *this;
}
private:
FORCE_INLINE ResourceManager* getResourceManager() const {
ResourceManager* getResourceManager() const {
return VariantAttorney::getResourceManager(upstream_);
}
FORCE_INLINE VariantData* getData() const {
VariantData* getData() const {
return VariantData::getMember(
VariantAttorney::getData(upstream_), adaptString(key_),
VariantAttorney::getResourceManager(upstream_));
}
FORCE_INLINE VariantData* getOrCreateData() const {
VariantData* getOrCreateData() const {
auto data = VariantAttorney::getOrCreateData(upstream_);
if (!data)
return nullptr;

0
lib/ArduinoJson/src/ArduinoJson/Object/ObjectData.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Object/ObjectImpl.hpp Normal file → Executable file
View File

View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/assert.hpp Normal file → Executable file
View File

View File

@@ -7,7 +7,6 @@
#ifdef _MSC_VER // Visual Studio
# define FORCE_INLINE // __forceinline causes C4714 when returning std::string
# define NO_INLINE __declspec(noinline)
# ifndef ARDUINOJSON_DEPRECATED
# define ARDUINOJSON_DEPRECATED(msg) __declspec(deprecated(msg))
@@ -16,7 +15,6 @@
#elif defined(__GNUC__) // GCC or Clang
# define FORCE_INLINE __attribute__((always_inline))
# define NO_INLINE __attribute__((noinline))
# ifndef ARDUINOJSON_DEPRECATED
# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)
@@ -29,7 +27,6 @@
#else // Other compilers
# define FORCE_INLINE
# define NO_INLINE
# ifndef ARDUINOJSON_DEPRECATED
# define ARDUINOJSON_DEPRECATED(msg)

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/ctype.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/integer.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/limits.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/math.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/mpl/max.hpp Normal file → Executable file
View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/pgmspace.hpp Normal file → Executable file
View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

View File

0
lib/ArduinoJson/src/ArduinoJson/Polyfills/utility.hpp Normal file → Executable file
View File

View File

View File

Some files were not shown because too many files have changed in this diff Show More