15#ifndef RAPIDJSON_DOCUMENT_H_
16#define RAPIDJSON_DOCUMENT_H_
30RAPIDJSON_DIAG_OFF(padded)
31RAPIDJSON_DIAG_OFF(
switch-
enum)
32RAPIDJSON_DIAG_OFF(c++98-compat)
33#elif defined(_MSC_VER)
34RAPIDJSON_DIAG_OFF(4127)
35RAPIDJSON_DIAG_OFF(4244)
39RAPIDJSON_DIAG_OFF(effc++)
41RAPIDJSON_DIAG_OFF(terminate)
45#ifndef RAPIDJSON_NOMEMBERITERATORCLASS
49#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
56template <
typename Encoding,
typename Allocator>
59template <
typename Encoding,
typename Allocator,
typename StackAllocator>
68template <
typename Encoding,
typename Allocator>
77#ifndef RAPIDJSON_NOMEMBERITERATORCLASS
98template <
bool Const,
typename Encoding,
typename Allocator>
105 typedef typename internal::MaybeAddConst<Const,PlainType>::Type
ValueType;
204template <
bool Const,
typename Encoding,
typename Allocator>
208template <
typename Encoding,
typename Allocator>
214template <
typename Encoding,
typename Allocator>
252template<
typename CharType>
324 operator const Ch *()
const {
return s; }
345template<
typename CharType>
360template<
typename CharType>
380template<
typename CharType>
385#if RAPIDJSON_HAS_STDSTRING
398template<
typename CharType>
408template <
typename T,
typename Encoding =
void,
typename Allocator =
void>
413 : IsBaseOf<GenericValue<typename T::EncodingType, typename T::AllocatorType>, T>
::Type {};
425template <
typename ValueType,
typename T>
428template<
typename ValueType>
430 static bool Is(
const ValueType& v) {
return v.IsBool(); }
431 static bool Get(
const ValueType& v) {
return v.GetBool(); }
432 static ValueType&
Set(ValueType& v,
bool data) {
return v.SetBool(
data); }
433 static ValueType&
Set(ValueType& v,
bool data,
typename ValueType::AllocatorType&) {
return v.SetBool(
data); }
436template<
typename ValueType>
438 static bool Is(
const ValueType& v) {
return v.IsInt(); }
439 static int Get(
const ValueType& v) {
return v.GetInt(); }
440 static ValueType&
Set(ValueType& v,
int data) {
return v.SetInt(
data); }
441 static ValueType&
Set(ValueType& v,
int data,
typename ValueType::AllocatorType&) {
return v.SetInt(
data); }
444template<
typename ValueType>
446 static bool Is(
const ValueType& v) {
return v.IsUint(); }
447 static unsigned Get(
const ValueType& v) {
return v.GetUint(); }
448 static ValueType&
Set(ValueType& v,
unsigned data) {
return v.SetUint(
data); }
449 static ValueType&
Set(ValueType& v,
unsigned data,
typename ValueType::AllocatorType&) {
return v.SetUint(
data); }
454template<
typename ValueType>
455struct TypeHelper<ValueType, long> {
456 static bool Is(
const ValueType& v) {
return v.IsInt(); }
457 static long Get(
const ValueType& v) {
return v.GetInt(); }
458 static ValueType& Set(ValueType& v,
long data) {
return v.SetInt(
data); }
459 static ValueType& Set(ValueType& v,
long data,
typename ValueType::AllocatorType&) {
return v.SetInt(
data); }
463template<
typename ValueType>
464struct TypeHelper<ValueType, unsigned long> {
465 static bool Is(
const ValueType& v) {
return v.IsUint(); }
466 static unsigned long Get(
const ValueType& v) {
return v.GetUint(); }
467 static ValueType& Set(ValueType& v,
unsigned long data) {
return v.SetUint(
data); }
468 static ValueType& Set(ValueType& v,
unsigned long data,
typename ValueType::AllocatorType&) {
return v.SetUint(
data); }
472template<
typename ValueType>
474 static bool Is(
const ValueType& v) {
return v.IsInt64(); }
475 static int64_t Get(
const ValueType& v) {
return v.GetInt64(); }
477 static ValueType&
Set(ValueType& v,
int64_t data,
typename ValueType::AllocatorType&) {
return v.SetInt64(
data); }
480template<
typename ValueType>
482 static bool Is(
const ValueType& v) {
return v.IsUint64(); }
485 static ValueType&
Set(ValueType& v,
uint64_t data,
typename ValueType::AllocatorType&) {
return v.SetUint64(
data); }
488template<
typename ValueType>
490 static bool Is(
const ValueType& v) {
return v.IsDouble(); }
491 static double Get(
const ValueType& v) {
return v.GetDouble(); }
492 static ValueType&
Set(ValueType& v,
double data) {
return v.SetDouble(
data); }
493 static ValueType&
Set(ValueType& v,
double data,
typename ValueType::AllocatorType&) {
return v.SetDouble(
data); }
496template<
typename ValueType>
498 static bool Is(
const ValueType& v) {
return v.IsFloat(); }
499 static float Get(
const ValueType& v) {
return v.GetFloat(); }
500 static ValueType&
Set(ValueType& v,
float data) {
return v.SetFloat(
data); }
501 static ValueType&
Set(ValueType& v,
float data,
typename ValueType::AllocatorType&) {
return v.SetFloat(
data); }
504template<
typename ValueType>
507 static bool Is(
const ValueType& v) {
return v.IsString(); }
509 static ValueType&
Set(ValueType& v,
const StringType data) {
return v.SetString(
typename ValueType::StringRefType(
data)); }
510 static ValueType&
Set(ValueType& v,
const StringType data,
typename ValueType::AllocatorType&
a) {
return v.SetString(
data,
a); }
513#if RAPIDJSON_HAS_STDSTRING
514template<
typename ValueType>
515struct TypeHelper<ValueType,
std::basic_string<typename ValueType::Ch> > {
516 typedef std::basic_string<typename ValueType::Ch> StringType;
517 static bool Is(
const ValueType& v) {
return v.IsString(); }
518 static StringType Get(
const ValueType& v) {
return StringType(v.GetString(), v.GetStringLength()); }
519 static ValueType& Set(ValueType& v,
const StringType&
data,
typename ValueType::AllocatorType&
a) {
return v.SetString(
data,
a); }
523template<
typename ValueType>
526 static bool Is(
const ValueType& v) {
return v.IsArray(); }
532template<
typename ValueType>
533struct TypeHelper<ValueType, typename ValueType::ConstArray> {
535 static bool Is(
const ValueType& v) {
return v.IsArray(); }
539template<
typename ValueType>
542 static bool Is(
const ValueType& v) {
return v.IsObject(); }
548template<
typename ValueType>
549struct TypeHelper<ValueType, typename ValueType::ConstObject> {
551 static bool Is(
const ValueType& v) {
return v.IsObject(); }
574template <
typename Encoding,
typename Allocator = MemoryPoolAllocator<> >
581 typedef typename Encoding::Ch
Ch;
599#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
610#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
612 template <
typename StackAllocator>
616 template <
typename StackAllocator>
628 static const uint16_t defaultFlags[7] = {
648 template <
typename SourceAllocator>
650 switch (rhs.GetType()) {
669 new (&le[i])
GenericValue(re[i], allocator, copyConstStrings);
696#ifndef RAPIDJSON_DOXYGEN_RUNNING
697 template <
typename T>
698 explicit GenericValue(
T b, RAPIDJSON_ENABLEIF((internal::IsSame<bool, T>))) RAPIDJSON_NOEXCEPT
765#if RAPIDJSON_HAS_STDSTRING
779 a.value_.data_ =
Data();
790 o.value_.data_ =
Data();
798 if (Allocator::kNeedFree) {
840#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
843 return *
this = rhs.Move();
869 template <
typename T>
883 template <
typename SourceAllocator>
887 new (
this)
GenericValue(rhs, allocator, copyConstStrings);
900 other.RawAssign(temp);
920 GenericValue& Move() RAPIDJSON_NOEXCEPT {
return *
this; }
930 template <
typename SourceAllocator>
933 if (GetType() != rhs.GetType())
940 for (
ConstMemberIterator lhsMemberItr = MemberBegin(); lhsMemberItr != MemberEnd(); ++lhsMemberItr) {
941 typename RhsType::ConstMemberIterator rhsMemberItr = rhs.FindMember(lhsMemberItr->name);
942 if (rhsMemberItr == rhs.MemberEnd() || lhsMemberItr->value != rhsMemberItr->value)
951 if ((*
this)[
i] != rhs[
i])
959 if (IsDouble() || rhs.IsDouble()) {
960 double a = GetDouble();
961 double b = rhs.GetDouble();
962 return a >=
b &&
a <=
b;
975#if RAPIDJSON_HAS_STDSTRING
990 template <
typename SourceAllocator>
994 bool operator!=(
const Ch* rhs)
const {
return !(*
this == rhs); }
1031 bool IsLosslessDouble()
const {
1032 if (!IsNumber())
return false;
1035 volatile double d =
static_cast<double>(
u);
1037 && (d < static_cast<double>((std::numeric_limits<uint64_t>::max)()))
1042 volatile double d =
static_cast<double>(
i);
1043 return (
d >=
static_cast<double>((std::numeric_limits<int64_t>::min)()))
1044 && (
d <
static_cast<double>((std::numeric_limits<int64_t>::max)()))
1051 bool IsFloat()
const {
1054 double d = GetDouble();
1055 return d >= -3.4028234e38 &&
d <= 3.4028234e38;
1058 bool IsLosslessFloat()
const {
1059 if (!IsNumber())
return false;
1060 double a = GetDouble();
1061 if (
a <
static_cast<double>(-(std::numeric_limits<float>::max)())
1062 ||
a >
static_cast<double>((std::numeric_limits<float>::max)()))
1064 double b =
static_cast<double>(
static_cast<float>(
a));
1065 return a >=
b &&
a <=
b;
1112 template <
typename T>
1117 template <
typename T>
1129 template <
typename SourceAllocator>
1132 if (member != MemberEnd())
1133 return member->value;
1146 template <
typename SourceAllocator>
1149#if RAPIDJSON_HAS_STDSTRING
1191 bool HasMember(
const Ch*
name)
const {
return FindMember(
name) != MemberEnd(); }
1193#if RAPIDJSON_HAS_STDSTRING
1202 bool HasMember(
const std::basic_string<Ch>&
name)
const {
return FindMember(
name) != MemberEnd(); }
1214 template <
typename SourceAllocator>
1231 return FindMember(n);
1249 template <
typename SourceAllocator>
1254 for ( ; member != MemberEnd(); ++member)
1255 if (
name.StringEqual(member->name))
1261#if RAPIDJSON_HAS_STDSTRING
1288 if (o.size >= o.capacity)
1289 MemberReserve(o.capacity == 0 ?
kDefaultObjectCapacity : (o.capacity + (o.capacity + 1) / 2), allocator);
1291 members[o.size].name.RawAssign(
name);
1292 members[o.size].value.RawAssign(
value);
1308 return AddMember(
name, v, allocator);
1311#if RAPIDJSON_HAS_STDSTRING
1323 return AddMember(
name, v, allocator);
1344 template <
typename T>
1348 return AddMember(
name, v, allocator);
1351#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
1353 return AddMember(
name,
value, allocator);
1356 return AddMember(
name,
value, allocator);
1359 return AddMember(
name,
value, allocator);
1363 return AddMember(n,
value, allocator);
1380 return AddMember(n,
value, allocator);
1394 return AddMember(
name, v, allocator);
1414 template <
typename T>
1418 return AddMember(n,
value, allocator);
1425 void RemoveAllMembers() {
1440 bool RemoveMember(
const Ch*
name) {
1442 return RemoveMember(n);
1445#if RAPIDJSON_HAS_STDSTRING
1449 template <
typename SourceAllocator>
1452 if (m != MemberEnd()) {
1493 return EraseMember(pos, pos +1);
1516 std::memmove(&*pos, &*last,
static_cast<size_t>(MemberEnd() - last) *
sizeof(
Member));
1526 bool EraseMember(
const Ch*
name) {
1528 return EraseMember(n);
1531#if RAPIDJSON_HAS_STDSTRING
1535 template <
typename SourceAllocator>
1538 if (m != MemberEnd()) {
1637#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
1639 return PushBack(
value, allocator);
1653 return (*this).template PushBack<StringRefType>(
value, allocator);
1673 template <
typename T>
1677 return PushBack(v, allocator);
1699 return Erase(pos, pos + 1);
1720 std::memmove(pos, last,
static_cast<size_t>(End() - last) *
sizeof(
GenericValue));
1741 double GetDouble()
const {
1753 float GetFloat()
const {
1754 return static_cast<float>(GetDouble());
1819#if RAPIDJSON_HAS_STDSTRING
1839 template <
typename T>
1842 template <
typename T>
1845 template <
typename T>
1848 template<
typename T>
1851 template<
typename T>
1863 template <
typename Handler>
1864 bool Accept(
Handler& handler)
const {
1868 case kTrueType:
return handler.Bool(
true);
1895 if (IsDouble())
return handler.Double(
data_.
n.
d);
1896 else if (IsInt())
return handler.Int(
data_.
n.
i.
i);
1897 else if (IsUint())
return handler.Uint(
data_.
n.
u.
u);
1898 else if (IsInt64())
return handler.Int64(
data_.
n.
i64);
1899 else return handler.Uint64(
data_.
n.
u64);
1904 template <
typename,
typename>
friend class GenericValue;
1942#if RAPIDJSON_48BITPOINTER_OPTIMIZATION
1944#elif RAPIDJSON_64BIT
1977#if RAPIDJSON_ENDIAN == RAPIDJSON_LITTLEENDIAN
2036#if defined(__GNUC__) && __GNUC__ >= 8
2037RAPIDJSON_DIAG_OFF(
class-memaccess)
2054#if defined(__GNUC__) && __GNUC__ >= 8
2055RAPIDJSON_DIAG_OFF(
class-memaccess)
2082 str =
static_cast<Ch *
>(allocator.Malloc((
s.length + 1) *
sizeof(
Ch)));
2085 std::memcpy(
str,
s,
s.length *
sizeof(
Ch));
2086 str[
s.length] =
'\0';
2096 template <
typename SourceAllocator>
2101 const SizeType len1 = GetStringLength();
2102 const SizeType len2 = rhs.GetStringLength();
2103 if(len1 != len2) {
return false; }
2105 const Ch*
const str1 = GetString();
2106 const Ch*
const str2 = rhs.GetString();
2109 return (std::memcmp(
str1,
str2,
sizeof(
Ch) * len1) == 0);
2129template <
typename Encoding,
typename Allocator = MemoryPoolAllocator<>,
typename StackAllocator = CrtAllocator>
2132 typedef typename Encoding::Ch
Ch;
2163#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2166 :
ValueType(std::forward<ValueType>(rhs)),
2169 stack_(std::move(rhs.stack_)),
2173 rhs.ownAllocator_ = 0;
2182#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2195 stack_ = std::move(rhs.stack_);
2199 rhs.ownAllocator_ = 0;
2213 ValueType::Swap(rhs);
2223 using ValueType::Swap;
2244 template <
typename Generator>
2264 template <
unsigned parseFlags,
typename SourceEncoding,
typename InputStream>
2269 parseResult_ = reader.template Parse<parseFlags>(is, *
this);
2283 template <
unsigned parseFlags,
typename InputStream>
2285 return ParseStream<parseFlags, Encoding, InputStream>(is);
2293 template <
typename InputStream>
2295 return ParseStream<kParseDefaultFlags, Encoding, InputStream>(is);
2307 template <
unsigned parseFlags>
2310 return ParseStream<parseFlags | kParseInsituFlag>(
s);
2318 return ParseInsitu<kParseDefaultFlags>(
str);
2330 template <
unsigned parseFlags,
typename SourceEncoding>
2334 return ParseStream<parseFlags, SourceEncoding>(
s);
2341 template <
unsigned parseFlags>
2343 return Parse<parseFlags, Encoding>(
str);
2350 return Parse<kParseDefaultFlags>(
str);
2353 template <
unsigned parseFlags,
typename SourceEncoding>
2356 MemoryStream ms(
reinterpret_cast<const char*
>(
str), length *
sizeof(
typename SourceEncoding::Ch));
2358 ParseStream<parseFlags, SourceEncoding>(is);
2362 template <
unsigned parseFlags>
2364 return Parse<parseFlags, Encoding>(
str, length);
2368 return Parse<kParseDefaultFlags>(
str, length);
2371#if RAPIDJSON_HAS_STDSTRING
2372 template <
unsigned parseFlags,
typename SourceEncoding>
2375 return Parse<parseFlags, SourceEncoding>(
str.c_str());
2378 template <
unsigned parseFlags>
2380 return Parse<parseFlags, Encoding>(
str.c_str());
2384 return Parse<kParseDefaultFlags>(
str);
2473 stack_.template Top<ValueType>()->SetObjectRaw(members, memberCount,
GetAllocator());
2492 if (Allocator::kNeedFree)
2519template <
bool Const,
typename ValueT>
2525 typedef typename internal::MaybeAddConst<Const,PlainType>::Type
ValueType;
2531 template <
typename,
typename>
2547#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2556#if RAPIDJSON_HAS_CXX11_RANGE_FOR
2572template <
bool Const,
typename ValueT>
2578 typedef typename internal::MaybeAddConst<Const,PlainType>::Type
ValueType;
2584 typedef typename ValueType::Ch
Ch;
2586 template <
typename,
typename>
2598#if RAPIDJSON_HAS_STDSTRING
2605#if RAPIDJSON_HAS_STDSTRING
2611#if RAPIDJSON_HAS_STDSTRING
2616#if RAPIDJSON_HAS_STDSTRING
2620#if RAPIDJSON_HAS_CXX11_RVALUE_REFS
2631#if RAPIDJSON_HAS_STDSTRING
2639#if RAPIDJSON_HAS_STDSTRING
2644#if RAPIDJSON_HAS_CXX11_RANGE_FOR
#define s(x, c)
Definition: aesb.c:47
cryptonote::block b
Definition: block.cpp:40
const T buffer
Definition: byte_slice.cpp:83
Helper class for accessing Value of array type.
Definition: document.h:2520
RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr< internal::IsPointer< T >, internal::IsGenericValue< T > >),(const GenericArray &)) PushBack(T value
const ValueT * ConstValueIterator
Definition: document.h:2527
GenericArray PushBack(ValueType &value, AllocatorType &allocator) const
Definition: document.h:2546
ValueIterator End() const
Definition: document.h:2544
ValueIterator Begin() const
Definition: document.h:2543
void Clear() const
Definition: document.h:2541
SizeType Size() const
Definition: document.h:2538
GenericArray< false, ValueT > Array
Definition: document.h:2523
GenericArray Reserve(SizeType newCapacity, AllocatorType &allocator) const
Definition: document.h:2545
GenericArray & operator=(const GenericArray &rhs)
Definition: document.h:2535
GenericArray< true, ValueT > ConstArray
Definition: document.h:2522
ValueType::StringRefType StringRefType
Definition: document.h:2529
internal::MaybeAddConst< Const, PlainType >::Type ValueType
Definition: document.h:2525
~GenericArray()
Definition: document.h:2536
GenericArray(const GenericArray &rhs)
Definition: document.h:2534
SizeType Capacity() const
Definition: document.h:2539
ValueIterator Erase(ConstValueIterator first, ConstValueIterator last) const
Definition: document.h:2554
GenericArray PushBack(StringRefType value, AllocatorType &allocator) const
Definition: document.h:2550
ValueT PlainType
Definition: document.h:2524
ValueIterator Erase(ConstValueIterator pos) const
Definition: document.h:2553
GenericArray(ValueType &value)
Definition: document.h:2563
bool Empty() const
Definition: document.h:2540
ValueType::AllocatorType AllocatorType
Definition: document.h:2528
ValueType & value_
Definition: document.h:2564
ValueType & operator[](SizeType index) const
Definition: document.h:2542
ValueType * ValueIterator
Definition: document.h:2526
GenericArray PopBack() const
Definition: document.h:2552
A document for parsing JSON text as DOM.
Definition: document.h:2130
friend void swap(GenericDocument &a, GenericDocument &b) RAPIDJSON_NOEXCEPT
free-standing swap function helper
Definition: document.h:2237
Allocator & GetAllocator()
Get the allocator of this document.
Definition: document.h:2418
GenericDocument & ParseInsitu(Ch *str)
Parse JSON text from a mutable string.
Definition: document.h:2308
bool EndArray(SizeType elementCount)
Definition: document.h:2479
GenericDocument & Swap(GenericDocument &rhs) RAPIDJSON_NOEXCEPT
Exchange the contents of this document with those of another.
Definition: document.h:2212
Allocator AllocatorType
Allocator type from template parameter.
Definition: document.h:2134
GenericDocument & Parse(const Ch *str)
Parse JSON text from a read-only string.
Definition: document.h:2342
GenericDocument(Type type, Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)
Constructor.
Definition: document.h:2143
GenericDocument & Parse(const Ch *str, size_t length)
Definition: document.h:2363
bool EndObject(SizeType memberCount)
Definition: document.h:2471
ParseResult parseResult_
Definition: document.h:2508
bool Bool(bool b)
Definition: document.h:2444
bool Uint64(uint64_t i)
Definition: document.h:2448
bool HasParseError() const
Whether a parse error has occurred in the last parsing.
Definition: document.h:2394
bool Uint(unsigned i)
Definition: document.h:2446
GenericDocument & ParseStream(InputStream &is)
Parse JSON text from an input stream.
Definition: document.h:2284
GenericDocument(const GenericDocument &)
Prohibit copying.
bool Key(const Ch *str, SizeType length, bool copy)
Definition: document.h:2469
GenericDocument(Allocator *allocator=0, size_t stackCapacity=kDefaultStackCapacity, StackAllocator *stackAllocator=0)
Constructor.
Definition: document.h:2156
Encoding::Ch Ch
Character type derived from Encoding.
Definition: document.h:2132
GenericDocument & operator=(const GenericDocument &)
Prohibit assignment.
GenericDocument & ParseStream(InputStream &is)
Parse JSON text from an input stream (with kParseDefaultFlags)
Definition: document.h:2294
GenericDocument & Parse(const Ch *str, size_t length)
Definition: document.h:2367
GenericDocument & ParseStream(InputStream &is)
Parse JSON text from an input stream (with Encoding conversion)
Definition: document.h:2265
bool Null()
Definition: document.h:2443
GenericValue< Encoding, Allocator > ValueType
Value type of the document.
Definition: document.h:2133
bool Int(int i)
Definition: document.h:2445
GenericDocument & Parse(const typename SourceEncoding::Ch *str)
Parse JSON text from a read-only string (with Encoding conversion)
Definition: document.h:2331
static const size_t kDefaultStackCapacity
Definition: document.h:2504
bool Int64(int64_t i)
Definition: document.h:2447
bool Double(double d)
Definition: document.h:2449
ParseErrorCode GetParseError() const
Get the ParseErrorCode of last parsing.
Definition: document.h:2397
Allocator * allocator_
Definition: document.h:2505
GenericDocument & ParseInsitu(Ch *str)
Parse JSON text from a mutable string (with kParseDefaultFlags)
Definition: document.h:2317
size_t GetStackCapacity() const
Get the capacity of stack in bytes.
Definition: document.h:2424
void ClearStack()
Definition: document.h:2491
~GenericDocument()
Definition: document.h:2178
bool StartObject()
Definition: document.h:2467
GenericDocument & Populate(Generator &g)
Populate this document by a generator which produces SAX events.
Definition: document.h:2245
internal::Stack< StackAllocator > stack_
Definition: document.h:2507
bool String(const Ch *str, SizeType length, bool copy)
Definition: document.h:2459
void Destroy()
Definition: document.h:2500
Allocator * ownAllocator_
Definition: document.h:2506
bool StartArray()
Definition: document.h:2477
size_t GetErrorOffset() const
Get the position of last parsing error in input, 0 otherwise.
Definition: document.h:2400
GenericDocument & Parse(const typename SourceEncoding::Ch *str, size_t length)
Definition: document.h:2354
bool RawNumber(const Ch *str, SizeType length, bool copy)
Definition: document.h:2451
GenericDocument & Parse(const Ch *str)
Parse JSON text from a read-only string (with kParseDefaultFlags)
Definition: document.h:2349
(Constant) member iterator for a JSON object value
Definition: document.h:99
internal::MaybeAddConst< Const, PlainType >::Type ValueType
Definition: document.h:105
ValueType & reference
Definition: document.h:119
bool operator==(ConstIterator that) const
Definition: document.h:175
GenericMemberIterator(const NonConstIterator &it)
Iterator conversions to more const.
Definition: document.h:153
GenericMemberIterator()
Default constructor (singular value)
Definition: document.h:135
bool operator!=(ConstIterator that) const
Definition: document.h:176
Iterator & operator=(const NonConstIterator &it)
Definition: document.h:154
Iterator operator-(DifferenceType n) const
Definition: document.h:167
std::random_access_iterator_tag iterator_category
Definition: document.h:121
Iterator & operator++()
Definition: document.h:158
Reference operator[](DifferenceType n) const
Definition: document.h:187
Iterator operator--(int)
Definition: document.h:161
Iterator operator+(DifferenceType n) const
Definition: document.h:166
Reference operator*() const
Definition: document.h:185
bool operator<=(ConstIterator that) const
Definition: document.h:177
Iterator & operator+=(DifferenceType n)
Definition: document.h:169
GenericMemberIterator(Pointer p)
Internal constructor from plain pointer.
Definition: document.h:195
ValueType value_type
Definition: document.h:117
ValueType * pointer
Definition: document.h:118
bool operator>=(ConstIterator that) const
Definition: document.h:178
reference Reference
Reference to (const) GenericMember.
Definition: document.h:127
Iterator operator++(int)
Definition: document.h:160
Pointer ptr_
raw pointer
Definition: document.h:197
Iterator & operator-=(DifferenceType n)
Definition: document.h:170
difference_type DifferenceType
Signed integer type (e.g. ptrdiff_t)
Definition: document.h:129
GenericMemberIterator< false, Encoding, Allocator > NonConstIterator
Non-constant iterator type.
Definition: document.h:113
Pointer operator->() const
Definition: document.h:186
pointer Pointer
Pointer to (const) GenericMember.
Definition: document.h:125
GenericMember< Encoding, Allocator > PlainType
Definition: document.h:104
bool operator<(ConstIterator that) const
Definition: document.h:179
GenericMemberIterator Iterator
Iterator type itself.
Definition: document.h:109
DifferenceType operator-(ConstIterator that) const
Distance.
Definition: document.h:191
Iterator & operator--()
Definition: document.h:159
GenericMemberIterator< true, Encoding, Allocator > ConstIterator
Constant iterator type.
Definition: document.h:111
bool operator>(ConstIterator that) const
Definition: document.h:180
std::ptrdiff_t difference_type
Definition: document.h:120
Helper class for accessing Value of object type.
Definition: document.h:2573
MemberIterator RemoveMember(MemberIterator m) const
Definition: document.h:2635
ValueType::AllocatorType AllocatorType
Definition: document.h:2581
GenericObject AddMember(StringRefType name, ValueType &value, AllocatorType &allocator) const
Definition: document.h:2626
SizeType MemberCapacity() const
Definition: document.h:2594
bool HasMember(const GenericValue< EncodingType, SourceAllocator > &name) const
Definition: document.h:2608
GenericObject(const GenericObject &rhs)
Definition: document.h:2589
void RemoveAllMembers()
Definition: document.h:2629
MemberIterator FindMember(const GenericValue< EncodingType, SourceAllocator > &name) const
Definition: document.h:2610
T value
Definition: document.h:2619
SizeType MemberCount() const
Definition: document.h:2593
GenericMemberIterator< Const, typename ValueT::EncodingType, typename ValueT::AllocatorType > MemberIterator
Definition: document.h:2579
ValueType & operator[](const GenericValue< EncodingType, SourceAllocator > &name) const
Definition: document.h:2597
ValueType & value_
Definition: document.h:2652
MemberIterator EraseMember(ConstMemberIterator pos) const
Definition: document.h:2636
ValueType & operator[](T *name) const
Definition: document.h:2596
GenericObject AddMember(ValueType &name, ValueType &value, AllocatorType &allocator) const
Definition: document.h:2614
GenericObject AddMember(StringRefType name, StringRefType value, AllocatorType &allocator) const
Definition: document.h:2627
ValueT PlainType
Definition: document.h:2577
bool EraseMember(const GenericValue< EncodingType, SourceAllocator > &name) const
Definition: document.h:2642
GenericObject(ValueType &value)
Definition: document.h:2651
MemberIterator EraseMember(ConstMemberIterator first, ConstMemberIterator last) const
Definition: document.h:2637
MemberIterator MemberEnd() const
Definition: document.h:2602
~GenericObject()
Definition: document.h:2591
bool RemoveMember(const GenericValue< EncodingType, SourceAllocator > &name) const
Definition: document.h:2634
internal::MaybeAddConst< Const, PlainType >::Type ValueType
Definition: document.h:2578
ValueType::EncodingType EncodingType
Definition: document.h:2583
MemberIterator FindMember(const Ch *name) const
Definition: document.h:2609
RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr< internal::IsPointer< T >, internal::IsGenericValue< T > >),(ValueType &)) AddMember(ValueType &name
GenericObject & operator=(const GenericObject &rhs)
Definition: document.h:2590
bool HasMember(const Ch *name) const
Definition: document.h:2604
ValueType::StringRefType StringRefType
Definition: document.h:2582
bool ObjectEmpty() const
Definition: document.h:2595
ValueType::Ch Ch
Definition: document.h:2584
GenericObject AddMember(ValueType &name, StringRefType value, AllocatorType &allocator) const
Definition: document.h:2615
GenericObject< false, ValueT > Object
Definition: document.h:2576
bool RemoveMember(const Ch *name) const
Definition: document.h:2630
GenericObject< true, ValueT > ConstObject
Definition: document.h:2575
bool EraseMember(const Ch *name) const
Definition: document.h:2638
GenericMemberIterator< true, typename ValueT::EncodingType, typename ValueT::AllocatorType > ConstMemberIterator
Definition: document.h:2580
MemberIterator MemberBegin() const
Definition: document.h:2601
RAPIDJSON_DISABLEIF_RETURN((internal::OrExpr< internal::IsPointer< T >, internal::IsGenericValue< T > >),(GenericObject)) AddMember(StringRefType name
GenericObject MemberReserve(SizeType newCapacity, AllocatorType &allocator) const
Definition: document.h:2603
SAX-style JSON parser. Use Reader for UTF8 encoding and default allocator.
Definition: reader.h:537
Represents a JSON value. Use Value for UTF8 encoding and default allocator.
Definition: document.h:575
GenericValue(T b, RAPIDJSON_ENABLEIF((internal::IsSame< bool, T >))) RAPIDJSON_NOEXCEPT
Constructor for boolean value.
Definition: document.h:698
void SetStringRaw(StringRefType s) RAPIDJSON_NOEXCEPT
Initialize this value as constant string, without calling destructor.
Definition: document.h:2066
GenericArray< false, ValueType > Array
Definition: document.h:588
static const SizeType kDefaultArrayCapacity
Definition: document.h:1938
RAPIDJSON_FORCEINLINE GenericValue * SetElementsPointer(GenericValue *elements)
Definition: document.h:2025
~GenericValue()
Destructor.
Definition: document.h:797
GenericValue(double d) RAPIDJSON_NOEXCEPT
Constructor for double value.
Definition: document.h:748
void SetObjectRaw(Member *members, SizeType count, Allocator &allocator)
Initialize this value as object with initial data, without calling destructor.
Definition: document.h:2048
static const SizeType kDefaultObjectCapacity
Definition: document.h:1939
Encoding EncodingType
Encoding type from template parameter.
Definition: document.h:579
GenericValue & operator=(StringRefType str) RAPIDJSON_NOEXCEPT
Assignment of constant string reference (no copy)
Definition: document.h:852
GenericStringRef< Ch > StringRefType
Reference to a constant string.
Definition: document.h:582
GenericMemberIterator< false, Encoding, Allocator >::Iterator MemberIterator
Member iterator for iterating in object.
Definition: document.h:583
RAPIDJSON_FORCEINLINE GenericValue * GetElementsPointer() const
Definition: document.h:2024
GenericValue< Encoding, Allocator > ValueType
Value type of itself.
Definition: document.h:587
const GenericValue * ConstValueIterator
Constant value iterator for iterating in array.
Definition: document.h:586
RAPIDJSON_DISABLEIF_RETURN((internal::IsPointer< T >),(GenericValue &)) operator
Assignment with primitive types.
GenericValue(const Ch *s, SizeType length) RAPIDJSON_NOEXCEPT
Constructor for constant string (i.e. do not make a copy of string)
Definition: document.h:754
GenericObject< true, ValueType > ConstObject
Definition: document.h:591
RAPIDJSON_FORCEINLINE Member * SetMembersPointer(Member *members)
Definition: document.h:2027
GenericValue(const GenericValue< Encoding, SourceAllocator > &rhs, Allocator &allocator, bool copyConstStrings=false)
Explicit copy constructor (with allocator)
Definition: document.h:649
Allocator AllocatorType
Allocator type from template parameter.
Definition: document.h:580
GenericMember< Encoding, Allocator > Member
Name-value pair in an object.
Definition: document.h:578
GenericValue(Type type) RAPIDJSON_NOEXCEPT
Constructor with JSON value type.
Definition: document.h:627
RAPIDJSON_FORCEINLINE Member * GetMembersPointer() const
Definition: document.h:2026
GenericArray< true, ValueType > ConstArray
Definition: document.h:589
void SetArrayRaw(GenericValue *values, SizeType count, Allocator &allocator)
Definition: document.h:2030
GenericValue(Array a) RAPIDJSON_NOEXCEPT
Constructor for Array.
Definition: document.h:778
GenericValue(int64_t i64) RAPIDJSON_NOEXCEPT
Constructor for int64_t value.
Definition: document.h:721
GenericValue(unsigned u) RAPIDJSON_NOEXCEPT
Constructor for unsigned value.
Definition: document.h:715
GenericValue(const Ch *s, Allocator &allocator)
Constructor for copy-string (i.e. do make a copy of string)
Definition: document.h:763
GenericValue(Object o) RAPIDJSON_NOEXCEPT
Constructor for Object.
Definition: document.h:789
GenericValue(const Ch *s, SizeType length, Allocator &allocator)
Constructor for copy-string (i.e. do make a copy of string)
Definition: document.h:760
GenericMemberIterator< true, Encoding, Allocator >::Iterator ConstMemberIterator
Constant member iterator for iterating in object.
Definition: document.h:584
Data data_
Definition: document.h:2112
GenericValue(int i) RAPIDJSON_NOEXCEPT
Constructor for int value.
Definition: document.h:709
GenericValue() RAPIDJSON_NOEXCEPT
Default constructor creates a null value.
Definition: document.h:597
friend class GenericDocument
Definition: document.h:1905
RAPIDJSON_FORCEINLINE const Ch * SetStringPointer(const Ch *str)
Definition: document.h:2023
GenericValue(StringRefType s) RAPIDJSON_NOEXCEPT
Constructor for constant string (i.e. do not make a copy of string)
Definition: document.h:757
void RawAssign(GenericValue &rhs) RAPIDJSON_NOEXCEPT
Assignment without calling destructor.
Definition: document.h:2090
@ kCopyStringFlag
Definition: document.h:1930
@ kCopyFlag
Definition: document.h:1916
@ kNumberDoubleFlag
Definition: document.h:1927
@ kConstStringFlag
Definition: document.h:1929
@ kFalseFlag
Definition: document.h:1922
@ kDoubleFlag
Definition: document.h:1914
@ kTrueFlag
Definition: document.h:1921
@ kTypeMask
Definition: document.h:1935
@ kUintFlag
Definition: document.h:1911
@ kInt64Flag
Definition: document.h:1912
@ kNullFlag
Definition: document.h:1920
@ kNumberFlag
Definition: document.h:1909
@ kNumberUint64Flag
Definition: document.h:1926
@ kNumberAnyFlag
Definition: document.h:1928
@ kObjectFlag
Definition: document.h:1932
@ kBoolFlag
Definition: document.h:1908
@ kUint64Flag
Definition: document.h:1913
@ kShortStringFlag
Definition: document.h:1931
@ kNumberIntFlag
Definition: document.h:1923
@ kNumberInt64Flag
Definition: document.h:1925
@ kIntFlag
Definition: document.h:1910
@ kInlineStrFlag
Definition: document.h:1917
@ kNumberUintFlag
Definition: document.h:1924
@ kStringFlag
Definition: document.h:1915
@ kArrayFlag
Definition: document.h:1933
GenericValue(const GenericValue &rhs)
Copy constructor is not permitted.
GenericValue(float f) RAPIDJSON_NOEXCEPT
Constructor for float value.
Definition: document.h:751
GenericValue(uint64_t u64) RAPIDJSON_NOEXCEPT
Constructor for uint64_t value.
Definition: document.h:736
void SetStringRaw(StringRefType s, Allocator &allocator)
Initialize this value as copy string with initial data, without calling destructor.
Definition: document.h:2073
bool StringEqual(const GenericValue< Encoding, SourceAllocator > &rhs) const
Definition: document.h:2097
GenericValue & operator=(GenericValue &rhs) RAPIDJSON_NOEXCEPT
Assignment with move semantics.
Definition: document.h:833
Encoding::Ch Ch
Character type derived from Encoding.
Definition: document.h:581
GenericValue * ValueIterator
Value iterator for iterating in array.
Definition: document.h:585
GenericObject< false, ValueType > Object
Definition: document.h:590
RAPIDJSON_FORCEINLINE const Ch * GetStringPointer() const
Definition: document.h:2022
A type-unsafe stack for storing different types of data.
Definition: stack.h:36
void Clear()
Definition: stack.h:98
void ShrinkToFit()
Definition: stack.h:100
void Swap(Stack &rhs) RAPIDJSON_NOEXCEPT
Definition: stack.h:89
bool HasAllocator() const
Definition: stack.h:167
size_t GetCapacity() const
Definition: stack.h:178
Allocator & GetAllocator()
Definition: stack.h:171
size_t GetSize() const
Definition: stack.h:177
Concept for allocating, resizing and freeing memory block.
Concept for encoding of Unicode characters.
Concept for receiving events from GenericReader upon parsing. The functions return true if no error o...
GenericValue< UTF8<> > Value
GenericValue with UTF8 encoding.
Definition: document.h:2116
GenericStringRef< CharType > StringRef(const CharType *str)
Mark a character pointer as constant string.
Definition: document.h:361
GenericDocument< UTF8<> > Document
GenericDocument with UTF8 encoding.
Definition: document.h:2512
bool operator!=(expect< T > const &lhs, expect< U > const &rhs) noexcept(noexcept(lhs.equal(rhs)))
Definition: expect.h:423
bool operator==(expect< T > const &lhs, expect< U > const &rhs) noexcept(noexcept(lhs.equal(rhs)))
Definition: expect.h:402
int * count
Definition: gmock_stress_test.cc:176
#define RAPIDJSON_LIKELY(x)
Compiler branching hint for expression with high probability to be true.
Definition: rapidjson.h:468
#define RAPIDJSON_UNLIKELY(x)
Compiler branching hint for expression with low probability to be true.
Definition: rapidjson.h:481
#define RAPIDJSON_ASSERT(x)
Assertion.
Definition: rapidjson.h:411
#define RAPIDJSON_NAMESPACE_BEGIN
provide custom rapidjson namespace (opening expression)
Definition: rapidjson.h:121
#define RAPIDJSON_NAMESPACE_END
provide custom rapidjson namespace (closing expression)
Definition: rapidjson.h:124
ParseErrorCode
Error code of parsing.
Definition: error.h:64
#define const
Definition: ipfrdr.c:80
list first
Definition: compare.py:8
Definition: document.h:406
void Swap(T &a, T &b) RAPIDJSON_NOEXCEPT
Custom swap() to avoid dependency on C++ <algorithm> header.
Definition: swap.h:33
SizeType StrLen(const Ch *s)
Custom strlen() which works on different character types.
Definition: strfunc.h:31
int i
Definition: pymoduletest.py:23
e
Definition: pymoduletest.py:79
miniupnpc u
Definition: pymoduletest.py:20
GTEST_API_ bool IsTrue(bool condition)
Definition: gtest.cc:4986
PolymorphicMatcher< internal::IsNullMatcher > IsNull()
Definition: gmock-matchers.h:3795
const char * name
Definition: options.c:30
const GenericPointer< typename T::ValueType > T2 value
Definition: pointer.h:1225
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1124
const char *const str
Definition: portlistingparse.c:23
static const struct @24 elements[]
#define RAPIDJSON_SETPOINTER(type, p, x)
Definition: rapidjson.h:323
Type
Type of JSON value.
Definition: rapidjson.h:623
@ kFalseType
false
Definition: rapidjson.h:625
@ kObjectType
object
Definition: rapidjson.h:627
@ kTrueType
true
Definition: rapidjson.h:626
@ kStringType
string
Definition: rapidjson.h:629
@ kNullType
null
Definition: rapidjson.h:624
@ kArrayType
array
Definition: rapidjson.h:628
@ kNumberType
number
Definition: rapidjson.h:630
#define RAPIDJSON_DELETE(x)
! customization point for global delete
Definition: rapidjson.h:610
RAPIDJSON_NAMESPACE_BEGIN typedef unsigned SizeType
Size type (for string lengths, array sizes, etc.)
Definition: rapidjson.h:389
#define RAPIDJSON_UINT64_C2(high32, low32)
Construct a 64-bit literal by a pair of 32-bit integer.
Definition: rapidjson.h:294
#define RAPIDJSON_GETPOINTER(type, p)
Definition: rapidjson.h:324
#define RAPIDJSON_NEW(TypeName)
! customization point for global new
Definition: rapidjson.h:606
#define RAPIDJSON_STATIC_ASSERT(x)
(Internal) macro to check for conditions at compile-time
Definition: rapidjson.h:450
@ kParseInsituFlag
In-situ(destructive) parsing.
Definition: reader.h:147
#define Ch(x, y, z)
Definition: sha512-blocks.c:34
int bool
Definition: stdbool.h:35
#define true
Definition: stdbool.h:36
#define false
Definition: stdbool.h:37
unsigned short uint16_t
Definition: stdint.h:125
signed __int64 int64_t
Definition: stdint.h:135
unsigned __int64 uint64_t
Definition: stdint.h:136
Definition: document.h:2428
ClearStackOnExit & operator=(const ClearStackOnExit &)
GenericDocument & d_
Definition: document.h:2434
ClearStackOnExit(GenericDocument &d)
Definition: document.h:2429
~ClearStackOnExit()
Definition: document.h:2430
ClearStackOnExit(const ClearStackOnExit &)
A read-write string stream.
Definition: stream.h:188
Name-value pair in a JSON object value.
Definition: document.h:69
GenericValue< Encoding, Allocator > name
name of member (must be a string)
Definition: document.h:70
GenericValue< Encoding, Allocator > value
value of member.
Definition: document.h:71
Reference to a constant string (not taking a copy)
Definition: document.h:253
GenericStringRef & operator=(const GenericStringRef &rhs)
Copy assignment operator not permitted - immutable type.
CharType Ch
character type of the string
Definition: document.h:254
const SizeType length
length of the string (excluding the trailing NULL terminator)
Definition: document.h:327
GenericStringRef< CharType > StringRef(const CharType *str, size_t length)
Mark a character pointer as constant string.
Definition: document.h:381
GenericStringRef(const CharType *str, SizeType len)
Create constant string reference from pointer and length.
Definition: document.h:318
GenericStringRef(const CharType *str)
Explicitly create string reference from const character pointer.
Definition: document.h:306
GenericStringRef< CharType > StringRef(const CharType *str)
Mark a character pointer as constant string.
Definition: document.h:361
GenericStringRef(const CharType(&str)[N]) RAPIDJSON_NOEXCEPT
Create string reference from const character array.
Definition: document.h:282
GenericStringRef(const GenericStringRef &rhs)
Definition: document.h:321
GenericStringRef(CharType(&str)[N])
Disallow construction from non-const array.
const Ch *const s
plain CharType pointer
Definition: document.h:326
static const Ch emptyString[]
Empty string - used when passing in a NULL pointer.
Definition: document.h:336
SizeType NotNullStrLen(const CharType *str)
Definition: document.h:330
Read-only string stream.
Definition: stream.h:154
Definition: document.h:2007
SizeType capacity
Definition: document.h:2009
SizeType size
Definition: document.h:2008
GenericValue * elements
Definition: document.h:2010
Definition: document.h:1941
uint16_t flags
Definition: document.h:1949
char payload[sizeof(SizeType) *2+sizeof(void *)+2]
Definition: document.h:1947
Definition: document.h:1978
int i
Definition: document.h:1979
char padding[4]
Definition: document.h:1980
Definition: document.h:1982
unsigned u
Definition: document.h:1983
char padding2[4]
Definition: document.h:1984
Definition: document.h:2001
Member * members
Definition: document.h:2004
SizeType capacity
Definition: document.h:2003
SizeType size
Definition: document.h:2002
Definition: document.h:1966
@ MaxChars
Definition: document.h:1967
@ MaxSize
Definition: document.h:1967
@ LenPos
Definition: document.h:1967
Ch str[MaxChars]
Definition: document.h:1968
SizeType GetLength() const
Definition: document.h:1972
static bool Usable(SizeType len)
Definition: document.h:1970
void SetLength(SizeType len)
Definition: document.h:1971
Definition: document.h:1952
const Ch * str
Definition: document.h:1955
SizeType hashcode
reserved
Definition: document.h:1954
SizeType length
Definition: document.h:1953
Represents an in-memory input byte stream.
Definition: memorystream.h:40
Result of parsing (wraps ParseErrorCode)
Definition: error.h:106
ParseErrorCode Code() const
Get the error code.
Definition: error.h:116
bool IsError() const
Whether the result is an error.
Definition: error.h:123
size_t Offset() const
Get the error offset, if IsError(), 0 otherwise.
Definition: error.h:118
Definition: document.h:409
Definition: document.h:416
static bool Is(const ValueType &v)
Definition: document.h:430
static ValueType & Set(ValueType &v, bool data, typename ValueType::AllocatorType &)
Definition: document.h:433
static ValueType & Set(ValueType &v, bool data)
Definition: document.h:432
static bool Get(const ValueType &v)
Definition: document.h:431
static StringType Get(const ValueType &v)
Definition: document.h:508
static ValueType & Set(ValueType &v, const StringType data)
Definition: document.h:509
static ValueType & Set(ValueType &v, const StringType data, typename ValueType::AllocatorType &a)
Definition: document.h:510
const ValueType::Ch * StringType
Definition: document.h:506
static bool Is(const ValueType &v)
Definition: document.h:507
static ValueType & Set(ValueType &v, double data, typename ValueType::AllocatorType &)
Definition: document.h:493
static bool Is(const ValueType &v)
Definition: document.h:490
static ValueType & Set(ValueType &v, double data)
Definition: document.h:492
static double Get(const ValueType &v)
Definition: document.h:491
static bool Is(const ValueType &v)
Definition: document.h:498
static ValueType & Set(ValueType &v, float data)
Definition: document.h:500
static float Get(const ValueType &v)
Definition: document.h:499
static ValueType & Set(ValueType &v, float data, typename ValueType::AllocatorType &)
Definition: document.h:501
static ValueType & Set(ValueType &v, int64_t data, typename ValueType::AllocatorType &)
Definition: document.h:477
static ValueType & Set(ValueType &v, int64_t data)
Definition: document.h:476
static bool Is(const ValueType &v)
Definition: document.h:474
static int64_t Get(const ValueType &v)
Definition: document.h:475
static ValueType & Set(ValueType &v, int data, typename ValueType::AllocatorType &)
Definition: document.h:441
static ValueType & Set(ValueType &v, int data)
Definition: document.h:440
static int Get(const ValueType &v)
Definition: document.h:439
static bool Is(const ValueType &v)
Definition: document.h:438
static ArrayType Get(ValueType &v)
Definition: document.h:527
static bool Is(const ValueType &v)
Definition: document.h:526
static ValueType & Set(ValueType &v, ArrayType data)
Definition: document.h:528
static ValueType & Set(ValueType &v, ArrayType data, typename ValueType::AllocatorType &)
Definition: document.h:529
ValueType::Array ArrayType
Definition: document.h:525
static ArrayType Get(const ValueType &v)
Definition: document.h:536
static bool Is(const ValueType &v)
Definition: document.h:535
ValueType::ConstArray ArrayType
Definition: document.h:534
static bool Is(const ValueType &v)
Definition: document.h:551
ValueType::ConstObject ObjectType
Definition: document.h:550
static ObjectType Get(const ValueType &v)
Definition: document.h:552
static ValueType & Set(ValueType &v, ObjectType data)
Definition: document.h:544
static bool Is(const ValueType &v)
Definition: document.h:542
ValueType::Object ObjectType
Definition: document.h:541
static ObjectType Get(ValueType &v)
Definition: document.h:543
static ValueType & Set(ValueType &v, ObjectType data, typename ValueType::AllocatorType &)
Definition: document.h:545
static uint64_t Get(const ValueType &v)
Definition: document.h:483
static bool Is(const ValueType &v)
Definition: document.h:482
static ValueType & Set(ValueType &v, uint64_t data, typename ValueType::AllocatorType &)
Definition: document.h:485
static ValueType & Set(ValueType &v, uint64_t data)
Definition: document.h:484
static ValueType & Set(ValueType &v, unsigned data)
Definition: document.h:448
static unsigned Get(const ValueType &v)
Definition: document.h:447
static bool Is(const ValueType &v)
Definition: document.h:446
static ValueType & Set(ValueType &v, unsigned data, typename ValueType::AllocatorType &)
Definition: document.h:449
Definition: document.h:426
Definition: blockchain_usage.cpp:72
std::string data
Definition: base58.cpp:37
const char * str1
Definition: testupnpdescgen.c:131
const char * str2
Definition: testupnpdescgen.c:132
Definition: document.h:2013
Number n
Definition: document.h:2016
ShortString ss
Definition: document.h:2015
String s
Definition: document.h:2014
Flag f
Definition: document.h:2019
ArrayData a
Definition: document.h:2018
ObjectData o
Definition: document.h:2017
Definition: document.h:1976
struct GenericValue::Number::I i
uint64_t u64
Definition: document.h:1997
struct GenericValue::Number::U u
double d
Definition: document.h:1998
int64_t i64
Definition: document.h:1996