fpmas 1.6
mutex.h
Go to the documentation of this file.
1#ifndef FPMAS_MUTEX_API_H
2#define FPMAS_MUTEX_API_H
3
9
10namespace fpmas { namespace api { namespace synchro {
25 template<typename T>
26 class Mutex {
27 protected:
31 virtual void _lock() = 0;
35 virtual void _lockShared() = 0;
39 virtual void _unlock() = 0;
43 virtual void _unlockShared() = 0;
44
45 public:
54 virtual T& data() = 0;
55
59 virtual const T& data() const = 0;
60
70 virtual const T& read() = 0;
71
75 virtual void releaseRead() = 0;
76
90 virtual T& acquire() = 0;
91
99 virtual void releaseAcquire() = 0;
100
111 virtual void lock() = 0;
115 virtual void unlock() = 0;
122 virtual bool locked() const = 0;
123
133 virtual void lockShared() = 0;
134
141 virtual void unlockShared() = 0;
142
149 virtual int sharedLockCount() const = 0;
150
158 virtual void synchronize() = 0;
159
160 virtual ~Mutex() {}
161 };
162}}}
163#endif
Definition: mutex.h:26
virtual void lockShared()=0
virtual const T & data() const =0
virtual void _unlockShared()=0
virtual void _unlock()=0
virtual const T & read()=0
virtual void unlock()=0
virtual void _lock()=0
virtual void unlockShared()=0
virtual void releaseAcquire()=0
virtual int sharedLockCount() const =0
virtual void _lockShared()=0
virtual void synchronize()=0
virtual bool locked() const =0
virtual void releaseRead()=0
Definition: fpmas.cpp:3