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

#include <pxml.h>

Inheritance diagram for PXMLElement:
Collaboration diagram for PXMLElement:

Public Member Functions

 PXMLElement (const char *name=NULL, const char *data=NULL)
 
virtual PINDEX GetObjectCount () const
 
PBoolean IsElement () const
 
void PrintOn (ostream &strm) const
 Output the contents of the object to the stream. More...
 
void Output (ostream &strm, const PXMLBase &xml, int indent) const
 
const PCaselessStringGetName () const
 
void SetName (const PString &v)
 
PCaselessString GetPathName () const
 Get the completely qualified name for the element inside the XML tree, for example "root:trunk:branch:subbranch:leaf". More...
 
PINDEX GetSize () const
 
PINDEX FindObject (const PXMLObject *ptr) const
 
bool HasSubObjects () const
 
virtual PXMLObjectAddSubObject (PXMLObject *elem, bool dirty=true)
 
bool RemoveSubObject (PINDEX idx, bool dispose=true)
 
virtual PXMLElementCreateElement (const PCaselessString &name, const char *data=NULL)
 
PXMLElementAddElement (const char *name)
 
PXMLElementAddElement (const PString &name, const PString &data)
 
PXMLElementAddElement (const PString &name, const PString &attrName, const PString &attrVal)
 
void SetAttribute (const PCaselessString &key, const PString &value, bool setDirty=true)
 
PString GetAttribute (const PCaselessString &key) const
 
bool HasAttribute (const PCaselessString &key) const
 
bool HasAttributes () const
 
const PStringToStringGetAttributes () const
 
PXMLObjectGetSubObject (PINDEX idx) const
 
PXMLElementGetElement (PINDEX idx=0) const
 
PXMLElementGetElement (const PCaselessString &name, PINDEX idx=0) const
 
PXMLElementGetElement (const PCaselessString &name, const PCaselessString &attr, const PString &attrval) const
 
template<class T >
T * GetElementAs (PINDEX idx=0) const
 
template<class T >
T * GetElementAs (const PCaselessString &name, PINDEX idx=0) const
 
template<class T >
T * GetElementAs (const PCaselessString &name, const PCaselessString &attr, const PString &attrval) const
 
PString GetData (bool trim=true) const
 
PXMLObjectArray GetSubObjects () const
 
void SetData (const PString &data)
 
virtual PXMLDataAddData (const PString &data)
 
virtual void EndData ()
 
PXMLObjectClone () const
 Create a copy of the class on the heap. More...
 
void AddNamespace (const PString &prefix, const PString &uri)
 
void RemoveNamespace (const PString &prefix)
 
bool GetDefaultNamespace (PCaselessString &str) const
 
bool GetNamespace (const PCaselessString &prefix, PCaselessString &str) const
 
PCaselessString PrependNamespace (const PCaselessString &name) const
 
bool GetURIForNamespace (const PCaselessString &prefix, PCaselessString &uri) const
 
- Public Member Functions inherited from PXMLObject
PXMLElementGetParent () const
 
bool SetParent (PXMLElement *parent)
 
PXMLObjectGetNextObject () const
 
PString AsString () const
 
void SetDirty ()
 
bool IsDirty () const
 
void GetFilePosition (unsigned &col, unsigned &line) const
 
void SetFilePosition (unsigned col, unsigned line)
 
- 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 PObjectPTraceObjectInstance () const
 
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 ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 

Protected Member Functions

 PXMLElement (const PXMLElement &copy)
 
- Protected Member Functions inherited from PXMLObject
 PXMLObject ()
 
 P_REMOVE_VIRTUAL (PXMLObject *, Clone(PXMLElement *) const, 0)
 
- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 

Protected Attributes

PCaselessString m_name
 
PStringToString m_attributes
 
PStringToString m_nameSpaces
 
PCaselessString m_defaultNamespace
 
PArray< PXMLObjectm_subObjects
 
- Protected Attributes inherited from PXMLObject
PXMLElementm_parent
 
bool m_dirty
 
unsigned m_lineNumber
 
unsigned m_column
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...
 
