Go to the documentation of this file.00001 #ifndef QRK_LOCK_GUARD_H
00002 #define QRK_LOCK_GUARD_H
00003
00013 #include <memory>
00014 #include <cstddef>
00015
00016
00017 namespace qrk
00018 {
00019 class Lock;
00020
00022 class LockGuard
00023 {
00024 public:
00030 explicit LockGuard(Lock& mutex);
00031 ~LockGuard(void);
00032
00033 private:
00034 LockGuard(void);
00035 LockGuard(const LockGuard& rhs);
00036 LockGuard& operator = (const LockGuard& rhs);
00037
00038 void* operator new (size_t);
00039 void* operator new[] (size_t);
00040
00041 struct pImpl;
00042 std::auto_ptr<pImpl> pimpl;
00043 };
00044 }
00045
00046 #endif