gloox 1.0.27
mutexguard.h
1/*
2 Copyright (c) 2007-2023 by Jakob Schröter <js@camaya.net>
3 This file is part of the gloox library. http://camaya.net/gloox
4
5 This software is distributed under a license. The full license
6 agreement can be found in the file LICENSE in this distribution.
7 This software may not be copied, modified, sold or distributed
8 other than expressed in the named license agreement.
9
10 This software is distributed without any warranty.
11*/
12
13
14#ifndef MUTEXGUARD_H__
15#define MUTEXGUARD_H__
16
17#include "mutex.h"
18
19namespace gloox
20{
21
22 namespace util
23 {
24
31 class GLOOX_API MutexGuard
32 {
33 public:
38 MutexGuard( Mutex* mutex ) : m_mutex( *mutex ) { if( mutex ) m_mutex.lock(); }
39
44 MutexGuard( Mutex& mutex ) : m_mutex( mutex ) { m_mutex.lock(); }
45
49 ~MutexGuard() { m_mutex.unlock(); }
50
51 private:
52 MutexGuard& operator=( const MutexGuard& );
53 Mutex& m_mutex;
54
55 };
56
57 }
58
59}
60
61#endif // MUTEXGUARD_H__
A simple implementation of a mutex guard.
Definition: mutexguard.h:32
MutexGuard(Mutex &mutex)
Definition: mutexguard.h:44
MutexGuard(Mutex *mutex)
Definition: mutexguard.h:38
A simple implementation of mutex as a wrapper around a pthread mutex or a win32 critical section.
Definition: mutex.h:34
The namespace for the gloox library.
Definition: adhoc.cpp:28