00001 #ifndef QRK_LOCK_GUARD_H 00002 #define QRK_LOCK_GUARD_H 00003 00013 #include <memory> 00014 00015 00016 namespace qrk 00017 { 00018 class Lock; 00019 00023 class LockGuard 00024 { 00025 LockGuard(void); 00026 LockGuard(const LockGuard& rhs); 00027 LockGuard& operator = (const LockGuard& rhs); 00028 00029 void* operator new (size_t); 00030 void* operator new[] (size_t); 00031 00032 struct pImpl; 00033 std::auto_ptr<pImpl> pimpl; 00034 00035 public: 00041 explicit LockGuard(qrk::Lock& mutex); 00042 ~LockGuard(void); 00043 }; 00044 } 00045 00046 #endif /* !QRK_LOCK_GUARD_H */