dict.h File Reference
#include <ptlib/array.h>
Go to the source code of this file.
Classes |
class | POrdinalKey |
class | PHashTable |
class | PHashTable::Element |
class | PAbstractSet |
class | PAbstractDictionary |
Defines |
#define | PSET(cls, K) |
#define | PDECLARE_SET(cls, K, initDelObj) |
#define | PDICTIONARY(cls, K, D) |
#define | PDECLARE_DICTIONARY(cls, K, D) |
#define | PORDINAL_DICTIONARY(cls, K) |
#define | PDECLARE_ORDINAL_DICTIONARY(cls, K) |
Functions |
| PSET (POrdinalSet, POrdinalKey) |
Define Documentation
#define PDECLARE_DICTIONARY |
( |
cls, |
|
|
K, |
|
|
D |
|
) |
|
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_ORDINAL_DICTIONARY |
( |
cls, |
|
|
K |
|
) |
|
Value:PORDINAL_DICTIONARY(cls##_PTemplate, K); \
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_SET |
( |
cls, |
|
|
K, |
|
|
initDelObj |
|
) |
|
Value:PSET(cls##_PTemplate, K); \
PDECLARE_CLASS(cls, cls##_PTemplate) \
protected: \
inline cls(int dummy, const cls * c) \
: cls##_PTemplate(dummy, c) { } \
public: \
inline cls(BOOL initialDeleteObjects = initDelObj) \
: cls##_PTemplate() { AllowDeleteObjects(initialDeleteObjects); } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
#define PDICTIONARY |
( |
cls, |
|
|
K, |
|
|
D |
|
) |
|
Value:class cls : public PAbstractDictionary { \
PCLASSINFO(cls, PAbstractDictionary); \
protected: \
inline cls(int dummy, const cls * c) \
: PAbstractDictionary(dummy, c) { } \
public: \
cls() \
: PAbstractDictionary() { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
D & operator[](const K & key) const \
{ return (D &)GetRefAt(key); } \
virtual BOOL Contains(const K & key) const \
{ return AbstractContains(key); } \
virtual D * RemoveAt(const K & key) \
{ D * obj = GetAt(key); AbstractSetAt(key, NULL); return obj; } \
virtual BOOL SetAt(const K & key, D * obj) \
{ return AbstractSetAt(key, obj); } \
virtual D * GetAt(const K & key) const \
{ return (D *)AbstractGetAt(key); } \
const K & GetKeyAt(PINDEX index) const \
{ return (const K &)AbstractGetKeyAt(index); } \
D & GetDataAt(PINDEX index) const \
{ return (D &)AbstractGetDataAt(index); } \
}
#define PORDINAL_DICTIONARY |
( |
cls, |
|
|
K |
|
) |
|
Value:class cls : public PAbstractDictionary { \
PCLASSINFO(cls, PAbstractDictionary); \
protected: \
inline cls(int dummy, const cls * c) \
: PAbstractDictionary(dummy, c) { } \
public: \
inline cls() \
: PAbstractDictionary() { } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
inline PINDEX operator[](const K & key) const \
{ return (POrdinalKey &)GetRefAt(key); } \
virtual BOOL Contains(const K & key) const \
{ return AbstractContains(key); } \
virtual POrdinalKey * GetAt(const K & key) const \
{ return (POrdinalKey *)AbstractGetAt(key); } \
virtual BOOL SetDataAt(PINDEX index, PINDEX ordinal) \
{ return PAbstractDictionary::SetDataAt(index, PNEW POrdinalKey(ordinal)); } \
virtual BOOL SetAt(const K & key, PINDEX ordinal) \
{ return AbstractSetAt(key, PNEW POrdinalKey(ordinal)); } \
virtual PINDEX RemoveAt(const K & key) \
{ PINDEX ord = *GetAt(key); AbstractSetAt(key, NULL); return ord; } \
inline const K & GetKeyAt(PINDEX index) const \
{ return (const K &)AbstractGetKeyAt(index); } \
inline PINDEX GetDataAt(PINDEX index) const \
{ return (POrdinalKey &)AbstractGetDataAt(index); } \
}
Value:class cls : public PAbstractSet { \
PCLASSINFO(cls, PAbstractSet); \
protected: \
inline cls(int dummy, const cls * c) \
: PAbstractSet(dummy, c) \
{ reference->deleteObjects = c->reference->deleteObjects; } \
public: \
inline cls(BOOL initialDeleteObjects = FALSE) \
: PAbstractSet() { AllowDeleteObjects(initialDeleteObjects); } \
virtual PObject * Clone() const \
{ return PNEW cls(0, this); } \
inline void Include(const PObject * key) \
{ Append((PObject *)key); } \
inline void Exclude(const PObject * key) \
{ Remove(key); } \
inline BOOL operator[](const K & key) const \
{ return AbstractContains(key); } \
inline BOOL Contains(const K & key) const \
{ return AbstractContains(key); } \
virtual const K & GetKeyAt(PINDEX index) const \
{ return (const K &)AbstractGetKeyAt(index); } \
}
Function Documentation