Rename VariantConstRef to JsonVariantConst

This commit is contained in:
Benoit Blanchon
2022-12-19 12:05:08 +01:00
parent b8eff868e6
commit ef8ed28aec
29 changed files with 134 additions and 135 deletions

View File

@ -96,11 +96,11 @@ struct Converter<Complex> {
dst["imag"] = src.imag(); dst["imag"] = src.imag();
} }
static Complex fromJson(VariantConstRef src) { static Complex fromJson(JsonVariantConst src) {
return Complex(src["real"], src["imag"]); return Complex(src["real"], src["imag"]);
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
return src["real"].is<double>() && src["imag"].is<double>(); return src["real"].is<double>() && src["imag"].is<double>();
} }
}; };

View File

@ -182,7 +182,7 @@ TEST_CASE("Polyfills/type_traits") {
false)); false));
CHECK((is_convertible<JsonPair, JsonVariantConst>::value == false)); CHECK((is_convertible<JsonPair, JsonVariantConst>::value == false));
CHECK((is_convertible<VariantRef, JsonVariantConst>::value == true)); CHECK((is_convertible<VariantRef, JsonVariantConst>::value == true));
CHECK((is_convertible<VariantConstRef, JsonVariantConst>::value == true)); CHECK((is_convertible<JsonVariantConst, JsonVariantConst>::value == true));
CHECK((is_convertible<JsonArray, JsonVariantConst>::value == true)); CHECK((is_convertible<JsonArray, JsonVariantConst>::value == true));
CHECK((is_convertible<ElementProxy<JsonArray>, JsonVariantConst>::value == CHECK((is_convertible<ElementProxy<JsonArray>, JsonVariantConst>::value ==
true)); true));

View File

@ -23,7 +23,7 @@
#include "ArduinoJson/Array/JsonArray.hpp" #include "ArduinoJson/Array/JsonArray.hpp"
#include "ArduinoJson/Object/JsonObject.hpp" #include "ArduinoJson/Object/JsonObject.hpp"
#include "ArduinoJson/Variant/VariantConstRef.hpp" #include "ArduinoJson/Variant/JsonVariantConst.hpp"
#include "ArduinoJson/Document/DynamicJsonDocument.hpp" #include "ArduinoJson/Document/DynamicJsonDocument.hpp"
#include "ArduinoJson/Document/StaticJsonDocument.hpp" #include "ArduinoJson/Document/StaticJsonDocument.hpp"
@ -57,7 +57,7 @@ using ARDUINOJSON_NAMESPACE::JsonPair;
using ARDUINOJSON_NAMESPACE::JsonPairConst; using ARDUINOJSON_NAMESPACE::JsonPairConst;
using ARDUINOJSON_NAMESPACE::JsonString; using ARDUINOJSON_NAMESPACE::JsonString;
using ARDUINOJSON_NAMESPACE::JsonUInt; using ARDUINOJSON_NAMESPACE::JsonUInt;
typedef ARDUINOJSON_NAMESPACE::VariantConstRef JsonVariantConst; using ARDUINOJSON_NAMESPACE::JsonVariantConst;
typedef ARDUINOJSON_NAMESPACE::VariantRef JsonVariant; typedef ARDUINOJSON_NAMESPACE::VariantRef JsonVariant;
using ARDUINOJSON_NAMESPACE::BasicJsonDocument; using ARDUINOJSON_NAMESPACE::BasicJsonDocument;
using ARDUINOJSON_NAMESPACE::copyArray; using ARDUINOJSON_NAMESPACE::copyArray;

View File

