#include <ptlib/array.h>
Go to the source code of this file.
Classes | |
class | POrdinalKey |
struct | PHashTableElement |
class | PHashTable |
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 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); } \ }
#define PSET | ( | cls, | |||
K | ) |
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); } \ }
PSET | ( | POrdinalSet | , | |
POrdinalKey | ||||
) |