PTLib
Version 2.14.3
|
Low Level thread pool. More...
#include <threadpool.h>
Classes | |
struct | GroupInfo |
class | InternalWork |
class | WorkerThread |
Public Types | |
typedef std::map< Work_T *, InternalWork > | ExternalToInternalWorkMap_T |
typedef std::map< std::string, GroupInfo > | GroupInfoMap_t |
Public Member Functions | |
PThreadPool (unsigned maxWorkers=10, unsigned maxWorkUnits=0, const char *threadName=NULL, PThread::Priority priority=PThread::NormalPriority) | |
bool | AddWork (Work_T *work, const char *group=NULL) |
bool | RemoveWork (Work_T *work, bool removeFromWorker=true) |
![]() | |
~PThreadPoolBase () | |
virtual WorkerThreadBase * | CreateWorkerThread ()=0 |
virtual WorkerThreadBase * | AllocateWorker () |
virtual WorkerThreadBase * | NewWorker () |
unsigned | GetMaxWorkers () const |
void | SetMaxWorkers (unsigned count) |
unsigned | GetMaxUnits () const |
void | SetMaxUnits (unsigned count) |
![]() | |
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 | PrintOn (ostream &strm) const |
Output the contents of the object to the stream. More... | |
virtual void | ReadFrom (istream &strm) |
Input the contents of the object from the stream. More... | |
Public Attributes | |
ExternalToInternalWorkMap_T | m_externalToInternalWorkMap |
GroupInfoMap_t | m_groupInfoMap |
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... | |
![]() | |
typedef std::vector < WorkerThreadBase * > | WorkerList_t |
![]() | |
PThreadPoolBase (unsigned maxWorkerCount, unsigned maxWorkUnitCount, const char *threadName, PThread::Priority priority) | |
virtual bool | CheckWorker (WorkerThreadBase *worker) |
void | StopWorker (WorkerThreadBase *worker) |
![]() | |
PMutex | m_listMutex |
WorkerList_t | m_workers |
unsigned | m_maxWorkerCount |
unsigned | m_maxWorkUnitCount |
unsigned | m_highWaterMark |
PString | m_threadName |
PThread::Priority | m_priority |
![]() |
Low Level thread pool.
typedef std::map<Work_T *, InternalWork> PThreadPool< Work_T >::ExternalToInternalWorkMap_T |
typedef std::map<std::string, GroupInfo> PThreadPool< Work_T >::GroupInfoMap_t |
|
inline |
|
inline |
|
inline |
Referenced by PQueuedThreadPool< Work_T >::QueuedWorkerThread::Main().
ExternalToInternalWorkMap_T PThreadPool< Work_T >::m_externalToInternalWorkMap |
Referenced by PThreadPool< Timeout >::AddWork().
GroupInfoMap_t PThreadPool< Work_T >::m_groupInfoMap |
Referenced by PThreadPool< Timeout >::AddWork().