MistServer
2.5.3-Pro-19-gf5e75b1 ( Generic_64)
|
A JSON::Value is either a string or an integer, but may also be an object, array or null. More...
#include <json.h>
Public Member Functions | |
Value () | |
Sets this JSON::Value to null;. More... | |
Value () | |
Value (const Value &rhs) | |
Value (const Value &rhs) | |
Value (std::istream &fromstream) | |
Sets this JSON::Value to read from this position in the std::istream. More... | |
Value (std::istream &fromstream) | |
Value (const std::string &val) | |
Sets this JSON::Value to the given string. More... | |
Value (const std::string &val) | |
Value (const char *val) | |
Sets this JSON::Value to the given string. More... | |
Value (const char *val) | |
Value (long long int val) | |
Sets this JSON::Value to the given integer. More... | |
Value (long long int val) | |
Value (bool val) | |
Sets this JSON::Value to the given integer. More... | |
Value (bool val) | |
~Value () | |
Sets this JSON::Value to null. More... | |
~Value () | |
void | append (const Value &rhs) |
Appends the given value to the end of this JSON::Value array. More... | |
void | append (const Value &rhs) |
const bool | asBool () const |
const bool | asBool () const |
Explicit conversion to bool. More... | |
const long long int | asInt () const |
const long long int | asInt () const |
Explicit conversion to long long int. More... | |
const std::string | asString () const |
const std::string | asString () const |
Explicit conversion to std::string. More... | |
const std::string & | asStringRef () const |
const std::string & | asStringRef () const |
Explicit conversion to std::string reference. More... | |
const char * | c_str () const |
const char * | c_str () const |
Explicit conversion to c-string. More... | |
bool | isArray () const |
Returns true if this object is an array. More... | |
bool | isArray () const |
bool | isBool () const |
Returns true if this object is a bool. More... | |
bool | isBool () const |
bool | isInt () const |
Returns true if this object is an integer. More... | |
bool | isInt () const |
bool | isMember (const std::string &name) const |
For object JSON::Value objects, returns true if the given name is a member. More... | |
bool | isMember (const std::string &name) const |
bool | isNull () const |
Returns true if this object is null. More... | |
bool | isNull () const |
bool | isObject () const |
bool | isObject () const |
Returns true if this object is an object. More... | |
bool | isString () const |
bool | isString () const |
Returns true if this object is a string. More... | |
void | netPrepare () |
Pre-packs any object-type JSON::Value to a std::string for transfer over the network, including proper DTMI header. More... | |
void | netPrepare () |
void | null () |
Completely clears the contents of this value, changing its type to NULL in the process. More... | |
void | null () |
operator bool () const | |
operator bool () const | |
Automatic conversion to bool. More... | |
operator long long int () const | |
operator long long int () const | |
Automatic conversion to long long int - returns 0 if not convertable. More... | |
operator std::string () const | |
operator std::string () const | |
Automatic conversion to std::string. More... | |
bool | operator!= (const Value &rhs) const |
Compares a JSON::Value to another for equality. More... | |
bool | operator!= (const Value &rhs) const |
Value & | operator= (const Value &rhs) |
Sets this JSON::Value to be equal to the given JSON::Value. More... | |
Value & | operator= (const Value &rhs) |
Value & | operator= (const std::string &rhs) |
Sets this JSON::Value to the given string. More... | |
Value & | operator= (const std::string &rhs) |
Value & | operator= (const char *rhs) |
Value & | operator= (const char *rhs) |
Sets this JSON::Value to the given string. More... | |
Value & | operator= (const long long int &rhs) |
Value & | operator= (const long long int &rhs) |
Sets this JSON::Value to the given integer. More... | |
Value & | operator= (const int &rhs) |
Value & | operator= (const int &rhs) |
Sets this JSON::Value to the given integer. More... | |
Value & | operator= (const unsigned int &rhs) |
Value & | operator= (const unsigned int &rhs) |
Sets this JSON::Value to the given integer. More... | |
Value & | operator= (const bool &rhs) |
Value & | operator= (const bool &rhs) |
Sets this JSON::Value to the given boolean. More... | |
bool | operator== (const Value &rhs) const |
Compares a JSON::Value to another for equality. More... | |
bool | operator== (const Value &rhs) const |
Value & | operator[] (const std::string i) |
Value & | operator[] (const std::string i) |
Retrieves or sets the JSON::Value at this position in the object. More... | |
Value & | operator[] (const char *i) |
Value & | operator[] (const char *i) |
Retrieves or sets the JSON::Value at this position in the object. More... | |
Value & | operator[] (unsigned int i) |
Value & | operator[] (unsigned int i) |
Retrieves or sets the JSON::Value at this position in the array. More... | |
const Value & | operator[] (const std::string i) const |
const Value & | operator[] (const std::string i) const |
Retrieves the JSON::Value at this position in the object. More... | |
const Value & | operator[] (const char *i) const |
Retrieves the JSON::Value at this position in the object. More... | |
const Value & | operator[] (const char *i) const |
const Value & | operator[] (unsigned int i) const |
const Value & | operator[] (unsigned int i) const |
Retrieves the JSON::Value at this position in the array. More... | |
unsigned int | packedSize () const |
Returns the packed size of this Value. More... | |
unsigned int | packedSize () const |
void | prepend (const Value &rhs) |
Prepends the given value to the beginning of this JSON::Value array. More... | |
void | prepend (const Value &rhs) |
void | removeMember (const std::string &name) |
void | removeMember (const std::string &name) |
For object JSON::Value objects, removes the member with the given name, if it exists. More... | |
void | sendTo (Socket::Connection &socket) const |
Packs and transfers over the network. More... | |
void | sendTo (Socket::Connection &socket) const |
void | shrink (unsigned int size) |
void | shrink (unsigned int size) |
For array and object JSON::Value objects, reduces them so they contain at most size elements, throwing away the first elements and keeping the last ones. More... | |
unsigned int | size () const |
unsigned int | size () const |
Returns the total of the objects and array size combined. More... | |
std::string & | toNetPacked () |
std::string & | toNetPacked () |
Packs any object-type JSON::Value to a std::string for transfer over the network, including proper DTMI header. More... | |
std::string | toPacked () const |
std::string | toPacked () const |
Packs to a std::string for transfer over the network. More... | |
std::string | toPrettyString (int indentation=0) const |
Converts this JSON::Value to valid JSON notation and returns it. More... | |
std::string | toPrettyString (int indentation=0) const |
std::string | toString () const |
Converts this JSON::Value to valid JSON notation and returns it. More... | |
std::string | toString () const |
Private Attributes | |
std::deque< Value * > | arrVal |
long long int | intVal |
ValueType | myType |
std::map< std::string, Value * > | objVal |
std::string | strVal |
Friends | |
class | ConstIter |
class | Iter |
A JSON::Value is either a string or an integer, but may also be an object, array or null.
JSON::Value::Value | ( | ) |
Sets this JSON::Value to null;.
JSON::Value::~Value | ( | ) |
Sets this JSON::Value to null.
JSON::Value::Value | ( | const Value & | rhs | ) |
JSON::Value::Value | ( | std::istream & | fromstream | ) |
Sets this JSON::Value to read from this position in the std::istream.
JSON::Value::Value | ( | const std::string & | val | ) |
Sets this JSON::Value to the given string.
JSON::Value::Value | ( | const char * | val | ) |
Sets this JSON::Value to the given string.
JSON::Value::Value | ( | long long int | val | ) |
Sets this JSON::Value to the given integer.
JSON::Value::Value | ( | bool | val | ) |
Sets this JSON::Value to the given integer.
JSON::Value::Value | ( | ) |
JSON::Value::~Value | ( | ) |
JSON::Value::Value | ( | const Value & | rhs | ) |
JSON::Value::Value | ( | std::istream & | fromstream | ) |
JSON::Value::Value | ( | const std::string & | val | ) |
JSON::Value::Value | ( | const char * | val | ) |
JSON::Value::Value | ( | long long int | val | ) |
JSON::Value::Value | ( | bool | val | ) |
void JSON::Value::append | ( | const Value & | rhs | ) |
Appends the given value to the end of this JSON::Value array.
Turns this value into an array if it is not already one.
void JSON::Value::append | ( | const Value & | rhs | ) |
const bool JSON::Value::asBool | ( | ) | const |
Explicit conversion to bool.
const bool JSON::Value::asBool | ( | ) | const |
const long long int JSON::Value::asInt | ( | ) | const |
Explicit conversion to long long int.
const long long int JSON::Value::asInt | ( | ) | const |
const std::string JSON::Value::asString | ( | ) | const |
const std::string JSON::Value::asString | ( | ) | const |
Explicit conversion to std::string.
const std::string & JSON::Value::asStringRef | ( | ) | const |
Explicit conversion to std::string reference.
Returns a direct reference for string type JSON::Value objects, but a reference to a static empty string otherwise.
const std::string& JSON::Value::asStringRef | ( | ) | const |
const char * JSON::Value::c_str | ( | ) | const |
Explicit conversion to c-string.
Returns a direct reference for string type JSON::Value objects, a reference to an empty string otherwise.
const char* JSON::Value::c_str | ( | ) | const |
bool JSON::Value::isArray | ( | ) | const |
Returns true if this object is an array.
bool JSON::Value::isArray | ( | ) | const |
bool JSON::Value::isBool | ( | ) | const |
Returns true if this object is a bool.
bool JSON::Value::isBool | ( | ) | const |
bool JSON::Value::isInt | ( | ) | const |
Returns true if this object is an integer.
bool JSON::Value::isInt | ( | ) | const |
bool JSON::Value::isMember | ( | const std::string & | name | ) | const |
For object JSON::Value objects, returns true if the given name is a member.
Returns false otherwise.
bool JSON::Value::isMember | ( | const std::string & | name | ) | const |
bool JSON::Value::isNull | ( | ) | const |
Returns true if this object is null.
bool JSON::Value::isNull | ( | ) | const |
bool JSON::Value::isObject | ( | ) | const |
Returns true if this object is an object.
bool JSON::Value::isObject | ( | ) | const |
bool JSON::Value::isString | ( | ) | const |
Returns true if this object is a string.
bool JSON::Value::isString | ( | ) | const |
void JSON::Value::netPrepare | ( | ) |
void JSON::Value::netPrepare | ( | ) |
Pre-packs any object-type JSON::Value to a std::string for transfer over the network, including proper DTMI header.
Non-object-types will print an error. The internal buffer is guaranteed to be up-to-date after this function is called.
void JSON::Value::null | ( | ) |
Completely clears the contents of this value, changing its type to NULL in the process.
void JSON::Value::null | ( | ) |
JSON::Value::operator bool | ( | ) | const |
JSON::Value::operator bool | ( | ) | const |
Automatic conversion to bool.
Returns true if there is anything meaningful stored into this value.
JSON::Value::operator long long int | ( | ) | const |
JSON::Value::operator long long int | ( | ) | const |
Automatic conversion to long long int - returns 0 if not convertable.
JSON::Value::operator std::string | ( | ) | const |
Automatic conversion to std::string.
Returns the raw string value if available, otherwise calls toString().
JSON::Value::operator std::string | ( | ) | const |
bool JSON::Value::operator!= | ( | const Value & | rhs | ) | const |
bool JSON::Value::operator!= | ( | const Value & | rhs | ) | const |
Compares a JSON::Value to another for equality.
JSON::Value & JSON::Value::operator= | ( | const Value & | rhs | ) |
Sets this JSON::Value to be equal to the given JSON::Value.
JSON::Value & JSON::Value::operator= | ( | const std::string & | rhs | ) |
Sets this JSON::Value to the given string.
Value& JSON::Value::operator= | ( | const std::string & | rhs | ) |
Value& JSON::Value::operator= | ( | const char * | rhs | ) |
JSON::Value & JSON::Value::operator= | ( | const char * | rhs | ) |
Sets this JSON::Value to the given string.
JSON::Value & JSON::Value::operator= | ( | const long long int & | rhs | ) |
Sets this JSON::Value to the given integer.
Value& JSON::Value::operator= | ( | const long long int & | rhs | ) |
Value& JSON::Value::operator= | ( | const int & | rhs | ) |
JSON::Value & JSON::Value::operator= | ( | const int & | rhs | ) |
Sets this JSON::Value to the given integer.
JSON::Value & JSON::Value::operator= | ( | const unsigned int & | rhs | ) |
Sets this JSON::Value to the given integer.
Value& JSON::Value::operator= | ( | const unsigned int & | rhs | ) |
JSON::Value & JSON::Value::operator= | ( | const bool & | rhs | ) |
Sets this JSON::Value to the given boolean.
Value& JSON::Value::operator= | ( | const bool & | rhs | ) |
bool JSON::Value::operator== | ( | const Value & | rhs | ) | const |
Compares a JSON::Value to another for equality.
bool JSON::Value::operator== | ( | const Value & | rhs | ) | const |
JSON::Value & JSON::Value::operator[] | ( | const std::string | i | ) |
Retrieves or sets the JSON::Value at this position in the object.
Converts destructively to object if not already an object.
Value& JSON::Value::operator[] | ( | const std::string | i | ) |
JSON::Value & JSON::Value::operator[] | ( | const char * | i | ) |
Retrieves or sets the JSON::Value at this position in the object.
Converts destructively to object if not already an object.
Value& JSON::Value::operator[] | ( | const char * | i | ) |
JSON::Value & JSON::Value::operator[] | ( | unsigned int | i | ) |
Retrieves or sets the JSON::Value at this position in the array.
Converts destructively to array if not already an array.
Value& JSON::Value::operator[] | ( | unsigned int | i | ) |
const Value& JSON::Value::operator[] | ( | const std::string | i | ) | const |
const JSON::Value & JSON::Value::operator[] | ( | const std::string | i | ) | const |
Retrieves the JSON::Value at this position in the object.
Fails horribly if that values does not exist.
const Value& JSON::Value::operator[] | ( | const char * | i | ) | const |
const JSON::Value & JSON::Value::operator[] | ( | const char * | i | ) | const |
Retrieves the JSON::Value at this position in the object.
Fails horribly if that values does not exist.
const Value& JSON::Value::operator[] | ( | unsigned int | i | ) | const |
const JSON::Value & JSON::Value::operator[] | ( | unsigned int | i | ) | const |
Retrieves the JSON::Value at this position in the array.
Fails horribly if that values does not exist.
unsigned int JSON::Value::packedSize | ( | ) | const |
unsigned int JSON::Value::packedSize | ( | ) | const |
Returns the packed size of this Value.
void JSON::Value::prepend | ( | const Value & | rhs | ) |
void JSON::Value::prepend | ( | const Value & | rhs | ) |
Prepends the given value to the beginning of this JSON::Value array.
Turns this value into an array if it is not already one.
void JSON::Value::removeMember | ( | const std::string & | name | ) |
For object JSON::Value objects, removes the member with the given name, if it exists.
Has no effect otherwise.
void JSON::Value::removeMember | ( | const std::string & | name | ) |
void JSON::Value::sendTo | ( | Socket::Connection & | socket | ) | const |
Packs and transfers over the network.
If the object is a container type, this function will call itself recursively for all contents.
void JSON::Value::sendTo | ( | Socket::Connection & | socket | ) | const |
void JSON::Value::shrink | ( | unsigned int | size | ) |
For array and object JSON::Value objects, reduces them so they contain at most size elements, throwing away the first elements and keeping the last ones.
Does nothing for other JSON::Value types, nor does it do anything if the size is already lower or equal to the given size.
void JSON::Value::shrink | ( | unsigned int | size | ) |
unsigned int JSON::Value::size | ( | ) | const |
Returns the total of the objects and array size combined.
unsigned int JSON::Value::size | ( | ) | const |
std::string & JSON::Value::toNetPacked | ( | ) |
Packs any object-type JSON::Value to a std::string for transfer over the network, including proper DTMI header.
Non-object-types will print an error and return an empty string. This function returns a reference to an internal buffer where the prepared data is kept. The internal buffer is not made stale if any changes occur inside the object - subsequent calls to toPacked() will clear the buffer, calls to netPrepare will guarantee it is up-to-date.
std::string& JSON::Value::toNetPacked | ( | ) |
std::string JSON::Value::toPacked | ( | ) | const |
Packs to a std::string for transfer over the network.
If the object is a container type, this function will call itself recursively and contain all contents. As a side effect, this function clear the internal buffer of any object-types.
std::string JSON::Value::toPacked | ( | ) | const |
std::string JSON::Value::toPrettyString | ( | int | indentation = 0 | ) | const |
Converts this JSON::Value to valid JSON notation and returns it.
Makes an attempt at pretty-printing.
std::string JSON::Value::toPrettyString | ( | int | indentation = 0 | ) | const |
std::string JSON::Value::toString | ( | ) | const |
Converts this JSON::Value to valid JSON notation and returns it.
Makes absolutely no attempts to pretty-print anything. :-)
std::string JSON::Value::toString | ( | ) | const |
|
friend |
|
friend |
|
private |
|
private |
|
private |
|
private |
|
private |