00001 #if !defined(__MCCONDVAR_H_)
00002 #define __MCCONDVAR_H_
00003
00004 #ident "@(#)$Id: MCCondVar.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/MCNonCopy.h"
00026 #include "mcllib/MCInMutex.h"
00027 #include "mcllib/MCWaitNotifyAll.h"
00028 #include "mcllib/MCTypes.h"
00029
00030 namespace mcllib
00031 {
00039 class MCCondVar : public MCMutex, public MCWaitNotifyAll, public MCNonCopy
00040 {
00041 public:
00048 MCCondVar(MCInMutex* pMutex);
00050 virtual ~MCCondVar();
00052 virtual void wait();
00059 virtual bool wait(mcinterval_t interval);
00061 virtual void notify();
00063 virtual void notifyAll();
00064
00066 virtual void lock();
00068 virtual void unlock();
00069 private:
00070 void* m_impl;
00071 MCInMutex* m_pMutex;
00072 };
00073 };
00074
00075 #endif