All Classes Namespaces Files Functions Variables Enumerations Enumerator
libs/system/LockGuard.h
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 /* !QRK_LOCK_GUARD_H */