cocos2d-x  2.2.3
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GenericValue< Encoding, Allocator > Class Template Reference

Represents a JSON value. Use Value for UTF8 encoding and default allocator. More...

#include <document.h>

Inheritance diagram for GenericValue< Encoding, Allocator >:
GenericDocument< Encoding, Allocator >

Classes

struct  Member
 Name-value pair in an object. More...
 

Public Types

typedef Encoding EncodingType
 Encoding type from template parameter. More...
 
typedef Allocator AllocatorType
 Allocator type from template parameter. More...
 
typedef Encoding::Ch Ch
 Character type derived from Encoding. More...
 
typedef MemberMemberIterator
 Member iterator for iterating in object. More...
 
typedef const MemberConstMemberIterator
 Constant member iterator for iterating in object. More...
 
typedef GenericValueValueIterator
 Value iterator for iterating in array. More...
 
typedef const GenericValueConstValueIterator
 Constant value iterator for iterating in array. More...
 

Public Member Functions

template<typename Handler >
const GenericValueAccept (Handler &handler) const
 Generate events of this value to a Handler. More...
 
Assignment operators
GenericValueoperator= (GenericValue &rhs)
 Assignment with move semantics. More...
 
template<typename T >
GenericValueoperator= (T value)
 Assignment with primitive types. More...
 
local operator= ( local value)
Type
Type GetType () const
bool IsNull () const
bool IsFalse () const
bool IsTrue () const
bool IsBool () const
bool IsObject () const
bool IsArray () const
bool IsNumber () const
bool IsInt () const
bool IsUint () const
bool IsInt64 () const
bool IsUint64 () const
bool IsDouble () const
bool IsString () const
Null
GenericValueSetNull ()
Bool
bool GetBool () const
GenericValueSetBool (bool b)
Object
GenericValueSetObject ()
 Set this value as an empty object. More...
 
GenericValueoperator[] (const Ch *name)
 Get the value associated with the object's name. More...
 
const GenericValueoperator[] (const Ch *name) const
ConstMemberIterator MemberonBegin () const
 Member iterators. More...
 
ConstMemberIterator MemberonEnd () const
MemberIterator MemberonBegin ()
MemberIterator MemberonEnd ()
bool HasMember (const Ch *name) const
 Check whether a member exists in the object. More...
 
GenericValueAddMember (GenericValue &name, GenericValue &value, Allocator &allocator)
 Add a member (name-value pair) to the object. More...
 
GenericValueAddMember (const Ch *name, Allocator &nameAllocator, GenericValue &value, Allocator &allocator)
GenericValueAddMember (const Ch *name, GenericValue &value, Allocator &allocator)
template<typename T >
GenericValueAddMember (const Ch *name, T value, Allocator &allocator)
local AddMember ( local name, local value, local allocator)
bool RemoveMember (const Ch *name)
 Remove a member in object by its name. More...
 
Array
GenericValueSetArray ()
 Set this value as an empty array. More...
 
SizeType Size () const
 Get the number of elements in array. More...
 
SizeType Capacity () const
 Get the capacity of array. More...
 
bool Empty () const
 Check whether the array is empty. More...
 
void Clear ()
 Remove all elements in the array. More...
 
GenericValueoperator[] (SizeType index)
 Get an element from array by index. More...
 
const GenericValueoperator[] (SizeType index) const
ValueIterator onBegin ()
 Element iterator. More...
 
ValueIterator onEnd ()
ConstValueIterator onBegin () const
ConstValueIterator onEnd () const
GenericValueReserve (SizeType newCapacity, Allocator &allocator)
 Request the array to have enough capacity to store elements. More...
 
GenericValuePushBack (GenericValue &value, Allocator &allocator)
 Append a value at the end of the array. More...
 
template<typename T >
GenericValuePushBack (T value, Allocator &allocator)
var PushBack ( var value, var allocator)
local PushBack ( local value, local allocator)
GenericValuePopBack ()
 Remove the last element in the array. More...
 
Number
int GetInt () const
unsigned GetUint () const
int64_t GetInt64 () const
uint64_t GetUint64 () const
double GetDouble () const
GenericValueSetInt (int i)
GenericValueSetUint (unsigned u)
GenericValueSetInt64 (int64_t i64)
GenericValueSetUint64 (uint64_t u64)
GenericValueSetDouble (double d)
String
const ChGetString () const
SizeType GetStringLength () const
 Get the length of string. More...
 
GenericValueSetString (const Ch *s, SizeType length)
 Set this value as a string without copying source string. More...
 
GenericValueSetString (const Ch *s)
 Set this value as a string without copying source string. More...
 
GenericValueSetString (const Ch *s, SizeType length, Allocator &allocator)
 Set this value as a string by copying from source string. More...
 
GenericValueSetString (const Ch *s, Allocator &allocator)
 Set this value as a string by copying from source string. More...
 

Friends

template<typename , typename >
class GenericDocument

