00001 #ifndef __J2K__Semaphore_HPP__ 00002 #define __J2K__Semaphore_HPP__ 00003 00004 #include <j2k/Fred/Standard.hpp> 00005 #include <j2k/nto/Mutex.hpp> 00006 00007 class Semaphore { 00008 private: 00009 Mutex m; 00010 SCHAR state; 00011 char* name; 00012 int color; 00013 int fg; 00014 public: 00015 Semaphore( SCHAR init = 0, const char* sem_name = " ", int c = 7 ); 00016 inline virtual ~Semaphore() { } 00017 00018 void P(); 00019 void V(); 00020 SCHAR get(); 00021 void set( SCHAR value ); 00022 00023 // Not implemented. 00024 private: 00025 inline Semaphore( const Semaphore& src ); 00026 inline const Semaphore& operator=( const Semaphore& src ); 00027 }; 00028 00029 #endif