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

Globally unique ID definition. More...

#include <guid.h>

Inheritance diagram for PGloballyUniqueID:
Collaboration diagram for PGloballyUniqueID:

Public Types

enum  { Size = 16 }
 

Public Member Functions

Construction
 PGloballyUniqueID ()
 Create a new ID. More...
 
 PGloballyUniqueID (const char *cstr)
 Create an ID from a C string of hex (as produced by AsString()). More...
 
 PGloballyUniqueID (const PString &str)
 Create an ID from a PString of hex (as produced by AsString()). More...
 
 PGloballyUniqueID (const void *data, PINDEX size)
 Create an ID from a block of memory. More...
 
Overrides from PObject
virtual void PrintOn (ostream &strm) const
 Standard stream print function. More...
 
virtual void ReadFrom (istream &strm)
 Standard stream read function. More...
 
virtual PObjectClone () const
 Create a clone of the ID. More...
 
virtual PINDEX HashFunction () const
 Get the hash value for the ID. More...
 
Operations
PString AsString () const
 Convert the ID to human readable string. More...
 
PBoolean IsNULL () const
 Test if the GUID is null, ie consists of all zeros. More...
 
PBoolean operator! () const
 
- Public Member Functions inherited from PBYTEArray
template<typename T >
const T & GetAs (PINDEX offset=0)
 Function to cast block of memory in PBYTEArray to another structure. More...
 
 PBYTEArray (PINDEX initialSize=0)
 Construct a new dynamic array of unsigned chars. More...
 
 PBYTEArray (BYTE const *buffer, PINDEX length, PBoolean dynamic=true)
 Construct a new dynamic array of unsigned chars. More...
 
 PBYTEArray (PContainerReference &reference_)
 
virtual void PrintOn (ostream &strm) const
 Print the array. More...
 
virtual void ReadFrom (istream &strm)
 Read the array. More...
 
- Public Member Functions inherited from PBaseArray< BYTE >
 PBaseArray (PINDEX initialSize=0)
 Construct a new dynamic array of elements of the specified type. More...
 
 PBaseArray (BYTEconst *buffer, PINDEX length, PBoolean dynamic=true)
 Construct a new dynamic array of elements of the specified type. More...
 
PBoolean SetAt (PINDEX index, BYTEval)
 Set the specific element in the array. More...
 
BYTE GetAt (PINDEX index) const
 Get a value from the array. More...
 
void Attach (const BYTE *buffer, PINDEX bufferSize)
 Attach a pointer to a static block to the base array type. More...
 
BYTE * GetPointer (PINDEX minSize=0)
 Get a pointer to the internal array and assure that it is of at least the specified size. More...
 
BYTE operator[] (PINDEX index) const
 Get a value from the array. More...
 
BYTE & operator[] (PINDEX index)
 Get a reference to value from the array. More...
 
 operator BYTEconst * () const
 Get a pointer to the internal array. More...
 
PBoolean Concatenate (const PBaseArray &array)
 Concatenate one array to the end of this array. More...
 
- Public Member Functions inherited from PAbstractArray
 PAbstractArray (PINDEX elementSizeInBytes, PINDEX initialSize=0)
 Create a new dynamic array of initalSize elements of elementSizeInBytes bytes each. More...
 
 PAbstractArray (PINDEX elementSizeInBytes, const void *buffer, PINDEX bufferSizeInElements, PBoolean dynamicAllocation)
 Create a new dynamic array of bufferSizeInElements elements of elementSizeInBytes bytes each. More...
 
virtual Comparison Compare (const PObject &obj) const
 Get the relative rank of the two arrays. More...
 
void Attach (const void *buffer, PINDEX bufferSize)
 Attach a pointer to a static block to the base array type. More...
 
void * GetPointer (PINDEX minSize=1)
 Get a pointer to the internal array and assure that it is of at least the specified size. More...
 
PBoolean Concatenate (const PAbstractArray &array)
 Concatenate one array to the end of this array. More...
 
- Public Member Functions inherited from PContainer
 PContainer (PINDEX initialSize=0)
 Create a new unique container. More...
 
 PContainer (const PContainer &cont)
 Create a new refernce to container. More...
 
