PTLib
Version 2.18.8
|
#include <ptlib/syncthrd.h>
Go to the source code of this file.
Classes | |
class | PSafeObject |
This class defines a thread-safe object in a collection. More... | |
class | PSafeLockBase |
class | PSafeLockReadOnly |
Lock a PSafeObject for read only and automatically unlock it when go out of scope. More... | |
class | PSafeLockReadWrite |
Lock a PSafeObject for read/write and automatically unlock it when go out of scope. More... | |
class | PSafeCollection |
This class defines a thread-safe collection of objects. More... | |
class | PSafePtrBase |
This class defines a base class for thread-safe pointer to an object. More... | |
class | PSafePtrMultiThreaded |
This class defines a base class for thread-safe pointer to an object. More... | |
class | PSafePtr< T, BaseClass > |
This class defines a thread-safe enumeration of object in a collection. More... | |
class | PSafeColl< Coll, Base > |
This class defines a thread-safe collection of objects. More... | |
class | PSafeArray< Base > |
This class defines a thread-safe array of objects. More... | |
class | PSafeList< Base > |
This class defines a thread-safe list of objects. More... | |
class | PSafeSortedList< Base > |
This class defines a thread-safe sorted array of objects. More... | |
class | PSafeDictionaryBase< Coll, Key, Base > |
This class defines a thread-safe dictionary of objects. More... | |
class | PSafeDictionary< K, D > |
This class defines a thread-safe array of objects. More... | |
class | PSafeDictionary< K, D >::iterator_base |
class | PSafeDictionary< K, D >::iterator_pair |
class | PSafeDictionary< K, D >::iterator |
class | PSafeDictionary< K, D >::const_iterator |
Macros | |
#define | P_INSTRUMENTED_LOCK_READ_ONLY2(var, obj) PSafeLockReadOnly var((obj)) |
#define | P_INSTRUMENTED_LOCK_READ_WRITE2(var, obj) PSafeLockReadWrite var((obj)) |
#define | P_MAKE_UNIQUE_VAR(base) P_MAKE_UNIQUE_VAR1(base, __LINE__) |
#define | P_MAKE_UNIQUE_VAR1(base, line) P_MAKE_UNIQUE_VAR2(base, line) |
#define | P_MAKE_UNIQUE_VAR2(base, line) base##line |
#define | P_READ_WRITE_RETURN_ARG_0() |
#define | P_READ_WRITE_RETURN_ARG_1(arg) ; if (!P_MAKE_UNIQUE_VAR(lock).IsLocked()) arg |
#define | P_READ_WRITE_RETURN_PART1(narg, args) P_READ_WRITE_RETURN_PART2(narg, args) |
#define | P_READ_WRITE_RETURN_PART2(narg, args) P_READ_WRITE_RETURN_ARG_##narg args |
#define | P_INSTRUMENTED_LOCK_READ_ONLY(...) P_INSTRUMENTED_LOCK_READ_ONLY2(P_MAKE_UNIQUE_VAR(lock),*this) P_READ_WRITE_RETURN_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__)) |
#define | P_INSTRUMENTED_LOCK_READ_WRITE(...) P_INSTRUMENTED_LOCK_READ_WRITE2(P_MAKE_UNIQUE_VAR(lock),*this) P_READ_WRITE_RETURN_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__)) |
Enumerations | |
enum | PSafetyMode { PSafeReference, PSafeReadOnly, PSafeReadWrite } |
Functions | |
template<class Base , class Derived > | |
PSafePtr< Derived > | PSafePtrCast (const PSafePtr< Base > &oldPtr) |
Cast the pointer to a different type. More... | |
#define P_INSTRUMENTED_LOCK_READ_ONLY | ( | ... | ) | P_INSTRUMENTED_LOCK_READ_ONLY2(P_MAKE_UNIQUE_VAR(lock),*this) P_READ_WRITE_RETURN_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__)) |
#define P_INSTRUMENTED_LOCK_READ_ONLY2 | ( | var, | |
obj | |||
) | PSafeLockReadOnly var((obj)) |
#define P_INSTRUMENTED_LOCK_READ_WRITE | ( | ... | ) | P_INSTRUMENTED_LOCK_READ_WRITE2(P_MAKE_UNIQUE_VAR(lock),*this) P_READ_WRITE_RETURN_PART1(PARG_COUNT(__VA_ARGS__), (__VA_ARGS__)) |
#define P_INSTRUMENTED_LOCK_READ_WRITE2 | ( | var, | |
obj | |||
) | PSafeLockReadWrite var((obj)) |
#define P_MAKE_UNIQUE_VAR | ( | base | ) | P_MAKE_UNIQUE_VAR1(base, __LINE__) |
#define P_MAKE_UNIQUE_VAR1 | ( | base, | |
line | |||
) | P_MAKE_UNIQUE_VAR2(base, line) |
#define P_MAKE_UNIQUE_VAR2 | ( | base, | |
line | |||
) | base##line |
#define P_READ_WRITE_RETURN_ARG_0 | ( | ) |
#define P_READ_WRITE_RETURN_ARG_1 | ( | arg | ) | ; if (!P_MAKE_UNIQUE_VAR(lock).IsLocked()) arg |
#define P_READ_WRITE_RETURN_PART1 | ( | narg, | |
args | |||
) | P_READ_WRITE_RETURN_PART2(narg, args) |
#define P_READ_WRITE_RETURN_PART2 | ( | narg, | |
args | |||
) | P_READ_WRITE_RETURN_ARG_##narg args |
enum PSafetyMode |