@ -98,8 +98,8 @@ class JsonArray : public VariantOperators<JsonArray> {
return add().to<JsonArray>(); return add().to<JsonArray>();
} }
operator VariantConstRef() const { operator JsonVariantConst() const {
return VariantConstRef(collectionToVariant(_data)); return JsonVariantConst(collectionToVariant(_data));
} }
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
@ -141,7 +141,7 @@ class JsonArray : public VariantOperators<JsonArray> {
template <> template <>
struct Converter<JsonArray> : private VariantAttorney { struct Converter<JsonArray> : private VariantAttorney {
static void toJson(VariantConstRef src, VariantRef dst) { static void toJson(JsonVariantConst src, VariantRef dst) {
variantCopyFrom(getData(dst), getData(src), getPool(dst)); variantCopyFrom(getData(dst), getData(src), getPool(dst));
} }
@ -151,10 +151,10 @@ struct Converter<JsonArray> : private VariantAttorney {
return JsonArray(pool, data != 0 ? data->asArray() : 0); return JsonArray(pool, data != 0 ? data->asArray() : 0);
} }
static InvalidConversion<VariantConstRef, JsonArray> fromJson( static InvalidConversion<JsonVariantConst, JsonArray> fromJson(
VariantConstRef); JsonVariantConst);
static bool checkJson(VariantConstRef) { static bool checkJson(JsonVariantConst) {
return false; return false;
} }

View File

@ -55,12 +55,12 @@ class JsonArrayConst : public VariantOperators<JsonArrayConst> {
} }
} }
FORCE_INLINE VariantConstRef operator[](size_t index) const { FORCE_INLINE JsonVariantConst operator[](size_t index) const {
return VariantConstRef(_data ? _data->getElement(index) : 0); return JsonVariantConst(_data ? _data->getElement(index) : 0);
} }
operator VariantConstRef() const { operator JsonVariantConst() const {
return VariantConstRef(collectionToVariant(_data)); return JsonVariantConst(collectionToVariant(_data));
} }
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
@ -93,16 +93,16 @@ class JsonArrayConst : public VariantOperators<JsonArrayConst> {
template <> template <>
struct Converter<JsonArrayConst> : private VariantAttorney { struct Converter<JsonArrayConst> : private VariantAttorney {
static void toJson(VariantConstRef src, VariantRef dst) { static void toJson(JsonVariantConst src, VariantRef dst) {
variantCopyFrom(getData(dst), getData(src), getPool(dst)); variantCopyFrom(getData(dst), getData(src), getPool(dst));
} }
static JsonArrayConst fromJson(VariantConstRef src) { static JsonArrayConst fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asArray() : 0; return data ? data->asArray() : 0;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isArray(); return data && data->isArray();
} }

View File

@ -67,16 +67,16 @@ class VariantConstPtr {
public: public:
VariantConstPtr(const VariantData* data) : _variant(data) {} VariantConstPtr(const VariantData* data) : _variant(data) {}
VariantConstRef* operator->() { JsonVariantConst* operator->() {
return &_variant; return &_variant;
} }
VariantConstRef& operator*() { JsonVariantConst& operator*() {
return _variant; return _variant;
} }
private: private:
VariantConstRef _variant; JsonVariantConst _variant;
}; };
class JsonArrayConstIterator { class JsonArrayConstIterator {
@ -86,8 +86,8 @@ class JsonArrayConstIterator {
JsonArrayConstIterator() : _slot(0) {} JsonArrayConstIterator() : _slot(0) {}
explicit JsonArrayConstIterator(const VariantSlot* slot) : _slot(slot) {} explicit JsonArrayConstIterator(const VariantSlot* slot) : _slot(slot) {}
VariantConstRef operator*() const { JsonVariantConst operator*() const {
return VariantConstRef(_slot->data()); return JsonVariantConst(_slot->data());
} }
VariantConstPtr operator->() { VariantConstPtr operator->() {
return VariantConstPtr(_slot->data()); return VariantConstPtr(_slot->data());

View File

@ -57,7 +57,7 @@ inline bool copyArray(const T* src, size_t len, JsonDocument& dst) {
// Trivial case form to stop the recursion // Trivial case form to stop the recursion
template <typename T> template <typename T>
inline typename enable_if<!is_array<T>::value, size_t>::type copyArray( inline typename enable_if<!is_array<T>::value, size_t>::type copyArray(
VariantConstRef src, T& dst) { JsonVariantConst src, T& dst) {
dst = src.as<T>(); dst = src.as<T>();
return 1; return 1;
} }
@ -80,7 +80,7 @@ inline size_t copyArray(JsonArrayConst src, T* dst, size_t len) {
// Special case for char[] which must be treated as a string // Special case for char[] which must be treated as a string
template <size_t N> template <size_t N>
inline size_t copyArray(VariantConstRef src, char (&dst)[N]) { inline size_t copyArray(JsonVariantConst src, char (&dst)[N]) {
JsonString s = src; JsonString s = src;
size_t len = N - 1; size_t len = N - 1;
if (len > s.size()) if (len > s.size())

View File

@ -10,7 +10,7 @@ namespace ARDUINOJSON_NAMESPACE {
class Filter { class Filter {
public: public:
explicit Filter(VariantConstRef v) : _variant(v) {} explicit Filter(JsonVariantConst v) : _variant(v) {}
bool allow() const { bool allow() const {
return _variant; return _variant;
@ -32,12 +32,12 @@ class Filter {
Filter operator[](const TKey& key) const { Filter operator[](const TKey& key) const {
if (_variant == true) // "true" means "allow recursively" if (_variant == true) // "true" means "allow recursively"
return *this; return *this;
VariantConstRef member = _variant[key]; JsonVariantConst member = _variant[key];
return Filter(member.isNull() ? _variant["*"] : member); return Filter(member.isNull() ? _variant["*"] : member);
} }
private: private:
VariantConstRef _variant; JsonVariantConst _variant;
}; };
struct AllowAllFilter { struct AllowAllFilter {

View File

@ -5,7 +5,7 @@
#pragma once #pragma once
#include <ArduinoJson/Object/MemberProxy.hpp> #include <ArduinoJson/Object/MemberProxy.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {

View File

@ -65,9 +65,9 @@ class BasicJsonDocument : AllocatorOwner<TAllocator>, public JsonDocument {
BasicJsonDocument( BasicJsonDocument(
const T& src, const T& src,
typename enable_if< typename enable_if<
is_same<T, VariantRef>::value || is_same<T, VariantConstRef>::value || is_same<T, VariantRef>::value ||
is_same<T, JsonArray>::value || is_same<T, JsonArrayConst>::value || is_same<T, JsonVariantConst>::value || is_same<T, JsonArray>::value ||
is_same<T, JsonObject>::value || is_same<T, JsonArrayConst>::value || is_same<T, JsonObject>::value ||
is_same<T, JsonObjectConst>::value>::type* = 0) is_same<T, JsonObjectConst>::value>::type* = 0)
: JsonDocument(allocPool(src.memoryUsage())) { : JsonDocument(allocPool(src.memoryUsage())) {
set(src); set(src);

View File

@ -9,10 +9,9 @@
#include <ArduinoJson/Object/JsonObject.hpp> #include <ArduinoJson/Object/JsonObject.hpp>
#include <ArduinoJson/Object/MemberProxy.hpp> #include <ArduinoJson/Object/MemberProxy.hpp>
#include <ArduinoJson/Strings/StoragePolicy.hpp> #include <ArduinoJson/Strings/StoragePolicy.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
#include <ArduinoJson/Variant/VariantTo.hpp> #include <ArduinoJson/Variant/VariantTo.hpp>
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
class JsonDocument : public VariantOperators<const JsonDocument&> { class JsonDocument : public VariantOperators<const JsonDocument&> {
@ -69,7 +68,7 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
} }
bool set(const JsonDocument& src) { bool set(const JsonDocument& src) {
return to<VariantRef>().set(src.as<VariantConstRef>()); return to<VariantRef>().set(src.as<JsonVariantConst>());
} }
template <typename T> template <typename T>
@ -160,9 +159,9 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
// operator[](const String&) const // operator[](const String&) const
template <typename TString> template <typename TString>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TString>::value, VariantConstRef>::type typename enable_if<IsString<TString>::value, JsonVariantConst>::type
operator[](const TString& key) const { operator[](const TString& key) const {
return VariantConstRef(_data.getMember(adaptString(key))); return JsonVariantConst(_data.getMember(adaptString(key)));
} }
// operator[](char*) const // operator[](char*) const
@ -170,17 +169,17 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
// operator[](const __FlashStringHelper*) const // operator[](const __FlashStringHelper*) const
template <typename TChar> template <typename TChar>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TChar*>::value, VariantConstRef>::type typename enable_if<IsString<TChar*>::value, JsonVariantConst>::type
operator[](TChar* key) const { operator[](TChar* key) const {
return VariantConstRef(_data.getMember(adaptString(key))); return JsonVariantConst(_data.getMember(adaptString(key)));
} }
FORCE_INLINE ElementProxy<JsonDocument&> operator[](size_t index) { FORCE_INLINE ElementProxy<JsonDocument&> operator[](size_t index) {
return ElementProxy<JsonDocument&>(*this, index); return ElementProxy<JsonDocument&>(*this, index);
} }
FORCE_INLINE VariantConstRef operator[](size_t index) const { FORCE_INLINE JsonVariantConst operator[](size_t index) const {
return VariantConstRef(_data.getElement(index)); return JsonVariantConst(_data.getElement(index));
} }
FORCE_INLINE VariantRef add() { FORCE_INLINE VariantRef add() {
@ -223,7 +222,7 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
return getVariant(); return getVariant();
} }
FORCE_INLINE operator VariantConstRef() const { FORCE_INLINE operator JsonVariantConst() const {
return getVariant(); return getVariant();
} }
@ -250,8 +249,8 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
return VariantRef(&_pool, &_data); return VariantRef(&_pool, &_data);
} }
VariantConstRef getVariant() const { JsonVariantConst getVariant() const {
return VariantConstRef(&_data); return JsonVariantConst(&_data);
} }
MemoryPool _pool; MemoryPool _pool;
@ -280,7 +279,7 @@ class JsonDocument : public VariantOperators<const JsonDocument&> {
}; };
inline void convertToJson(const JsonDocument& src, VariantRef dst) { inline void convertToJson(const JsonDocument& src, VariantRef dst) {
dst.set(src.as<VariantConstRef>()); dst.set(src.as<JsonVariantConst>());
} }
} // namespace ARDUINOJSON_NAMESPACE } // namespace ARDUINOJSON_NAMESPACE

View File

@ -24,7 +24,7 @@ class StaticJsonDocument : public JsonDocument {
template <typename T> template <typename T>
StaticJsonDocument( StaticJsonDocument(
const T& src, const T& src,
typename enable_if<is_convertible<T, VariantConstRef>::value>::type* = 0) typename enable_if<is_convertible<T, JsonVariantConst>::value>::type* = 0)
: JsonDocument(_buffer, _capacity) { : JsonDocument(_buffer, _capacity) {
set(src); set(src);
} }

View File

@ -116,22 +116,22 @@ class JsonSerializer : public Visitor<size_t> {
}; };
template <typename TDestination> template <typename TDestination>
size_t serializeJson(VariantConstRef source, TDestination& destination) { size_t serializeJson(JsonVariantConst source, TDestination& destination) {
return serialize<JsonSerializer>(source, destination); return serialize<JsonSerializer>(source, destination);
} }
inline size_t serializeJson(VariantConstRef source, void* buffer, inline size_t serializeJson(JsonVariantConst source, void* buffer,
size_t bufferSize) { size_t bufferSize) {
return serialize<JsonSerializer>(source, buffer, bufferSize); return serialize<JsonSerializer>(source, buffer, bufferSize);
} }
inline size_t measureJson(VariantConstRef source) { inline size_t measureJson(JsonVariantConst source) {
return measure<JsonSerializer>(source); return measure<JsonSerializer>(source);
} }
#if ARDUINOJSON_ENABLE_STD_STREAM #if ARDUINOJSON_ENABLE_STD_STREAM
template <typename T> template <typename T>
inline typename enable_if<is_convertible<T, VariantConstRef>::value, inline typename enable_if<is_convertible<T, JsonVariantConst>::value,
std::ostream&>::type std::ostream&>::type
operator<<(std::ostream& os, const T& source) { operator<<(std::ostream& os, const T& source) {
serializeJson(source, os); serializeJson(source, os);

View File

@ -71,16 +71,16 @@ class PrettyJsonSerializer : public JsonSerializer<TWriter> {
}; };
template <typename TDestination> template <typename TDestination>
size_t serializeJsonPretty(VariantConstRef source, TDestination& destination) { size_t serializeJsonPretty(JsonVariantConst source, TDestination& destination) {
return serialize<PrettyJsonSerializer>(source, destination); return serialize<PrettyJsonSerializer>(source, destination);
} }
inline size_t serializeJsonPretty(VariantConstRef source, void* buffer, inline size_t serializeJsonPretty(JsonVariantConst source, void* buffer,
size_t bufferSize) { size_t bufferSize) {
return serialize<PrettyJsonSerializer>(source, buffer, bufferSize); return serialize<PrettyJsonSerializer>(source, buffer, bufferSize);
} }
inline size_t measureJsonPretty(VariantConstRef source) { inline size_t measureJsonPretty(JsonVariantConst source) {
return measure<PrettyJsonSerializer>(source); return measure<PrettyJsonSerializer>(source);
} }

View File

@ -198,16 +198,16 @@ class MsgPackSerializer : public Visitor<size_t> {
}; };
template <typename TDestination> template <typename TDestination>
inline size_t serializeMsgPack(VariantConstRef source, TDestination& output) { inline size_t serializeMsgPack(JsonVariantConst source, TDestination& output) {
return serialize<MsgPackSerializer>(source, output); return serialize<MsgPackSerializer>(source, output);
} }
inline size_t serializeMsgPack(VariantConstRef source, void* output, inline size_t serializeMsgPack(JsonVariantConst source, void* output,
size_t size) { size_t size) {
return serialize<MsgPackSerializer>(source, output, size); return serialize<MsgPackSerializer>(source, output, size);
} }
inline size_t measureMsgPack(VariantConstRef source) { inline size_t measureMsgPack(JsonVariantConst source) {
return measure<MsgPackSerializer>(source); return measure<MsgPackSerializer>(source);
} }

View File

@ -148,6 +148,6 @@ inline T parseNumber(const char* s) {
VariantData value; VariantData value;
value.init(); // VariantData is a POD, so it has no constructor value.init(); // VariantData is a POD, so it has no constructor
parseNumber(s, value); parseNumber(s, value);
return Converter<T>::fromJson(VariantConstRef(&value)); return Converter<T>::fromJson(JsonVariantConst(&value));
} }
} // namespace ARDUINOJSON_NAMESPACE } // namespace ARDUINOJSON_NAMESPACE

View File

@ -30,8 +30,8 @@ class JsonObject : public VariantOperators<JsonObject> {
return JsonObjectConst(_data); return JsonObjectConst(_data);
} }
operator VariantConstRef() const { operator JsonVariantConst() const {
return VariantConstRef(collectionToVariant(_data)); return JsonVariantConst(collectionToVariant(_data));
} }
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
@ -176,7 +176,7 @@ class JsonObject : public VariantOperators<JsonObject> {
template <> template <>
struct Converter<JsonObject> : private VariantAttorney { struct Converter<JsonObject> : private VariantAttorney {
static void toJson(VariantConstRef src, VariantRef dst) { static void toJson(JsonVariantConst src, VariantRef dst) {
variantCopyFrom(getData(dst), getData(src), getPool(dst)); variantCopyFrom(getData(dst), getData(src), getPool(dst));
} }
@ -186,10 +186,10 @@ struct Converter<JsonObject> : private VariantAttorney {
return JsonObject(pool, data != 0 ? data->asObject() : 0); return JsonObject(pool, data != 0 ? data->asObject() : 0);
} }
static InvalidConversion<VariantConstRef, JsonObject> fromJson( static InvalidConversion<JsonVariantConst, JsonObject> fromJson(
VariantConstRef); JsonVariantConst);
static bool checkJson(VariantConstRef) { static bool checkJson(JsonVariantConst) {
return false; return false;
} }

View File

@ -19,8 +19,8 @@ class JsonObjectConst : public VariantOperators<JsonObjectConst> {
JsonObjectConst() : _data(0) {} JsonObjectConst() : _data(0) {}
JsonObjectConst(const CollectionData* data) : _data(data) {} JsonObjectConst(const CollectionData* data) : _data(data) {}
operator VariantConstRef() const { operator JsonVariantConst() const {
return VariantConstRef(collectionToVariant(_data)); return JsonVariantConst(collectionToVariant(_data));
} }
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
@ -72,9 +72,9 @@ class JsonObjectConst : public VariantOperators<JsonObjectConst> {
// operator[](const String&) const // operator[](const String&) const
template <typename TString> template <typename TString>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TString>::value, VariantConstRef>::type typename enable_if<IsString<TString>::value, JsonVariantConst>::type
operator[](const TString& key) const { operator[](const TString& key) const {
return VariantConstRef(getMember(adaptString(key))); return JsonVariantConst(getMember(adaptString(key)));
} }
// operator[](char*) const // operator[](char*) const
@ -82,9 +82,9 @@ class JsonObjectConst : public VariantOperators<JsonObjectConst> {
// operator[](const __FlashStringHelper*) const // operator[](const __FlashStringHelper*) const
template <typename TChar> template <typename TChar>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TChar*>::value, VariantConstRef>::type typename enable_if<IsString<TChar*>::value, JsonVariantConst>::type
operator[](TChar* key) const { operator[](TChar* key) const {
return VariantConstRef(getMember(adaptString(key))); return JsonVariantConst(getMember(adaptString(key)));
} }
FORCE_INLINE bool operator==(JsonObjectConst rhs) const { FORCE_INLINE bool operator==(JsonObjectConst rhs) const {
@ -120,16 +120,16 @@ class JsonObjectConst : public VariantOperators<JsonObjectConst> {
template <> template <>
struct Converter<JsonObjectConst> : private VariantAttorney { struct Converter<JsonObjectConst> : private VariantAttorney {
static void toJson(VariantConstRef src, VariantRef dst) { static void toJson(JsonVariantConst src, VariantRef dst) {
variantCopyFrom(getData(dst), getData(src), getPool(dst)); variantCopyFrom(getData(dst), getData(src), getPool(dst));
} }
static JsonObjectConst fromJson(VariantConstRef src) { static JsonObjectConst fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data != 0 ? data->asObject() : 0; return data != 0 ? data->asObject() : 0;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isObject(); return data && data->isObject();
} }

View File

@ -5,7 +5,7 @@
#pragma once #pragma once
#include <ArduinoJson/Strings/JsonString.hpp> #include <ArduinoJson/Strings/JsonString.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
#include <ArduinoJson/Variant/VariantRef.hpp> #include <ArduinoJson/Variant/VariantRef.hpp>
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
@ -39,7 +39,7 @@ class JsonPairConst {
if (slot) { if (slot) {
_key = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied _key = JsonString(slot->key(), slot->ownsKey() ? JsonString::Copied
: JsonString::Linked); : JsonString::Linked);
_value = VariantConstRef(slot->data()); _value = JsonVariantConst(slot->data());
} }
} }
@ -47,12 +47,12 @@ class JsonPairConst {
return _key; return _key;
} }
VariantConstRef value() const { JsonVariantConst value() const {
return _value; return _value;
} }
private: private:
JsonString _key; JsonString _key;
VariantConstRef _value; JsonVariantConst _value;
}; };
} // namespace ARDUINOJSON_NAMESPACE } // namespace ARDUINOJSON_NAMESPACE

View File

@ -10,7 +10,7 @@
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
template <template <typename> class TSerializer> template <template <typename> class TSerializer>
size_t measure(VariantConstRef source) { size_t measure(JsonVariantConst source) {
DummyWriter dp; DummyWriter dp;
TSerializer<DummyWriter> serializer(dp); TSerializer<DummyWriter> serializer(dp);
return variantAccept(VariantAttorney::getData(source), serializer); return variantAccept(VariantAttorney::getData(source), serializer);

View File

@ -10,27 +10,27 @@
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
template <template <typename> class TSerializer, typename TWriter> template <template <typename> class TSerializer, typename TWriter>
size_t doSerialize(VariantConstRef source, TWriter writer) { size_t doSerialize(JsonVariantConst source, TWriter writer) {
TSerializer<TWriter> serializer(writer); TSerializer<TWriter> serializer(writer);
return variantAccept(VariantAttorney::getData(source), serializer); return variantAccept(VariantAttorney::getData(source), serializer);
} }
template <template <typename> class TSerializer, typename TDestination> template <template <typename> class TSerializer, typename TDestination>
size_t serialize(VariantConstRef source, TDestination& destination) { size_t serialize(JsonVariantConst source, TDestination& destination) {
Writer<TDestination> writer(destination); Writer<TDestination> writer(destination);
return doSerialize<TSerializer>(source, writer); return doSerialize<TSerializer>(source, writer);
} }
template <template <typename> class TSerializer> template <template <typename> class TSerializer>
typename enable_if<!TSerializer<StaticStringWriter>::producesText, size_t>::type typename enable_if<!TSerializer<StaticStringWriter>::producesText, size_t>::type
serialize(VariantConstRef source, void* buffer, size_t bufferSize) { serialize(JsonVariantConst source, void* buffer, size_t bufferSize) {
StaticStringWriter writer(reinterpret_cast<char*>(buffer), bufferSize); StaticStringWriter writer(reinterpret_cast<char*>(buffer), bufferSize);
return doSerialize<TSerializer>(source, writer); return doSerialize<TSerializer>(source, writer);
} }
template <template <typename> class TSerializer> template <template <typename> class TSerializer>
typename enable_if<TSerializer<StaticStringWriter>::producesText, size_t>::type typename enable_if<TSerializer<StaticStringWriter>::producesText, size_t>::type
serialize(VariantConstRef source, void* buffer, size_t bufferSize) { serialize(JsonVariantConst source, void* buffer, size_t bufferSize) {
StaticStringWriter writer(reinterpret_cast<char*>(buffer), bufferSize); StaticStringWriter writer(reinterpret_cast<char*>(buffer), bufferSize);
size_t n = doSerialize<TSerializer>(source, writer); size_t n = doSerialize<TSerializer>(source, writer);
// add null-terminator for text output (not counted in the size) // add null-terminator for text output (not counted in the size)
@ -45,7 +45,7 @@ typename enable_if<sizeof(remove_reference<TChar>::type) == 1, size_t>::type
#else #else
typename enable_if<sizeof(TChar) == 1, size_t>::type typename enable_if<sizeof(TChar) == 1, size_t>::type
#endif #endif
serialize(VariantConstRef source, TChar (&buffer)[N]) { serialize(JsonVariantConst source, TChar (&buffer)[N]) {
return serialize<TSerializer>(source, buffer, N); return serialize<TSerializer>(source, buffer, N);
} }

View File

@ -5,7 +5,7 @@
#pragma once #pragma once
#include <ArduinoJson/Json/JsonSerializer.hpp> #include <ArduinoJson/Json/JsonSerializer.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
#include <ArduinoJson/Variant/VariantFunctions.hpp> #include <ArduinoJson/Variant/VariantFunctions.hpp>
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
@ -18,7 +18,7 @@ struct Converter {
// clang-format on // clang-format on
} }
static T fromJson(VariantConstRef src) { static T fromJson(JsonVariantConst src) {
// clang-format off // clang-format off
T result; // Error here? See https://arduinojson.org/v6/non-default-constructible/ T result; // Error here? See https://arduinojson.org/v6/non-default-constructible/
convertFromJson(src, result); // Error here? See https://arduinojson.org/v6/unsupported-as/ convertFromJson(src, result); // Error here? See https://arduinojson.org/v6/unsupported-as/
@ -26,7 +26,7 @@ struct Converter {
return result; return result;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
T dummy = T(); T dummy = T();
// clang-format off // clang-format off
return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v6/unsupported-is/ return canConvertFromJson(src, dummy); // Error here? See https://arduinojson.org/v6/unsupported-is/
@ -46,13 +46,13 @@ struct Converter<
data->setInteger(src); data->setInteger(src);
} }
static T fromJson(VariantConstRef src) { static T fromJson(JsonVariantConst src) {
ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T); ARDUINOJSON_ASSERT_INTEGER_TYPE_IS_SUPPORTED(T);
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asIntegral<T>() : T(); return data ? data->asIntegral<T>() : T();
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isInteger<T>(); return data && data->isInteger<T>();
} }
@ -65,12 +65,12 @@ struct Converter<T, typename enable_if<is_enum<T>::value>::type>
dst.set(static_cast<JsonInteger>(src)); dst.set(static_cast<JsonInteger>(src));
} }
static T fromJson(VariantConstRef src) { static T fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? static_cast<T>(data->asIntegral<int>()) : T(); return data ? static_cast<T>(data->asIntegral<int>()) : T();
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isInteger<int>(); return data && data->isInteger<int>();
} }
@ -84,12 +84,12 @@ struct Converter<bool> : private VariantAttorney {
data->setBoolean(src); data->setBoolean(src);
} }
static bool fromJson(VariantConstRef src) { static bool fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asBoolean() : false; return data ? data->asBoolean() : false;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isBoolean(); return data && data->isBoolean();
} }
@ -104,12 +104,12 @@ struct Converter<T, typename enable_if<is_floating_point<T>::value>::type>
data->setFloat(static_cast<JsonFloat>(src)); data->setFloat(static_cast<JsonFloat>(src));
} }
static T fromJson(VariantConstRef src) { static T fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asFloat<T>() : 0; return data ? data->asFloat<T>() : 0;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isFloat(); return data && data->isFloat();
} }
@ -121,12 +121,12 @@ struct Converter<const char*> : private VariantAttorney {
variantSetString(getData(dst), adaptString(src), getPool(dst)); variantSetString(getData(dst), adaptString(src), getPool(dst));
} }
static const char* fromJson(VariantConstRef src) { static const char* fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asString().c_str() : 0; return data ? data->asString().c_str() : 0;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isString(); return data && data->isString();
} }
@ -138,12 +138,12 @@ struct Converter<JsonString> : private VariantAttorney {
variantSetString(getData(dst), adaptString(src), getPool(dst)); variantSetString(getData(dst), adaptString(src), getPool(dst));
} }
static JsonString fromJson(VariantConstRef src) { static JsonString fromJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data ? data->asString() : 0; return data ? data->asString() : 0;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data && data->isString(); return data && data->isString();
} }
@ -188,10 +188,10 @@ struct Converter<decltype(nullptr)> : private VariantAttorney {
static void toJson(decltype(nullptr), VariantRef dst) { static void toJson(decltype(nullptr), VariantRef dst) {
variantSetNull(getData(dst)); variantSetNull(getData(dst));
} }
static decltype(nullptr) fromJson(VariantConstRef) { static decltype(nullptr) fromJson(JsonVariantConst) {
return nullptr; return nullptr;
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return data == 0 || data->isNull(); return data == 0 || data->isNull();
} }
@ -261,7 +261,7 @@ inline void convertToJson(const ::Printable& src, VariantRef dst) {
#if ARDUINOJSON_ENABLE_ARDUINO_STRING #if ARDUINOJSON_ENABLE_ARDUINO_STRING
inline void convertFromJson(VariantConstRef src, ::String& dst) { inline void convertFromJson(JsonVariantConst src, ::String& dst) {
JsonString str = src.as<JsonString>(); JsonString str = src.as<JsonString>();
if (str) if (str)
dst = str.c_str(); dst = str.c_str();
@ -269,7 +269,7 @@ inline void convertFromJson(VariantConstRef src, ::String& dst) {
serializeJson(src, dst); serializeJson(src, dst);
} }
inline bool canConvertFromJson(VariantConstRef src, const ::String&) { inline bool canConvertFromJson(JsonVariantConst src, const ::String&) {
return src.is<JsonString>(); return src.is<JsonString>();
} }
@ -277,7 +277,7 @@ inline bool canConvertFromJson(VariantConstRef src, const ::String&) {
#if ARDUINOJSON_ENABLE_STD_STRING #if ARDUINOJSON_ENABLE_STD_STRING
inline void convertFromJson(VariantConstRef src, std::string& dst) { inline void convertFromJson(JsonVariantConst src, std::string& dst) {
JsonString str = src.as<JsonString>(); JsonString str = src.as<JsonString>();
if (str) if (str)
dst.assign(str.c_str(), str.size()); dst.assign(str.c_str(), str.size());
@ -285,7 +285,7 @@ inline void convertFromJson(VariantConstRef src, std::string& dst) {
serializeJson(src, dst); serializeJson(src, dst);
} }
inline bool canConvertFromJson(VariantConstRef src, const std::string&) { inline bool canConvertFromJson(JsonVariantConst src, const std::string&) {
return src.is<JsonString>(); return src.is<JsonString>();
} }
@ -293,13 +293,13 @@ inline bool canConvertFromJson(VariantConstRef src, const std::string&) {
#if ARDUINOJSON_ENABLE_STRING_VIEW #if ARDUINOJSON_ENABLE_STRING_VIEW
inline void convertFromJson(VariantConstRef src, std::string_view& dst) { inline void convertFromJson(JsonVariantConst src, std::string_view& dst) {
JsonString str = src.as<JsonString>(); JsonString str = src.as<JsonString>();
if (str) // the standard doesn't allow passing null to the constructor if (str) // the standard doesn't allow passing null to the constructor
dst = std::string_view(str.c_str(), str.size()); dst = std::string_view(str.c_str(), str.size());
} }
inline bool canConvertFromJson(VariantConstRef src, const std::string_view&) { inline bool canConvertFromJson(JsonVariantConst src, const std::string_view&) {
return src.is<JsonString>(); return src.is<JsonString>();
} }
@ -309,7 +309,7 @@ template <typename T>
struct ConverterNeedsWriteableRef { struct ConverterNeedsWriteableRef {
protected: // <- to avoid GCC's "all member functions in class are private" protected: // <- to avoid GCC's "all member functions in class are private"
static int probe(T (*f)(VariantRef)); static int probe(T (*f)(VariantRef));
static char probe(T (*f)(VariantConstRef)); static char probe(T (*f)(JsonVariantConst));
public: public:
static const bool value = static const bool value =

View File

@ -22,13 +22,13 @@ namespace ARDUINOJSON_NAMESPACE {
class JsonArray; class JsonArray;
class JsonObject; class JsonObject;
class VariantConstRef : public VariantTag, class JsonVariantConst : public VariantTag,
public VariantOperators<VariantConstRef> { public VariantOperators<JsonVariantConst> {
friend class VariantAttorney; friend class VariantAttorney;
public: public:
VariantConstRef() : _data(0) {} JsonVariantConst() : _data(0) {}
explicit VariantConstRef(const VariantData* data) : _data(data) {} explicit JsonVariantConst(const VariantData* data) : _data(data) {}
FORCE_INLINE bool isNull() const { FORCE_INLINE bool isNull() const {
return variantIsNull(_data); return variantIsNull(_data);
@ -101,17 +101,17 @@ class VariantConstRef : public VariantTag,
return as<T>(); return as<T>();
} }
FORCE_INLINE VariantConstRef operator[](size_t index) const { FORCE_INLINE JsonVariantConst operator[](size_t index) const {
return VariantConstRef(variantGetElement(_data, index)); return JsonVariantConst(variantGetElement(_data, index));
} }
// operator[](const std::string&) const // operator[](const std::string&) const
// operator[](const String&) const // operator[](const String&) const
template <typename TString> template <typename TString>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TString>::value, VariantConstRef>::type typename enable_if<IsString<TString>::value, JsonVariantConst>::type
operator[](const TString& key) const { operator[](const TString& key) const {
return VariantConstRef(variantGetMember(_data, adaptString(key))); return JsonVariantConst(variantGetMember(_data, adaptString(key)));
} }
// operator[](char*) const // operator[](char*) const
@ -119,9 +119,9 @@ class VariantConstRef : public VariantTag,
// operator[](const __FlashStringHelper*) const // operator[](const __FlashStringHelper*) const
template <typename TChar> template <typename TChar>
FORCE_INLINE FORCE_INLINE
typename enable_if<IsString<TChar*>::value, VariantConstRef>::type typename enable_if<IsString<TChar*>::value, JsonVariantConst>::type
operator[](TChar* key) const { operator[](TChar* key) const {
return VariantConstRef(variantGetMember(_data, adaptString(key))); return JsonVariantConst(variantGetMember(_data, adaptString(key)));
} }
// containsKey(const std::string&) const // containsKey(const std::string&) const

View File

@ -7,7 +7,7 @@
#include <ArduinoJson/Polyfills/attributes.hpp> #include <ArduinoJson/Polyfills/attributes.hpp>
#include <ArduinoJson/Polyfills/type_traits.hpp> #include <ArduinoJson/Polyfills/type_traits.hpp>
#include <ArduinoJson/Variant/VariantTo.hpp> #include <ArduinoJson/Variant/VariantTo.hpp>
#include "VariantConstRef.hpp" #include "JsonVariantConst.hpp"
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {

View File

@ -194,14 +194,14 @@ struct VariantComparer : ComparerBase {
template <typename T> template <typename T>
struct Comparer< struct Comparer<
T, typename enable_if<is_convertible<T, VariantConstRef>::value>::type> T, typename enable_if<is_convertible<T, JsonVariantConst>::value>::type>
: VariantComparer { : VariantComparer {
explicit Comparer(const T& value) explicit Comparer(const T& value)
: VariantComparer(VariantAttorney::getData(value)) {} : VariantComparer(VariantAttorney::getData(value)) {}
}; };
template <typename T> template <typename T>
CompareResult compare(VariantConstRef lhs, const T& rhs) { CompareResult compare(JsonVariantConst lhs, const T& rhs) {
Comparer<T> comparer(rhs); Comparer<T> comparer(rhs);
return variantAccept(VariantAttorney::getData(lhs), comparer); return variantAccept(VariantAttorney::getData(lhs), comparer);
} }

View File

@ -149,7 +149,7 @@ inline bool VariantRefBase<TDerived>::set(char value) const {
template <typename TDerived> template <typename TDerived>
inline void convertToJson(const VariantRefBase<TDerived>& src, VariantRef dst) { inline void convertToJson(const VariantRefBase<TDerived>& src, VariantRef dst) {
dst.set(src.template as<VariantConstRef>()); dst.set(src.template as<JsonVariantConst>());
} }
} // namespace ARDUINOJSON_NAMESPACE } // namespace ARDUINOJSON_NAMESPACE

View File

@ -11,10 +11,10 @@
namespace ARDUINOJSON_NAMESPACE { namespace ARDUINOJSON_NAMESPACE {
class VariantConstRef; class JsonVariantConst;
template <typename T> template <typename T>
CompareResult compare(VariantConstRef lhs, CompareResult compare(JsonVariantConst lhs,
const T& rhs); // VariantCompare.cpp const T& rhs); // VariantCompare.cpp
struct VariantOperatorTag {}; struct VariantOperatorTag {};
@ -47,7 +47,7 @@ struct VariantOperators : VariantOperatorTag {
// //
// JsonVariant operator|(JsonVariant, JsonVariant) // JsonVariant operator|(JsonVariant, JsonVariant)
template <typename T> template <typename T>
friend typename enable_if<IsVariant<T>::value, VariantConstRef>::type friend typename enable_if<IsVariant<T>::value, JsonVariantConst>::type
operator|(const TVariant& variant, T defaultValue) { operator|(const TVariant& variant, T defaultValue) {
if (variant) if (variant)
return variant; return variant;

View File

@ -44,30 +44,30 @@ struct Converter<VariantRef> : private VariantAttorney {
return src; return src;
} }
static InvalidConversion<VariantConstRef, VariantRef> fromJson( static InvalidConversion<JsonVariantConst, VariantRef> fromJson(
VariantConstRef); JsonVariantConst);
static bool checkJson(VariantRef src) { static bool checkJson(VariantRef src) {
VariantData* data = getData(src); VariantData* data = getData(src);
return !!data; return !!data;
} }
static bool checkJson(VariantConstRef) { static bool checkJson(JsonVariantConst) {
return false; return false;
} }
}; };
template <> template <>
struct Converter<VariantConstRef> : private VariantAttorney { struct Converter<JsonVariantConst> : private VariantAttorney {
static void toJson(VariantConstRef src, VariantRef dst) { static void toJson(JsonVariantConst src, VariantRef dst) {
variantCopyFrom(getData(dst), getData(src), getPool(dst)); variantCopyFrom(getData(dst), getData(src), getPool(dst));
} }
static VariantConstRef fromJson(VariantConstRef src) { static JsonVariantConst fromJson(JsonVariantConst src) {
return VariantConstRef(getData(src)); return JsonVariantConst(getData(src));
} }
static bool checkJson(VariantConstRef src) { static bool checkJson(JsonVariantConst src) {
const VariantData* data = getData(src); const VariantData* data = getData(src);
return !!data; return !!data;
} }

View File

@ -6,7 +6,7 @@
#include <ArduinoJson/Configuration.hpp> #include <ArduinoJson/Configuration.hpp>
#include <ArduinoJson/Variant/Converter.hpp> #include <ArduinoJson/Variant/Converter.hpp>
#include <ArduinoJson/Variant/VariantConstRef.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
#include <ArduinoJson/Variant/VariantOperators.hpp> #include <ArduinoJson/Variant/VariantOperators.hpp>
#include <ArduinoJson/Variant/VariantTo.hpp> #include <ArduinoJson/Variant/VariantTo.hpp>
@ -119,7 +119,7 @@ class VariantRefBase : public VariantTag {
return is<signed char>(); return is<signed char>();
} }
FORCE_INLINE void shallowCopy(VariantConstRef target) { FORCE_INLINE void shallowCopy(JsonVariantConst target) {
VariantData* data = getOrCreateData(); VariantData* data = getOrCreateData();
if (!data) if (!data)
return; return;
@ -258,8 +258,8 @@ class VariantRefBase : public VariantTag {
private: private:
FORCE_INLINE VariantRef getVariant() const; FORCE_INLINE VariantRef getVariant() const;
FORCE_INLINE VariantConstRef getVariantConst() const { FORCE_INLINE JsonVariantConst getVariantConst() const {
return VariantConstRef(getData()); return JsonVariantConst(getData());
} }
FORCE_INLINE VariantRef getOrCreateVariant() const; FORCE_INLINE VariantRef getOrCreateVariant() const;