- 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 PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (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...
 

Constructor & Destructor Documentation

PXMLElement::PXMLElement ( const PXMLElement copy)
protected
PXMLElement::PXMLElement ( const char *  name = NULL,
const char *  data = NULL 
)

Member Function Documentation

virtual PXMLData* PXMLElement::AddData ( const PString data)
virtual
PXMLElement* PXMLElement::AddElement ( const char *  name)
PXMLElement* PXMLElement::AddElement ( const PString name,
const PString data 
)
PXMLElement* PXMLElement::AddElement ( const PString name,
const PString attrName,
const PString attrVal 
)
void PXMLElement::AddNamespace ( const PString prefix,
const PString uri 
)
virtual PXMLObject* PXMLElement::AddSubObject ( PXMLObject elem,
bool  dirty = true 
)
virtual
PXMLObject* PXMLElement::Clone ( ) const
virtual

Create a copy of the class on the heap.

The exact semantics of the descendent class determine what is required to make a duplicate of the instance. Not all classes can even do a clone operation.

The main user of the clone function is the PDictionary class as it requires copies of the dictionary keys.

The default behaviour is for this function to assert.

Returns
pointer to new copy of the class instance.

Implements PXMLObject.

virtual PXMLElement* PXMLElement::CreateElement ( const PCaselessString name,
const char *  data = NULL 
)
virtual

Reimplemented in PXMLRootElement.

virtual void PXMLElement::EndData ( )
inlinevirtual
PINDEX PXMLElement::FindObject ( const PXMLObject ptr) const
PString PXMLElement::GetAttribute ( const PCaselessString key) const
const PStringToString& PXMLElement::GetAttributes ( ) const
inline

References m_attributes.

PString PXMLElement::GetData ( bool  trim = true) const
bool PXMLElement::GetDefaultNamespace ( PCaselessString str) const
PXMLElement* PXMLElement::GetElement ( PINDEX  idx = 0) const

Referenced by GetElementAs().

PXMLElement* PXMLElement::GetElement ( const PCaselessString name,
PINDEX  idx = 0 
) const
PXMLElement* PXMLElement::GetElement ( const PCaselessString name,
const PCaselessString attr,
const PString attrval 
) const
template<class T >
T* PXMLElement::GetElementAs ( PINDEX  idx = 0) const
inline

References GetElement().

template<class T >
T* PXMLElement::GetElementAs ( const PCaselessString name,
PINDEX  idx = 0 
) const
inline

References GetElement().

template<class T >
T* PXMLElement::GetElementAs ( const PCaselessString name,
const PCaselessString attr,
const PString attrval 
) const
inline

References GetElement().

const PCaselessString& PXMLElement::GetName ( ) const
inline

References m_name.

bool PXMLElement::GetNamespace ( const PCaselessString prefix,
PCaselessString str 
) const
virtual PINDEX PXMLElement::GetObjectCount ( ) const
virtual

Reimplemented from PXMLObject.

PCaselessString PXMLElement::GetPathName ( ) const

Get the completely qualified name for the element inside the XML tree, for example "root:trunk:branch:subbranch:leaf".

PINDEX PXMLElement::GetSize ( ) const
inline
PXMLObject* PXMLElement::GetSubObject ( PINDEX  idx) const
PXMLObjectArray PXMLElement::GetSubObjects ( ) const
inline

References m_subObjects.

bool PXMLElement::GetURIForNamespace ( const PCaselessString prefix,
PCaselessString uri 
) const
bool PXMLElement::HasAttribute ( const PCaselessString key) const
bool PXMLElement::HasAttributes ( ) const
inline
bool PXMLElement::HasSubObjects ( ) const
inline
PBoolean PXMLElement::IsElement ( ) const
inlinevirtual

Implements PXMLObject.

void PXMLElement::Output ( ostream &  strm,
const PXMLBase xml,
int  indent 
) const
virtual

Implements PXMLObject.

PCaselessString PXMLElement::PrependNamespace ( const PCaselessString name) const
void PXMLElement::PrintOn ( ostream &  strm) const
virtual

Output the contents of the object to the stream.

The exact output is dependent on the exact semantics of the descendent class. This is primarily used by the standard operator<< function.

The default behaviour is to print the class name.

Reimplemented from PObject.

void PXMLElement::RemoveNamespace ( const PString prefix)
bool PXMLElement::RemoveSubObject ( PINDEX  idx,
bool  dispose = true 
)
void PXMLElement::SetAttribute ( const PCaselessString key,
const PString value,
bool  setDirty = true 
)
void PXMLElement::SetData ( const PString data)
void PXMLElement::SetName ( const PString v)
inline

References m_name.

Member Data Documentation

PStringToString PXMLElement::m_attributes
protected

Referenced by GetAttributes(), and HasAttributes().

PCaselessString PXMLElement::m_defaultNamespace
protected
PCaselessString PXMLElement::m_name
protected

Referenced by GetName(), and SetName().

PStringToString PXMLElement::m_nameSpaces
protected
PArray<PXMLObject> PXMLElement::m_subObjects
protected

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