00001 #if !defined(__MCMONITOR_H_)
00002 #define __MCMONITOR_H_
00003
00004 #ident "@(#)$Id: MCMonitor.h,v 1.3 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/MCMutex.h"
00027 #include "mcllib/MCWaitNotifyAll.h"
00028
00029 namespace mcllib
00030 {
00042 class MCMonitor : public MCMutex, public MCWaitNotifyAll, public MCNonCopy
00043 {
00044 public:
00046 MCMonitor();
00048 virtual ~MCMonitor();
00049
00051 virtual void wait();
00059 virtual bool wait(mcinterval_t interval);
00061 virtual void notify();
00063 virtual void notifyAll();
00064
00070 virtual void lock();
00076 virtual void unlock();
00077 private:
00078 void* m_impl;
00079 };
00080 };
00081
00082 #endif