00001 #ifndef __CMWFWDOORKEEPER_H__ 00002 #define __CMWFWDOORKEEPER_H__ 00003 #include "cmwfwTypes.h" 00004 00005 #include <JTC/JTC.h> 00006 #define POSSIBLE_JTC_ADOPT_CURRENT_THREAD() { JTCAdoptCurrentThread anyName; } 00007 00012 class cmwfwDoorKeeper { 00013 public: 00014 cmwfwDoorKeeper(); 00015 ~cmwfwDoorKeeper(); 00016 void getLock(); 00017 void releaseLock(); 00018 void wait(); 00019 void wait(int timeout); 00020 void notify(); 00021 void notifyAll(); 00022 private: 00023 JTCMonitor theMonitor; 00024 JTCSynchronized* theLockObject; 00025 void heaperr(int line); 00026 }; 00027 00028 00029 00034 class cmwfwDoorKeeperLock { 00035 00036 public: 00037 cmwfwDoorKeeperLock(cmwfwDoorKeeper& theDoorKeeper); 00038 void activate(); 00039 ~cmwfwDoorKeeperLock(); 00040 00041 private: 00042 cmwfwDoorKeeper* mTheDoorKeeper; 00043 bool isActivated; 00044 }; 00045 00046 00047 #endif//#ifndef __CMWFWDOORKEEPER_H__