00001 #if !defined(__MCRWLOCK_H_)
00002 #define __MCRWLOCK_H_
00003
00004 #ident "@(#)$Id: MCRWLock.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/MCRWMutex.h"
00027
00028 namespace mcllib
00029 {
00042 class MCRWLock : public MCNonCopy
00043 {
00044 public:
00050 MCRWLock(MCRWMutex* pMutex);
00058 MCRWLock(MCRWMutex* pMutex, bool reader);
00068 MCRWLock(MCRWMutex* pMutex, bool reader, bool locked);
00075 ~MCRWLock();
00080 bool isLocked() const;
00086 void lock();
00094 void lock(bool reader);
00101 void unlock();
00102
00103 private:
00104 bool m_locked;
00105 MCRWMutex* m_pMutex;
00106 };
00107 };
00108
00109 #endif