mutexguard.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef MUTEXGUARD_H__
00015 #define MUTEXGUARD_H__
00016
00017 #include "mutex.h"
00018
00019 namespace gloox
00020 {
00021
00022 namespace util
00023 {
00024
00031 class GLOOX_API MutexGuard
00032 {
00033 public:
00038 MutexGuard( Mutex* mutex ) : m_mutex( *mutex ) { if( mutex ) m_mutex.lock(); }
00039
00044 MutexGuard( Mutex& mutex ) : m_mutex( mutex ) { m_mutex.lock(); }
00045
00049 ~MutexGuard() { m_mutex.unlock(); }
00050
00051 private:
00052 MutexGuard& operator=( const MutexGuard& );
00053 Mutex& m_mutex;
00054
00055 };
00056
00057 }
00058
00059 }
00060
00061 #endif // MUTEXGUARD_H__