UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
unnamed_sem.hpp
1 /* unnamed_sem.hpp */
2 /* $Id$ */
3 #ifndef __unnamed_sem_hpp
4 #define __unnamed_sem_hpp
5 
6 #ifdef GE_BUILD
7 #include <sem.hpp>
8 #else
9 #include <dcf/sem.hpp>
10 #endif
11 
12 #include <semaphore.h>
13 
14 namespace dcf
15 {
17  class UnnamedSem : public Sem
18  {
19  public:
20 
23  UnnamedSem(int res_num);
24 
26  virtual ~UnnamedSem();
27 
29  bool ready() const { return m_is_ready; }
30 
32  virtual dcf::error_t allocate(int rn = 1);
33 
35  virtual dcf::error_t release(int rn = 1);
36 
38  virtual dcf::error_t available(int &rn) const;
39 
40  protected:
41 
43  mutable sem_t m_sem;
44 
46  bool m_is_ready;
47 
48  private:
49 
51  UnnamedSem(const UnnamedSem&);
52 
54  virtual UnnamedSem& operator=(const UnnamedSem&);
55  };
56 };
57 
58 #endif /* unnamed_sem.hpp */
error_t
Definition: types.hpp:11
Definition: sem.hpp:15
sem_t m_sem
Definition: unnamed_sem.hpp:43
Definition: unnamed_sem.hpp:17
virtual ~UnnamedSem()
virtual dcf::error_t release(int rn=1)
bool ready() const
Definition: unnamed_sem.hpp:29
virtual dcf::error_t available(int &rn) const
UnnamedSem(int res_num)
virtual dcf::error_t allocate(int rn=1)