メインページ | クラス階層 | アルファベット順一覧 | 構成 | Directories | ファイル一覧 | 構成メンバ

ylockobject.h

説明を見る。
00001 
00011 #ifndef DEFINE_H_YLOCKOBJECT
00012 #define DEFINE_H_YLOCKOBJECT
00013 
00014 #include <basic.h>
00015 #include <btron/taskcomm.h>
00016 #include "yexception.h"
00017 #include "ysemaphore.h"
00018 
00024 class YLockObject {
00025 public:
00033   YLockObject(YSemaphore* sem, bool initialLock = true) {
00034     locked = false;
00035     semaphore = sem;
00036 
00037     if (initialLock){
00038       lock();
00039     }
00040   }
00041 
00046   ~YLockObject() {
00047     unlock();
00048   }
00049 
00051   void lock() {
00052     if (!locked && semaphore != 0){
00053       semaphore->lock();
00054       locked = true;
00055     }
00056   }
00057 
00059   void unlock() {
00060     if (locked && semaphore != 0){
00061       semaphore->unlock();
00062       locked = false;
00063     }
00064   }
00065 
00066 private:
00068   YSemaphore* semaphore;
00069 
00071   bool locked;
00072 };
00073 
00074 #endif // DEFINE_H_YLOCKOBJECT

YLibに対してMon Mar 21 08:57:44 2005に生成されました。  doxygen 1.4.1