struct CCL::Threading::IThreadPool
Overview
#include <ithreadpool.h> struct IThreadPool: public CCL::IUnknown { // methods virtual int CCL_API getMaxThreadCount () const = 0; virtual int CCL_API getActiveThreadCount () const = 0; virtual void CCL_API allocateThreads (int minCount) = 0; virtual void CCL_API scheduleWork (IWorkItem* item) = 0; virtual void CCL_API cancelWork (WorkID id, tbool force = false) = 0; virtual void CCL_API cancelAll () = 0; virtual void CCL_API addPeriodic (IPeriodicItem* item) = 0; virtual void CCL_API removePeriodic (IPeriodicItem* item) = 0; virtual void CCL_API reduceThreads (tbool force = false) = 0; virtual void CCL_API terminate () = 0; };
Inherited Members
public: // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0;
Detailed Documentation
Methods
virtual int CCL_API getMaxThreadCount () const = 0
Get maximum number of threads working simultaneously.
virtual int CCL_API getActiveThreadCount () const = 0
Get number of threads currently active.
virtual void CCL_API allocateThreads (int minCount) = 0
Set the minimum number of threads available and allocate them if neccessary.
virtual void CCL_API scheduleWork (IWorkItem* item) = 0
Schedule work item (pool takes ownership).
virtual void CCL_API cancelWork (WorkID id, tbool force = false) = 0
Cancel an already scheduled work item.
virtual void CCL_API cancelAll () = 0
Cancel all scheduled work items.
virtual void CCL_API addPeriodic (IPeriodicItem* item) = 0
Add item to be executed periodically.
virtual void CCL_API removePeriodic (IPeriodicItem* item) = 0
Cancel periodic item.
virtual void CCL_API reduceThreads (tbool force = false) = 0
Try to reduce number of active threads if idle for while.
virtual void CCL_API terminate () = 0
Exit all threads and cleanup.