00001
00014 #ifndef _DLR_MUTEX_H_
00015 #define _DLR_MUTEX_H_
00016
00017 namespace dlr {
00018
00019 namespace thread {
00020
00026 template <class MUTEX_TYPE=boost::mutex>
00027 class Mutex
00028 {
00029 public:
00030 Mutex();
00031
00032
00033 Mutex(const Mutex& source);
00034
00035
00039 ~Mutex() {}
00040
00041
00048 Mutex<MUTEX_TYPE>& operator=(const Mutex<MUTEX_TYPE>& source);
00049
00050
00051 Lock<mutex::scoped_lock>
00052 getLock();
00053
00054
00055 private:
00056
00057 MUTEX_TYPE* m_mutex;
00058 ReferenceCount m_referenceCount;
00059
00060 };
00061
00062 };
00063
00064 #endif // #ifndef _DLR_MUTEX_H_