semaphore.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _SEMAPHORE_H_
00023 #define _SEMAPHORE_H_
00024
00025 #include <dcl/exception.h>
00026
00027 namespace dbp {
00028
00030
00033 class semaphore_exception: public dbp::exception {
00034 public:
00035 semaphore_exception(const std::string &msg = "") throw():
00036 dbp::exception(msg) { }
00037 };
00038
00039 class semaphore_int {
00040 public:
00041 virtual ~semaphore_int() { }
00042 virtual void lock() = 0;
00043 virtual void unlock() = 0;
00044 };
00045
00047
00051 class semaphore: public semaphore_int {
00052 public:
00054 semaphore();
00056 virtual ~semaphore();
00058
00064 virtual void lock();
00066
00071 virtual void unlock();
00072 private:
00073 semaphore_int *pimpl;
00074 };
00075
00076 }
00077
00078 #endif
00079