|
PTLib
Version 2.18.8
|
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 Types inherited from PObject | |
| enum | Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 } |
Result of the comparison operation performed by the Compare() function. More... | |
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) |
Public Member Functions inherited from PThreadPoolBase | |
| ~PThreadPoolBase () | |
| void | Shutdown () |
| virtual void | ReclaimWorkers () |
| unsigned | GetMaxWorkers () const |
| void | SetMaxWorkers (unsigned count) |
| unsigned | GetMaxUnits () const |
| void | SetMaxUnits (unsigned count) |
Public Member Functions inherited from PObject | |
| __inline unsigned | GetTraceContextIdentifier () const |
| Get PTRACE context identifier. More... | |
| __inline void | SetTraceContextIdentifier (unsigned id) |
| __inline void | SetTraceContextIdentifier (const PObject &obj) |
| __inline void | SetTraceContextIdentifier (const PObject *obj) |
| __inline void | CopyTraceContextIdentifier (PObject &obj) const |
| __inline void | CopyTraceContextIdentifier (PObject *obj) const |
| virtual | ~PObject () |
| __inline const char * | GetClass () const |
| __inline bool | IsClass (const char *name) const |
| __inline const PObject * | PTraceObjectInstance () const |
| 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 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 Public Member Functions inherited from PObject | |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject &to, const PObject *from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject &from) |
| static __inline void | CopyTraceContextIdentifier (PObject *to, const PObject *from) |
| static __inline const char * | Class () |
| static __inline const PObject * | PTraceObjectInstance (const char *) |
| static __inline const PObject * | PTraceObjectInstance (const PObject *obj) |
| template<typename T > | |
| static Comparison | Compare2 (T v1, T v2) |
| Compare two types, returning Comparison type. More... | |
| static Comparison | InternalCompareObjectMemoryDirect (const PObject *obj1, const PObject *obj2, PINDEX size) |
| Internal function caled from CompareObjectMemoryDirect() More... | |
Protected Types inherited from PThreadPoolBase | |
| typedef std::vector < WorkerThreadBase * > | WorkerList_t |
Protected Member Functions inherited from PThreadPoolBase | |
| PThreadPoolBase (unsigned maxWorkerCount, unsigned maxWorkUnitCount, const char *threadName, PThread::Priority priority) | |
| virtual WorkerThreadBase * | AllocateWorker () |
| virtual WorkerThreadBase * | CreateWorkerThread ()=0 |
| virtual void | StopWorker (WorkerThreadBase *worker) |
| virtual bool | OnWorkerStarted (WorkerThreadBase &thread) |
| PDECLARE_MUTEX (m_mutex) | |
Protected Member Functions inherited from PObject | |
| PObject () | |
| Constructor for PObject, made protected so cannot ever create one on its own. More... | |
Protected Attributes inherited from PThreadPoolBase | |
| WorkerList_t | m_workers |
| unsigned | m_maxWorkerCount |
| unsigned | m_maxWorkUnitCount |
| PString | m_threadName |
| PThread::Priority | m_priority |
Protected Attributes inherited from PObject | |
| unsigned | m_traceContextIdentifier |
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::Work().
| ExternalToInternalWorkMap_T PThreadPool< Work_T >::m_externalToInternalWorkMap |
Referenced by PThreadPool< Worker >::AddWork(), and PThreadPool< Worker >::RemoveWork().
| GroupInfoMap_t PThreadPool< Work_T >::m_groupInfoMap |
Referenced by PThreadPool< Worker >::AddWork(), and PThreadPool< Worker >::RemoveWork().