Botan
1.10.9
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
src
mutex
mutex.h
Go to the documentation of this file.
1
/*
2
* Mutex
3
* (C) 1999-2007 Jack Lloyd
4
*
5
* Distributed under the terms of the Botan license
6
*/
7
8
#ifndef BOTAN_MUTEX_H__
9
#define BOTAN_MUTEX_H__
10
11
#include <botan/exceptn.h>
12
13
namespace
Botan
{
14
15
/**
16
* Mutex Base Class
17
*/
18
class
Mutex
19
{
20
public
:
21
/**
22
* Lock the mutex
23
*/
24
virtual
void
lock
() = 0;
25
26
/**
27
* Unlock the mutex
28
*/
29
virtual
void
unlock
() = 0;
30
virtual
~Mutex
() {}
31
};
32
33
/**
34
* Mutex Factory
35
*/
36
class
Mutex_Factory
37
{
38
public
:
39
/**
40
* @return newly allocated mutex
41
*/
42
virtual
Mutex
*
make
() = 0;
43
44
virtual
~Mutex_Factory
() {}
45
};
46
47
/**
48
* Mutex Holding Class for RAII
49
*/
50
class
Mutex_Holder
51
{
52
public
:
53
/**
54
* Hold onto a mutex until we leave scope
55
* @param m the mutex to lock
56
*/
57
Mutex_Holder
(
Mutex
* m) : mux(m)
58
{
59
if
(!mux)
60
throw
Invalid_Argument
(
"Mutex_Holder: Argument was NULL"
);
61
mux->
lock
();
62
}
63
64
~Mutex_Holder
() { mux->
unlock
(); }
65
private
:
66
Mutex
* mux;
67
};
68
69
}
70
71
#endif
Botan::Mutex_Holder::~Mutex_Holder
~Mutex_Holder()
Definition:
mutex.h:64
Botan::Mutex::~Mutex
virtual ~Mutex()
Definition:
mutex.h:30
Botan::Mutex_Factory
Definition:
mutex.h:36
Botan::Mutex::lock
virtual void lock()=0
Botan::Invalid_Argument
std::invalid_argument Invalid_Argument
Definition:
exceptn.h:20
Botan::Mutex::unlock
virtual void unlock()=0
Botan::Mutex_Factory::make
virtual Mutex * make()=0
Botan
Definition:
algo_base.h:14
Botan::Mutex_Holder::Mutex_Holder
Mutex_Holder(Mutex *m)
Definition:
mutex.h:57
Botan::Mutex
Definition:
mutex.h:18
Botan::Mutex_Holder
Definition:
mutex.h:50
Botan::Mutex_Factory::~Mutex_Factory
virtual ~Mutex_Factory()
Definition:
mutex.h:44
Generated on Sat Aug 20 2016 08:18:48 for Botan by
1.8.9.1