00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __mitkSemaphore_h
00011 #define __mitkSemaphore_h
00012
00013 #include "mitkObject.h"
00014
00015 class mitkSemaphoreImp
00016 {
00017 public:
00018 mitkSemaphoreImp(){}
00019 virtual ~mitkSemaphoreImp(){}
00020 virtual void Wait()=0;
00021 virtual void Post(int count)=0;
00022
00023 };
00024
00028 class MITK_COMMON_API mitkSemaphore: public mitkObject
00029 {
00030 public:
00031 MITK_TYPE(mitkSemaphore,mitkObject)
00032 mitkSemaphore(int initialValue=0);
00036 void Wait()
00037 {
00038 m_Imp->Wait();
00039 }
00044 void Post(int count=1)
00045 {
00046 m_Imp->Post(count);
00047 }
00048 protected:
00049 virtual ~mitkSemaphore();
00050 private:
00051 mitkSemaphore(const mitkSemaphore&);
00052 void operator = (const mitkSemaphore&);
00053 mitkSemaphoreImp *m_Imp;
00054
00055 };
00056
00057 #endif
00058