Semaphore.h
Go to the documentation of this file.00001
00002
00003 #ifndef SEMAPHORE_H_
00004 #define SEMAPHORE_H_
00005
00006 #include <string>
00007 #include <semaphore.h>
00008
00009 namespace fesa
00010 {
00011
00016 class Semaphore
00017 {
00018 public:
00019
00027 Semaphore(const std::string& semaphoreName, int32_t value);
00028
00034 void wait();
00035
00042 int32_t tryWait();
00043
00050 int32_t timedWait(const struct timespec* abs_timeout);
00051
00057 void post();
00058
00063 int32_t getValue();
00064
00070 ~Semaphore();
00071 private:
00072
00077 sem_t* semaphore_;
00078
00083 std::string semaphoreName_;
00084 };
00085
00086 }
00087
00088 #endif // SEMAPHORE_H_