Constructors and destructor.

 GenericValue ()
 Default constructor creates a null value. More...
 
 GenericValue (Type type)
 Constructor with JSON value type. More...
 
 GenericValue (bool b)
 Constructor for boolean value. More...
 
 GenericValue (int i)
 Constructor for int value. More...
 
 GenericValue (unsigned u)
 Constructor for unsigned value. More...
 
 GenericValue (int64_t i64)
 Constructor for int64_t value. More...
 
 GenericValue (uint64_t u64)
 Constructor for uint64_t value. More...
 
 GenericValue (double d)
 Constructor for double value. More...
 
 GenericValue (const Ch *s, SizeType length)
 Constructor for constant string (i.e. do not make a copy of string) More...
 
 GenericValue (const Ch *s)
 Constructor for constant string (i.e. do not make a copy of string) More...
 
 GenericValue (const Ch *s, SizeType length, Allocator &allocator)
 Constructor for copy-string (i.e. do make a copy of string) More...
 
 GenericValue (const Ch *s, Allocator &allocator)
 Constructor for copy-string (i.e. do make a copy of string) More...
 
 ~GenericValue ()
 Destructor. More...
 

Detailed Description

template<typename Encoding, typename Allocator = MemoryPoolAllocator<>>
class rapidjson::GenericValue< Encoding, Allocator >

Represents a JSON value. Use Value for UTF8 encoding and default allocator.

A JSON value can be one of 7 types. This class is a variant type supporting these types.

Use the Value if UTF8 and default allocator

Template Parameters
EncodingEncoding of the value. (Even non-string values need to have the same encoding in a document)
AllocatorAllocator type for allocating memory of object, array and string.

Member Typedef Documentation

Allocator type from template parameter.

typedef Encoding::Ch Ch

Character type derived from Encoding.

typedef const Member*
ConstMemberIterator

Constant member iterator for iterating in object.

Constant value iterator for iterating in array.

Encoding type from template parameter.

Member iterator for iterating in object.

Value iterator for iterating in array.

Constructor & Destructor Documentation

GenericValue ( )
inline

Default constructor creates a null value.

GenericValue ( Type  type)
inline

Constructor with JSON value type.

This creates a Value of specified type with default content.

Parameters
typeType of the value.
Note
Default content for number is zero.
GenericValue ( bool  b)
inline

Constructor for boolean value.

GenericValue ( int  i)
inline

Constructor for int value.

GenericValue ( unsigned  u)
inline

Constructor for unsigned value.

GenericValue ( int64_t  i64)
inline

Constructor for int64_t value.

GenericValue ( uint64_t  u64)
inline

Constructor for uint64_t value.

GenericValue ( double  d)
inline

Constructor for double value.

GenericValue ( const Ch s,
SizeType  length 
)
inline

Constructor for constant string (i.e. do not make a copy of string)

GenericValue ( const Ch s)
inline

Constructor for constant string (i.e. do not make a copy of string)

GenericValue ( const Ch s,
SizeType  length,
Allocator allocator 
)
inline

Constructor for copy-string (i.e. do make a copy of string)

GenericValue ( const Ch s,
Allocator allocator 
)
inline

Constructor for copy-string (i.e. do make a copy of string)

~GenericValue ( )
inline

Destructor.

Need to destruct elements of array, members of object, or copy-string.

Member Function Documentation

const GenericValue& Accept ( Handler handler) const
inline

Generate events of this value to a Handler.

This function adopts the GoF visitor pattern. Typical usage is to output this JSON value as JSON text via Writer, which is a Handler. It can also be used to deep clone this value via GenericDocument, which is also a Handler.

Template Parameters
Handlertype of handler.
Parameters
handlerAn object implementing concept Handler.
GenericValue& AddMember ( GenericValue< Encoding, Allocator > &  name,
GenericValue< Encoding, Allocator > &  value,
Allocator allocator 
)
inline

Add a member (name-value pair) to the object.

Parameters
nameA string value as name of member.
valueValue of any type.
allocatorAllocator for reallocating memory.
Returns
The value itself for fluent API.
Note
The ownership of name and value will be transfered to this object if success.
GenericValue& AddMember ( const Ch name,
Allocator nameAllocator,
GenericValue< Encoding, Allocator > &  value,
Allocator allocator 
)
inline
GenericValue& AddMember ( const Ch name,
GenericValue< Encoding, Allocator > &  value,
Allocator allocator 
)
inline
GenericValue& AddMember ( const Ch name,
value,
Allocator allocator 
)
inline
SizeType Capacity ( ) const
inline

Get the capacity of array.

void Clear ( )
inline

Remove all elements in the array.

This function do not deallocate memory in the array, i.e. the capacity is unchanged.

bool Empty ( ) const
inline

Check whether the array is empty.

bool GetBool ( ) const
inline
double GetDouble ( ) const
inline
int GetInt ( ) const
inline
int64_t GetInt64 ( ) const
inline
const Ch* GetString ( ) const
inline
SizeType GetStringLength ( ) const
inline

Get the length of string.

Since rapidjson permits "\u0000" in the json string, strlen(v.GetString()) may not equal to v.GetStringLength().

