Simpleson
Public Member Functions | Protected Member Functions | List of all members
json::jobject::proxy Class Reference

A proxy that allows modification of the value. More...

#include <json.h>

Inheritance diagram for json::jobject::proxy:
json::jobject::const_proxy json::jobject::entry

Public Member Functions

 proxy (jobject &source, const std::string key)
 Constructor. More...
 
void operator= (const std::string value)
 Assigns a string value.
 
void operator= (const char *value)
 Assigns a string value.
 
void operator= (const int input)
 Assigns an integer.
 
void operator= (const unsigned int input)
 Assigns an unsigned integer.
 
void operator= (const long input)
 Assigns a long integer.
 
void operator= (const unsigned long input)
 Assigns a long unsigned integer.
 
void operator= (const char input)
 Assigns an character.
 
void operator= (const double input)
 Assigns an double floating-point integer

 
void operator= (const float input)
 Assigns an floating-point integer

 
void operator= (json::jobject input)
 Assigns a JSON object or array.
 
void operator= (const std::vector< int > input)
 Assigns an array of integers.
 
void operator= (const std::vector< unsigned int > input)
 Assigns an array of unsigned integers.
 
void operator= (const std::vector< long > input)
 Assigns an array of long integers.
 
void operator= (const std::vector< unsigned long > input)
 Assigns an array of unsigned long integers.
 
void operator= (const std::vector< char > input)
 Assigns an array of characters.
 
void operator= (const std::vector< float > input)
 Assigns an array of floating-point numbers.
 
void operator= (const std::vector< double > input)
 Assigns an array of double floating-point numbers.
 
void operator= (const std::vector< std::string > input)
 Assigns an array of strings.
 
void operator= (const std::vector< json::jobject > input)
 Assigns an array of JSON objects.
 
void set_boolean (const bool value)
 Sets a boolean value. More...
 
void set_null ()
 
void clear ()
 
- Public Member Functions inherited from json::jobject::const_proxy
 const_proxy (const jobject &source, const std::string key)
 Constructor. More...
 
const_value array (size_t index) const
 Returns another constant value from this array. More...
 
- Public Member Functions inherited from json::jobject::entry
std::string as_string () const
 Returns a string representation of the value.
 
 operator std::string () const
 
bool operator== (const std::string other) const
 Comparison operator.
 
bool operator!= (const std::string other) const
 Comparison operator.
 
 operator int () const
 Casts the value as an integer.
 
 operator unsigned int () const
 Casts the value as an unsigned integer.
 
 operator long () const
 Casts teh value as a long integer.
 
 operator unsigned long () const
 Casts the value as an unsigned long integer.
 
 operator char () const
 Casts teh value as a char.
 
 operator float () const
 Casts the value as a floating point numer.
 
 operator double () const
 Casts the value as a double-precision floating point number.
 
json::jobject as_object () const
 Casts the value as a JSON object. More...
 
 operator json::jobject () const
 
 operator std::vector< int > () const
 Casts an array of integers.
 
 operator std::vector< unsigned int > () const
 Casts an array of unsigned integers.
 
 operator std::vector< long > () const
 Casts an array of long integers.
 
 operator std::vector< unsigned long > () const
 Casts an array of unsigned long integers.
 
 operator std::vector< char > () const
 Casts an array of chars.
 
 operator std::vector< float > () const
 Casts an array of floating-point numbers.
 
 operator std::vector< double > () const
 Casts an array of double floating-point numbers.
 
 operator std::vector< json::jobject > () const
 Casts an array of JSON objects.
 
 operator std::vector< std::string > () const
 Casts an array of strings.
 
template<typename T >
std::vector< T > as_array () const
 Casts an array. More...
 
bool is_string () const
 Returns true if the value is a string.
 
bool is_number () const
 Returns true if the value is a number.
 
bool is_object () const
 Returns true if the value is an object.
 
bool is_array () const
 Returns true if the value is an array.
 
bool is_bool () const
 Returns true if the value is a bool.
 
bool is_true () const
 Returns true if the value is a boolean and set to true.
 
bool is_null () const
 Returns true if the value is a null value.
 

Protected Member Functions

template<typename T >
void set_number (const T value, const char *format)
 Sets a number value in the parent object. More...
 
void set_array (const std::vector< std::string > &values, const bool wrap=false)
 Stores an array of values. More...
 
template<typename T >
void set_number_array (const std::vector< T > &values, const char *format)
 Stores an array of numbers. More...
 
- Protected Member Functions inherited from json::jobject::const_proxy
const std::string & ref () const
 Returns a reference to the value. More...
 
- Protected Member Functions inherited from json::jobject::entry
virtual const std::string & ref () const =0
 A method for reference the entry's value. More...
 
template<typename T >
get_number (const char *format) const
 Converts an serialzed value to a numeric value. More...
 
template<typename T >
std::vector< T > get_number_array (const char *format) const
 Converts a serialized array of numbers to a vector of numbers. More...
 

Additional Inherited Members

- Protected Attributes inherited from json::jobject::const_proxy
const std::string key
 The key for the referenced value.
 

Detailed Description

A proxy that allows modification of the value.

Todo:
Currently, proxies only support JSON object and not arrays

Constructor & Destructor Documentation

◆ proxy()

json::jobject::proxy::proxy ( jobject source,
const std::string  key 
)
inline

Constructor.

Parameters
sourceThe JSON object that will be updated when a value is assigned
keyThe key for the value to be updated

Member Function Documentation

◆ clear()

void json::jobject::proxy::clear ( )
inline

Clears the value

◆ set_array()

void json::jobject::proxy::set_array ( const std::vector< std::string > &  values,
const bool  wrap = false 
)
protected

Stores an array of values.

Parameters
valuesThe values to store as an array
wrapWhen true, the values are wrapped in quotes. When false, the values are stored as-is

◆ set_boolean()

void json::jobject::proxy::set_boolean ( const bool  value)
inline

Sets a boolean value.

This method is required because operator=(bool value) conflict with number-based assignments

◆ set_null()

void json::jobject::proxy::set_null ( )
inline

Sets a null value

◆ set_number()

template<typename T >
void json::jobject::proxy::set_number ( const T  value,
const char *  format 
)
inlineprotected

Sets a number value in the parent object.

Template Parameters
TThe data type to be translated into JSON
Parameters
valueThe value to be translated to JSON
formatThe format to use when translating the number

◆ set_number_array()

template<typename T >
void json::jobject::proxy::set_number_array ( const std::vector< T > &  values,
const char *  format 
)
inlineprotected

Stores an array of numbers.

Template Parameters
TThe data type to be translated into JSON
Parameters
valuesThe array of values to be translated into JSON
formatThe format to use when translating the numbers

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