Semaphore.h

Go to the documentation of this file.
00001 // Copyright CERN 2012 - Developed in collaboration with GSI
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 } // fesa
00087 
00088 #endif // SEMAPHORE_H_

Generated on 18 Jan 2013 for Fesa by  doxygen 1.6.1