Torque2D Reference

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Types | Public Member Functions | Friends | List of all members
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 >:

## 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 Member * | MemberIterator
| Member iterator for iterating in object. More...
typedef const Member * | ConstMemberIterator
| Constant member iterator for iterating in object. More...
typedef GenericValue * | ValueIterator
| Value iterator for iterating in array. More...
typedef const GenericValue * | ConstValueIterator
| Constant value iterator for iterating in array. More...

## Public Member Functions
template<typename Handler >
const GenericValue & | Accept (Handler &handler) const
| Generate events of this value to a Handler. More...
Assignment operators
GenericValue & | operator= (GenericValue &rhs)
| Assignment with move semantics. More...
template<typename T >
GenericValue & | operator= (T value)
| Assignment with primitive types. More...
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
GenericValue & | SetNull ()
Bool
bool | GetBool () const
GenericValue & | SetBool (bool b)
Object
GenericValue & | SetObject ()
| Set this value as an empty object. More...
GenericValue & | operator[] (const Ch *name)
| Get the value associated with the name. More...
const GenericValue & | operator[] (const Ch *name) const
ConstMemberIterator | MemberBegin () const
| Member iterators. More...
ConstMemberIterator | MemberEnd () const
MemberIterator | MemberBegin ()
MemberIterator | MemberEnd ()
bool | HasMember (const Ch *name) const
| Check whether a member exists in the object. More...
Member * | FindMember (const Ch *name)
| Find member by name. More...
const Member * | FindMember (const Ch *name) const
GenericValue & | AddMember (GenericValue &name, GenericValue &value, Allocator &allocator)
| Add a member (name-value pair) to the object. More...
GenericValue & | AddMember (const Ch *name, Allocator &nameAllocator, GenericValue &value, Allocator &allocator)
GenericValue & | AddMember (const Ch *name, GenericValue &value, Allocator &allocator)
template<typename T >
GenericValue & | AddMember (const Ch *name, T value, Allocator &allocator)
bool | RemoveMember (const Ch *name)
| Remove a member in object by its name. More...
Array
GenericValue & | SetArray ()
| 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...
GenericValue & | operator[] (SizeType index)
| Get an element from array by index. More...
const GenericValue & | operator[] (SizeType index) const
ValueIterator | Begin ()
| Element iterator. More...
ValueIterator | End ()
ConstValueIterator | Begin () const
ConstValueIterator | End () const
GenericValue & | Reserve (SizeType newCapacity, Allocator &allocator)
| Request the array to have enough capacity to store elements. More...
GenericValue & | PushBack (GenericValue &value, Allocator &allocator)
| Append a value at the end of the array. More...
template<typename T >
GenericValue & | PushBack (T value, Allocator &allocator)
GenericValue & | PopBack ()
| 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
GenericValue & | SetInt (int i)
GenericValue & | SetUint (unsigned u)
GenericValue & | SetInt64 (int64_t i64)
GenericValue & | SetUint64 (uint64_t u64)
GenericValue & | SetDouble (double d)
String
const Ch * | GetString () const
SizeType | GetStringLength () const
| Get the length of string. More...
GenericValue & | SetString (const Ch *s, SizeType length)
| Set this value as a string without copying source string. More...
GenericValue & | SetString (const Ch *s)
| Set this value as a string without copying source string. More...
GenericValue & | SetString (const Ch *s, SizeType length, Allocator &allocator)
| Set this value as a string by copying from source string. More...
GenericValue & | SetString (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

  Encoding | Encoding of the value. (Even non-string values need to have the same encoding in a document)
  Allocator | Allocator type for allocating memory of object, array and string.

## Member Typedef Documentation

typedef Allocator AllocatorType

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.

typedef const GenericValue* ConstValueIterator

Constant value iterator for iterating in array.

typedef Encoding EncodingType

Encoding type from template parameter.

typedef Member* MemberIterator

Member iterator for iterating in object.

typedef GenericValue* ValueIterator

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

  type | Type 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

  Handler | type of handler.

Parameters

  handler | An 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

  name | A string value as name of member.
  value | Value of any type.
  allocator | Allocator 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,
|  | T | value,
|  | Allocator & | allocator
| ) |  |
| inline

ValueIterator Begin | ( |  | ) |
| inline

Element iterator.

ConstValueIterator Begin | ( |  | ) | const
| 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.

ValueIterator End | ( |  | ) |
| inline

ConstValueIterator End | ( |  | ) | const
| inline

Member* FindMember | ( | const Ch * | name | ) |
| inline

Find member by name.

Returns
  Return the member if exists. Otherwise returns null pointer.

const Member* FindMember | ( | const Ch * | name | ) | const
| inline

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.

Note
  It is better to use FindMember() directly if you need the obtain the value as well.

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 MemberBegin | ( |  | ) | const
| inline

Member iterators.

MemberIterator MemberBegin | ( |  | ) |
| inline

ConstMemberIterator MemberEnd | ( |  | ) | const
| inline

MemberIterator MemberEnd | ( |  | ) |
| inline

GenericValue& operator= | ( | GenericValue< Encoding, Allocator > & | rhs | ) |
| inline

Assignment with move semantics.

Parameters

  rhs | Source of the assignment. It will become a null value after assignment.

GenericValue& operator= | ( | T | value | ) |
| inline

Assignment with primitive types.

Template Parameters

  T | Either Type, int, unsigned, int64_t, uint64_t, const Ch*

Parameters

  value | The value to be assigned.

GenericValue& operator[] | ( | const Ch * | name | ) |
| inline

Get the value associated with the name.

Note
  In version 0.1x, if the member is not found, this function returns a null value. This makes issue 7. Since 0.2, if the name is not correct, it will assert. If user is unsure whether a member exists, user should use HasMember() first. A better approach is to use the now public FindMember().

const GenericValue& operator[] | ( | const Ch * | name | ) | const
| inline

GenericValue& operator[] | ( | SizeType | index | ) |
| inline

Get an element from array by index.

Parameters

  index | Zero-based index of element.

Note
  Value a(kArrayType);
  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

  value | The value to be appended.
  allocator | The 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 | ( | T | value,
|  | Allocator & | allocator
| ) |  |
| inline

bool RemoveMember | ( | const Ch * | name | ) |
| inline

Remove a member in object by its name.

Parameters

  name | Name 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

  newCapacity | The capacity that the array at least need to have.
  allocator | The 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

  s | source string pointer.
  length | The 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

  s | source 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

  s | source string.
  length | The length of source string, excluding the trailing null terminator.
  allocator | Allocator 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

  s | source string.
  allocator | Allocator 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:

- persistence/rapidjson/include/rapidjson/document.h