00001 #if !defined(__MCTHREADPOOL_H_)
00002 #define __MCTHREADPOOL_H_
00003
00004 #ident "@(#)$Id: MCThreadPool.h,v 1.4 2004/12/02 07:05:20 mike Exp $"
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "mcllib/MCThread.h"
00026
00027 namespace mcllib
00028 {
00029
00030 class MCThreadJob;
00031
00060 class MCThreadPool : public MCBase
00061 {
00062 public:
00083 MCThreadPool(const MCString& name,
00084 mcuint32 maxConcurrency = 1,
00085 MCThread::EType type = MCThread::THRTYPEUSER,
00086 MCThread::EScope scope = MCThread::THRSCOPELOCAL,
00087 MCThread::EState state = MCThread::THRSTATEJOIN,
00088 MCThread::EPriority pri = MCThread::THRPRINORMAL,
00089 mcstacksize_t sz = 0);
00090
00102 mcuint32 addJob(MCThreadJob* pJob);
00108 void removeJob(mcuint32 jobId);
00119 void start();
00127 void stop();
00132 void join();
00133 };
00134 };
00135
00136
00137 #endif