PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PJSON Class Reference

#include <pjson.h>

Inheritance diagram for PJSON:
Collaboration diagram for PJSON:

Classes

class  Array
 
class  Base
 
class  Boolean
 
class  Null
 Constructor. More...
 
class  Number
 
class  Object
 
class  String
 

Public Types

enum  Types {
  e_Object, e_Array, e_String, e_Number,
  e_Boolean, e_Null
}
 
typedef long double NumberType
 
- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 

Public Member Functions

 PJSON ()
 
 PJSON (Types type)
 
 PJSON (const PString &str)
 
 PJSON (const PJSON &other)
 
PJSON & operator= (const PJSON &other)
 
 ~PJSON ()
 
virtual void ReadFrom (istream &strm)
 
virtual void PrintOn (ostream &strm) const
 
bool FromString (const PString &str)
 
PString AsString (std::streamsize initialIndent=0, std::streamsize subsequentIndent=0) const
 
bool IsValid () const
 
bool IsType (Types type) const
 
void Set (Types type)
 
template<class T >
const T & GetAs () const
 
template<class T >
T & GetAs ()
 
const Object & GetObject () const
 
Object & GetObject ()
 
const Array & GetArray () const
 
Array & GetArray ()
 
const String & GetString () const
 
String & GetString ()
 
const Number & GetNumber () const
 
Number & GetNumber ()
 
const Boolean & GetBoolean () const
 
Boolean & GetBoolean ()
 
- Public Member Functions inherited from PObject
__inline unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
__inline void SetTraceContextIdentifier (unsigned id)
 
__inline void SetTraceContextIdentifier (const PObject &obj)
 
__inline void SetTraceContextIdentifier (const PObject *obj)
 
__inline void CopyTraceContextIdentifier (PObject &obj) const
 
__inline void CopyTraceContextIdentifier (PObject *obj) const
 
virtual ~PObject ()
 
__inline const char * GetClass () const
 
__inline bool IsClass (const char *name) const
 
__inline const PObject * PTraceObjectInstance () const
 
virtual PObject * Clone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 
virtual void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
virtual void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Attributes

Base * m_root
 
bool m_valid
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject &to, const PObject *from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject &from)
 
static __inline void CopyTraceContextIdentifier (PObject *to, const PObject *from)
 
static __inline const char * Class ()
 
static __inline const PObject * PTraceObjectInstance (const char *)
 
static __inline const PObject * PTraceObjectInstance (const PObject *obj)
 
template<typename T >
static Comparison Compare2 (T v1, T v2)
 Compare two types, returning Comparison type. More...
 
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

Member Typedef Documentation

typedef long double PJSON::NumberType

Member Enumeration Documentation

Enumerator
e_Object 
e_Array 
e_String 
e_Number 
e_Boolean 
e_Null 

Constructor & Destructor Documentation

PJSON::PJSON ( )
PJSON::PJSON ( Types  type)
explicit
PJSON::PJSON ( const PString &  str)
explicit
PJSON::PJSON ( const PJSON &  other)
PJSON::~PJSON ( )
inline

References m_root.

Member Function Documentation

PString PJSON::AsString ( std::streamsize  initialIndent = 0,
std::streamsize  subsequentIndent = 0 
) const
bool PJSON::FromString ( const PString &  str)
const Array& PJSON::GetArray ( ) const
inline
Array& PJSON::GetArray ( )
inline
template<class T >
const T& PJSON::GetAs ( ) const
inline

References m_root, and PAssertNULL.

template<class T >
T& PJSON::GetAs ( )
inline

References m_root, and PAssertNULL.

const Boolean& PJSON::GetBoolean ( ) const
inline
Boolean& PJSON::GetBoolean ( )
inline
const Number& PJSON::GetNumber ( ) const
inline
Number& PJSON::GetNumber ( )
inline
const Object& PJSON::GetObject ( ) const
inline
Object& PJSON::GetObject ( )
inline
const String& PJSON::GetString ( ) const
inline
String& PJSON::GetString ( )
inline
bool PJSON::IsType ( Types  type) const
inline

References m_root, and PAssertNULL.

bool PJSON::IsValid ( ) const
inline

References m_valid.

PJSON& PJSON::operator= ( const PJSON &  other)
virtual void PJSON::PrintOn ( ostream &  strm) const
virtual
virtual void PJSON::ReadFrom ( istream &  strm)
virtual
void PJSON::Set ( Types  type)

Member Data Documentation

Base* PJSON::m_root
protected

Referenced by GetAs(), IsType(), and ~PJSON().

bool PJSON::m_valid
protected

Referenced by IsValid().


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