Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members

mitkSemaphore.h

00001 /*=========================================================================
00002 
00003   Program:   3DMed
00004   Date:      $Date: 2014-02-25 18:30:00 +0800 $
00005   Version:   $Version: 4.6.0 $
00006   Copyright: MIPG, Institute of Automation, Chinese Academy of Sciences
00007 
00008 =========================================================================*/
00009 
00010 #ifndef __mitkSemaphore_h
00011 #define __mitkSemaphore_h
00012 
00013 #include "mitkObject.h"
00014 // a non-interfacial abstract class, defining the interface of a semaphore implementor
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 

Generated on Tue Feb 25 15:00:37 2014 for MITK (Medical Imaging ToolKit) by  doxygen 1.4.3