PContaineroperator= (const PContainer &cont)
 Assign one container reference to another. More...
 
virtual ~PContainer ()
 Destroy the container class. More...
 
virtual PINDEX GetSize () const
 Get the current size of the container. More...
 
__inline size_t size () const
 
PBoolean SetMinSize (PINDEX minSize)
 Set the minimum size of container. More...
 
virtual PBoolean IsEmpty () const
 Determine if the container is empty. More...
 
__inline bool empty () const
 
PBoolean IsUnique () const
 Determine if container is unique reference. More...
 
virtual PBoolean MakeUnique ()
 Make this instance to be the one and only reference to the container contents. More...
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. 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 const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
PBoolean IsClass (const char *cls) const
 
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class. More...
 
__inline const PObjectPTraceObjectInstance () const
 

Additional Inherited Members

- Static Public Member Functions inherited from PObject
static Comparison InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size)
 Internal function caled from CompareObjectMemoryDirect() More...
 
static const char * Class ()
 Get the name of the class as a C string. More...
 
static __inline const PObjectPTraceObjectInstance (const char *)
 
static __inline const PObjectPTraceObjectInstance (const PObject *obj)
 
- Protected Member Functions inherited from PBaseArray< BYTE >
 PBaseArray (PContainerReference &reference_)
 
virtual void PrintElementOn (ostream &stream, PINDEX index) const
 
- Protected Attributes inherited from PAbstractArray
PINDEX elementSize
 Size of an element in bytes. More...
 
char * theArray
 Pointer to the allocated block of memory. More...
 
PBoolean allocatedDynamically
 Flag indicating the array was allocated on the heap. More...
 
- Friends inherited from PObject

Detailed Description

Globally unique ID definition.

This implements a 128 bit globally unique ID as required by many protocols and software systems. The value is constructed in such a way as to make a duplicate anywhere in the world highly unlikely.

Member Enumeration Documentation

anonymous enum
Enumerator
Size 

Size of a GUID.

Constructor & Destructor Documentation

PGloballyUniqueID::PGloballyUniqueID ( )

Create a new ID.

The ID created with this will be initialised to a globally unique ID as per specification.

PGloballyUniqueID::PGloballyUniqueID ( const char *  cstr)

Create an ID from a C string of hex (as produced by AsString()).

A useful construct is to construct a OpalGloballyUniqueID() with NULL which produces an all zero GUID, detectable with the IsNULL() function.

Parameters
cstrC string to convert
PGloballyUniqueID::PGloballyUniqueID ( const PString str)

Create an ID from a PString of hex (as produced by AsString()).

Parameters
strString of hex to convert
PGloballyUniqueID::PGloballyUniqueID ( const void *  data,
PINDEX  size 
)

Create an ID from a block of memory.

If the block is too small it is padded with zeros. If the block is too large, only the initial bytes are used.

Member Function Documentation

PString PGloballyUniqueID::AsString ( ) const

Convert the ID to human readable string.

virtual PObject* PGloballyUniqueID::Clone ( ) const
virtual

Create a clone of the ID.

The duplicate ID has the same value as the source. Required for having this object as a key in dictionaries.

Reimplemented from PBYTEArray.

virtual PINDEX PGloballyUniqueID::HashFunction ( ) const
virtual

Get the hash value for the ID.

Creates a number based on the ID value for use in the hash table of a dictionary. Required for having this object as a key in dictionaries.

Reimplemented from PObject.

PBoolean PGloballyUniqueID::IsNULL ( ) const

Test if the GUID is null, ie consists of all zeros.

Referenced by operator!().

PBoolean PGloballyUniqueID::operator! ( ) const
inline

References IsNULL().

virtual void PGloballyUniqueID::PrintOn ( ostream &  strm) const
virtual

Standard stream print function.

The PObject class has a << operator defined that calls this function polymorphically.

Parameters
strmStream to output text representation
virtual void PGloballyUniqueID::ReadFrom ( istream &  strm)
virtual

Standard stream read function.

The PObject class has a >> operator defined that calls this function polymorphically.

Parameters
strmStream to output text representation

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