34 #ifndef PTLIB_CONTAIN_H 35 #define PTLIB_CONTAIN_H 114 PINDEX initialSize = 0
153 virtual PINDEX GetSize()
const;
237 virtual void DestroyContents() = 0;
248 virtual void AssignContents(
const PContainer & c);
289 virtual void DestroyReference();
343 #define PCONTAINERINFO(cls, par) \ 344 PCLASSINFO(cls, par) \ 346 cls(const cls & c) : par(c) { CopyContents(c); } \ 347 cls & operator=(const cls & c) \ 348 { AssignContents(c); return *this; } \ 349 virtual ~cls() { Destruct(); } \ 350 virtual PBoolean MakeUnique() \ 351 { if(par::MakeUnique())return true; CloneContents(this);return false; } \ 353 cls(int dummy, const cls * c) : par(dummy, c) { CloneContents(c); } \ 354 virtual void DestroyContents(); \ 355 void CloneContents(const cls * c); \ 356 void CopyContents(const cls & c); \ 357 virtual void AssignContents(const PContainer & c) \ 358 { par::AssignContents(c); CopyContents((const cls &)c); } 405 PINDEX initialSize = 0
440 virtual PINDEX Append(
460 virtual PINDEX Insert(
476 virtual PINDEX InsertAt(
512 virtual void RemoveAll();
547 virtual PINDEX GetObjectsIndex(
559 virtual PINDEX GetValuesIndex(
576 PINLINE void AllowDeleteObjects(
583 void DisallowDeleteObjects();
632 #include <ptlib/contain.inl> 636 #endif // PTLIB_CONTAIN_H virtual void PrintOn(ostream &strm) const
Print the array.
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
#define PINLINE
Definition: object.h:127
PINDEX size
Definition: contain.h:70
BOOL PBoolean
Definition: object.h:102
This class implements an integer that can be atomically incremented and decremented in a thread-safe ...
Definition: critsec.h:171
bool constObject
Definition: contain.h:73
bool deleteObjects
Definition: contain.h:72
virtual ~PContainer()
Destroy the container class.
Definition: contain.h:140
Abstract class to embody the base functionality of a container.
Definition: contain.h:104
__inline PContainerReference(PINDEX initialSize, bool isConst=false)
Definition: contain.h:54
PAtomicInteger count
Definition: contain.h:71
PContainerReference * reference
Definition: contain.h:291
__inline PContainerReference(const PContainerReference &ref)
Definition: contain.h:62
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
A collection is a container that collects together descendents of the PObject class.
Definition: contain.h:395
PDECLARE_POOL_ALLOCATOR()