PTLib
Version 2.14.3
|
This class defines a thread-safe array of objects. More...
#include <safecoll.h>
Classes | |
class | const_iterator |
class | iterator |
class | iterator_base |
class | iterator_pair |
Public Types | |
typedef K | key_type |
typedef D | data_type |
typedef PSafePtr< D > | value_type |
typedef PSafeDictionary< K, D > | dict_type |
Public Member Functions | |
Iterators | |
iterator | begin () |
iterator | end () |
iterator | find (const K &key) |
const_iterator | begin () const |
const_iterator | end () const |
const_iterator | find (const K &key) const |
void | erase (const iterator &it) |
void | erase (const const_iterator &it) |
![]() | |
PSafeDictionaryBase () | |
Create a safe dictionary wrapper around the real collection. More... | |
PSafeDictionaryBase (const PSafeDictionaryBase &other) | |
Copy constructor for safe collection. More... | |
PSafeDictionaryBase & | operator= (const PSafeDictionaryBase &other) |
Assign one safe collection to another. More... | |
virtual void | SetAt (const K &key, D *obj) |
Add an object to the collection. More... | |
virtual PBoolean | RemoveAt (const K &key) |
Remove an object to the collection. More... | |
virtual PBoolean | Contains (const K &key) |
Determine of the dictionary contains an entry for the key. More... | |
virtual PSafePtr< D > | GetAt (PINDEX idx, PSafetyMode mode=PSafeReadWrite) |
Get the instance in the collection of the index. More... | |
virtual PSafePtr< D > | FindWithLock (const K &key, PSafetyMode mode=PSafeReadWrite) const |
Find the instance in the collection of an object with the same value. More... | |
virtual bool | Move (const K &from, const K &to) |
Move an object from one key location to another. More... | |
PArray< K > | GetKeys () const |
Get an array containing all the keys for the dictionary. More... | |
![]() | |
PSafeCollection (PCollection *collection) | |
Create a thread safe collection of objects. More... | |
~PSafeCollection () | |
Destroy the thread safe collection. More... | |
virtual void | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | RemoveAll (PBoolean synchronous=false) |
Remove all objects in collection. More... | |
void | AllowDeleteObjects (PBoolean yes=true) |
Disallow the automatic delete any objects that have been removed. More... | |
void | DisallowDeleteObjects () |
Disallow the automatic delete any objects that have been removed. More... | |
virtual PBoolean | DeleteObjectsToBeRemoved () |
Delete any objects that have been removed. More... | |
virtual void | DeleteObject (PObject *object) const |
Delete an objects that has been removed. More... | |
virtual void | SetAutoDeleteObjects () |
Start a timer to automatically call DeleteObjectsToBeRemoved(). More... | |
PINDEX | GetSize () const |
Get the current size of the collection. More... | |
PBoolean | IsEmpty () const |
Determine if the collection is empty. More... | |
const PMutex & | GetMutex () const |
Get the mutex for the collection. More... | |
PMutex & | GetMutex () |
![]() | |
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 () |
virtual PObject * | Clone () const |
Create a copy of the class on the heap. More... | |
template<class CLS > | |
CLS * | CloneAs () const |
As for Clone() but converts to specified type. More... | |
virtual PINDEX | HashFunction () const |
This function yields a hash value required by the PDictionary class. 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 PObject * | PTraceObjectInstance () const |
virtual Comparison | Compare (const PObject &obj) const |
Compare the two objects and return their relative rank. 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 void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Additional Inherited Members | |
![]() | |
static const char * | Class () |
Get the name of the class as a C string. More... | |
static __inline const PObject * | PTraceObjectInstance (const char *) |
static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
Internal function caled from CompareObjectMemoryDirect() More... | |
![]() | |
void | CopySafeCollection (PCollection *other) |
void | CopySafeDictionary (PAbstractDictionary *other) |
bool | SafeAddObject (PSafeObject *obj, PSafeObject *old) |
void | SafeRemoveObject (PSafeObject *obj) |
PDECLARE_NOTIFIER (PTimer, PSafeCollection, DeleteObjectsTimeout) | |
virtual PBoolean | SafeRemove (PSafeObject *obj) |
Remove an object to the collection. More... | |
virtual PBoolean | SafeRemoveAt (PINDEX idx) |
Remove an object to the collection. More... | |
![]() | |
PCollection * | collection |
PMutex | collectionMutex |
bool | deleteObjects |
PList< PSafeObject > | toBeRemoved |
PMutex | removalMutex |
PTimer * | m_deleteObjectsTimer |
![]() |
This class defines a thread-safe array of objects.
See the PSafeObject class for more details. Especially in regard to enumeration of collections.
typedef D PSafeDictionary< K, D >::data_type |
typedef PSafeDictionary<K, D> PSafeDictionary< K, D >::dict_type |
typedef K PSafeDictionary< K, D >::key_type |
typedef PSafePtr<D> PSafeDictionary< K, D >::value_type |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |