Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00025
00026 #ifndef ICL_CORE_LOGGING_SEMAPHORE_IMPL_DARWIN_H_INCLUDED
00027 #define ICL_CORE_LOGGING_SEMAPHORE_IMPL_DARWIN_H_INCLUDED
00028
00029 #include <mach/semaphore.h>
00030
00031 #include <icl_core/BaseTypes.h>
00032
00033 #include "SemaphoreImpl.h"
00034
00035 namespace icl_core {
00036 namespace logging {
00037
00038 class SemaphoreImplDarwin : public SemaphoreImpl, protected virtual icl_core::Noncopyable
00039 {
00040 public:
00041 SemaphoreImplDarwin(size_t initial_value);
00042 virtual ~SemaphoreImplDarwin();
00043
00044 virtual void post();
00045 virtual bool wait();
00046
00047 private:
00048 semaphore_t m_semaphore;
00049 };
00050
00051 }
00052 }
00053
00054 #endif