PTLib  Version 2.18.8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
dict.h File Reference
#include <ptlib/array.h>
Include dependency graph for dict.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  PKey< T >
 This class is used when an ordinal index value is the key for PSet and PDictionary classes. More...
 
struct  PHashTableElement
 
struct  PHashTableList
 
class  PHashTableInfo
 
class  PHashTable
 The hash table class is the basis for implementing the PSet and PDictionary classes. More...
 
class  PAbstractSet
 Abstract set of PObjects. More...
 
class  PSet< T >
 This template class maps the PAbstractSet to a specific object type. More...
 
class  PSet< T >::iterator_base
 
class  PSet< T >::iterator
 
class  PSet< T >::const_iterator
 
class  PAbstractDictionary
 A set of ordinal integers. More...
 
class  PDictionary< K, D >
 This template class maps the PAbstractDictionary to a specific key and data types. More...
 
class  PDictionary< K, D >::iterator_base
 
class  PDictionary< K, D >::iterator_pair< CK, CD >
 
class  PDictionary< K, D >::iterator
 
class  PDictionary< K, D >::const_iterator
 
class  POrdinalDictionary< K >
 This template class maps the PAbstractDictionary to a specific key type and a POrdinalKey data type. More...
 

Macros

#define PSET(cls, T)   typedef PSet<T> cls
 Declare set class. More...
 
#define PDECLARE_SET(cls, T, initDelObj)
 Begin declaration of a set class. More...
 
#define PDICTIONARY(cls, K, D)   typedef PDictionary<K, D> cls
 Declare a dictionary class. More...
 
#define PDECLARE_DICTIONARY(cls, K, D)
 Begin declaration of dictionary class. More...
 
#define PORDINAL_DICTIONARY(cls, K)   typedef POrdinalDictionary<K> cls
 Declare an ordinal dictionary class. More...
 
#define PDECLARE_ORDINAL_DICTIONARY(cls, K)
 Begin declaration of an ordinal dictionary class. More...
 

Typedefs

typedef PKey< PINDEX > POrdinalKey
 

Functions

__inline std::ostream & operator<< (std::ostream &strm, const PHashTableList &hash)
 

Macro Definition Documentation

#define PDECLARE_DICTIONARY (   cls,
  K,
 
)
Value:
PDICTIONARY(cls##_PTemplate, K, D); \
PDECLARE_CLASS(cls, cls##_PTemplate) \
protected: \
cls(int dummy, const cls * c) \
: cls##_PTemplate(dummy, c) { } \
public: \
cls() \
: cls##_PTemplate() { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
#define PDECLARE_CLASS(cls, par)
Declare a class with PWLib class information.
Definition: object.h:2192
#define PDICTIONARY(cls, K, D)
Declare a dictionary class.
Definition: dict.h:1262
Ultimate parent class for all objects in the class library.
Definition: object.h:2204
#define PNEW
Macro for overriding system default new operator.
Definition: object.h:1896

Begin declaration of dictionary class.

This macro is used to declare a descendent of PAbstractDictionary class, customised for a particular key type K and data object type D.

If the compilation is using templates then this macro produces a descendent of the PDictionary template class. If templates are not being used then the macro defines a set of inline functions to do all casting of types. The resultant classes have an identical set of functions in either case.

See the PDictionary and PAbstractDictionary classes for more information.

#define PDECLARE_ORDINAL_DICTIONARY (   cls,
 
)
Value:
PORDINAL_DICTIONARY(cls##_PTemplate, K); \
protected: \
cls(int dummy, const cls * c) \
: cls##_PTemplate(dummy, c) { } \
public: \
cls() \
: cls##_PTemplate() { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
#define PORDINAL_DICTIONARY(cls, K)
Declare an ordinal dictionary class.
Definition: dict.h:1434
#define PDECLARE_CLASS(cls, par)
Declare a class with PWLib class information.
Definition: object.h:2192
This template class maps the PAbstractDictionary to a specific key type and a POrdinalKey data type...
Definition: dict.h:1297
Ultimate parent class for all objects in the class library.
Definition: object.h:2204
#define PNEW
Macro for overriding system default new operator.
Definition: object.h:1896

Begin declaration of an ordinal dictionary class.

This macro is used to declare a descendent of PAbstractList class, customised for a particular key type K and data object type of POrdinalKey.

If the compilation is using templates then this macro produces a descendent of the POrdinalDictionary template class. If templates are not being used then the macro defines a set of inline functions to do all casting of types. The resultant classes have an identical set of functions in either case.

See the POrdinalDictionary and PAbstractDictionary classes for more information.

#define PDECLARE_SET (   cls,
  T,
  initDelObj 
)
Value:
class cls : public PSet<T> { \
typedef PSet<T> BaseClass; PCLASSINFO(cls, BaseClass) \
protected: \
cls(int dummy, const cls * c) \
: BaseClass(dummy, c) { } \
public: \
cls(PBoolean initialDeleteObjects = initDelObj) \
: BaseClass(initialDeleteObjects) { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:2164
virtual PObject * Clone() const
Make a complete duplicate of the set.
Definition: dict.h:531
bool PBoolean
Definition: object.h:174
This template class maps the PAbstractSet to a specific object type.
Definition: dict.h:508
Ultimate parent class for all objects in the class library.
Definition: object.h:2204
#define PNEW
Macro for overriding system default new operator.
Definition: object.h:1896

Begin declaration of a set class.

This macro is used to declare a descendent of PAbstractSet class, customised for a particular object type T.

If the compilation is using templates then this macro produces a descendent of the PSet template class. If templates are not being used then the macro defines a set of inline functions to do all casting of types. The resultant classes have an identical set of functions in either case.

See the PSet and PAbstractSet classes for more information.

#define PDICTIONARY (   cls,
  K,
 
)    typedef PDictionary<K, D> cls

Declare a dictionary class.

This macro is used to declare a descendent of PAbstractDictionary class, customised for a particular key type K and data object type D. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the PDictionary template class.

See the PDictionary class and PDECLARE_DICTIONARY macro for more information.

#define PORDINAL_DICTIONARY (   cls,
 
)    typedef POrdinalDictionary<K> cls

Declare an ordinal dictionary class.

This macro is used to declare a descendent of PAbstractDictionary class, customised for a particular key type K and data object type of POrdinalKey. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the POrdinalDictionary template class.

See the POrdinalDictionary class and PDECLARE_ORDINAL_DICTIONARY macro for more information.

#define PSET (   cls,
 
)    typedef PSet<T> cls

Declare set class.

This macro is used to declare a descendent of PAbstractSet class, customised for a particular object type T. This macro closes the class declaration off so no additional members can be added.

If the compilation is using templates then this macro produces a typedef of the PSet template class.

See the PSet class and PDECLARE_SET macro for more information.

Typedef Documentation

typedef PKey<PINDEX> POrdinalKey

Function Documentation

__inline std::ostream& operator<< ( std::ostream &  strm,
const PHashTableList hash 
)