00001
00014 #ifndef _DLR_LOCK_H_
00015 #define _DLR_LOCK_H_
00016
00017 namespace dlr {
00018
00019 namespace thread {
00020
00026 template <class LOCK_TYPE=boost::mutex::lock>
00027 class Lock
00028 {
00029 public:
00030 template <class MUTEX_TYPE>
00031 explicit
00032 Lock(MUTEX_TYPE& mutex) {}
00033
00034
00035 Lock(const Lock& source);
00036
00037
00041 ~Lock() {}
00042
00043
00050 Lock<LOCK_TYPE>& operator=(const Lock<LOCK_TYPE>& source) {return *this;}
00051
00052
00053 bool
00054 isShared();
00055
00056
00057 lock();
00058
00059
00060 unlock();
00061
00062 private:
00063
00064 LOCK_TYPE* m_lock;
00065 ReferenceCount m_referenceCount;
00066
00067 };
00068
00069 };
00070
00071 #endif // #ifndef _DLR_LOCK_H_