Type GetType ( ) const
inline
unsigned GetUint ( ) const
inline
uint64_t GetUint64 ( ) const
inline
bool HasMember ( const Ch name) const
inline

Check whether a member exists in the object.

bool IsArray ( ) const
inline
bool IsBool ( ) const
inline
bool IsDouble ( ) const
inline
bool IsFalse ( ) const
inline
bool IsInt ( ) const
inline
bool IsInt64 ( ) const
inline
bool IsNull ( ) const
inline
bool IsNumber ( ) const
inline
bool IsObject ( ) const
inline
bool IsString ( ) const
inline
bool IsTrue ( ) const
inline
bool IsUint ( ) const
inline
bool IsUint64 ( ) const
inline
ConstMemberIterator MemberonBegin ( ) const
inline

Member iterators.

MemberIterator MemberonBegin ( )
inline
ConstMemberIterator MemberonEnd ( ) const
inline
MemberIterator MemberonEnd ( )
inline
ValueIterator onBegin ( )
inline

Element iterator.

ConstValueIterator onBegin ( ) const
inline
ValueIterator onEnd ( )
inline
ConstValueIterator onEnd ( ) const
inline
GenericValue& operator= ( GenericValue< Encoding, Allocator > &  rhs)
inline

Assignment with move semantics.

Parameters
rhsSource of the assignment. It will become a null value after assignment.
GenericValue& operator= ( value)
inline

Assignment with primitive types.

Template Parameters
TEither Type, int, unsigned, int64_t, uint64_t, const Ch*
Parameters
valueThe value to be assigned.
GenericValue& operator[] ( const Ch name)
inline

Get the value associated with the object's name.

const GenericValue& operator[] ( const Ch name) const
inline
GenericValue& operator[] ( SizeType  index)
inline

Get an element from array by index.

Parameters
indexZero-based index of element.
Note
a.PushBack(123);
int x = a[0].GetInt(); // Error: operator[ is ambiguous, as 0 also mean a null pointer of const char* type.
int y = a[SizeType(0)].GetInt(); // Cast to SizeType will work.
int z = a[0u].GetInt(); // This works too.
const GenericValue& operator[] ( SizeType  index) const
inline
GenericValue& PopBack ( )
inline

Remove the last element in the array.

GenericValue& PushBack ( GenericValue< Encoding, Allocator > &  value,
Allocator allocator 
)
inline

Append a value at the end of the array.

Parameters
valueThe value to be appended.
allocatorThe allocator for allocating memory. It must be the same one use previously.
Returns
The value itself for fluent API.
Note
The ownership of the value will be transfered to this object if success.
If the number of elements to be appended is known, calls Reserve() once first may be more efficient.
GenericValue& PushBack ( value,
Allocator allocator 
)
inline
bool RemoveMember ( const Ch name)
inline

Remove a member in object by its name.

Parameters
nameName of member to be removed.
Returns
Whether the member existed.
Note
Removing member is implemented by moving the last member. So the ordering of members is changed.
GenericValue& Reserve ( SizeType  newCapacity,
Allocator allocator 
)
inline

Request the array to have enough capacity to store elements.

Parameters
newCapacityThe capacity that the array at least need to have.
allocatorThe allocator for allocating memory. It must be the same one use previously.
Returns
The value itself for fluent API.
GenericValue& SetArray ( )
inline

Set this value as an empty array.

GenericValue& SetBool ( bool  b)
inline
GenericValue& SetDouble ( double  d)
inline
GenericValue& SetInt ( int  i)
inline
GenericValue& SetInt64 ( int64_t  i64)
inline
GenericValue& SetNull ( )
inline
GenericValue& SetObject ( )
inline

Set this value as an empty object.

GenericValue& SetString ( const Ch s,
SizeType  length 
)
inline

Set this value as a string without copying source string.

This version has better performance with supplied length, and also support string containing null character.

Parameters
ssource string pointer.
lengthThe length of source string, excluding the trailing null terminator.
Returns
The value itself for fluent API.
GenericValue& SetString ( const Ch s)
inline

Set this value as a string without copying source string.

Parameters
ssource string pointer.
Returns
The value itself for fluent API.
GenericValue& SetString ( const Ch s,
SizeType  length,
Allocator allocator 
)
inline

Set this value as a string by copying from source string.

This version has better performance with supplied length, and also support string containing null character.

Parameters
ssource string.
lengthThe length of source string, excluding the trailing null terminator.
allocatorAllocator for allocating copied buffer. Commonly use document.GetAllocator().
Returns
The value itself for fluent API.
GenericValue& SetString ( const Ch s,
Allocator allocator 
)
inline

Set this value as a string by copying from source string.

Parameters
ssource string.
allocatorAllocator for allocating copied buffer. Commonly use document.GetAllocator().
Returns
The value itself for fluent API.
GenericValue& SetUint ( unsigned  u)
inline
GenericValue& SetUint64 ( uint64_t  u64)
inline
SizeType Size ( ) const
inline

Get the number of elements in array.

Friends And Related Function Documentation

friend class GenericDocument
friend

The documentation for this class was generated from the following file: