libzypp
11.13.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
InterProcessMutex.h
Go to the documentation of this file.
1
2
#ifndef ZYPP_BASE_INTER_PROCESS_MUTEX_H
3
#define ZYPP_BASE_INTER_PROCESS_MUTEX_H
4
5
#include <string>
6
#include "
zypp/base/Fd.h
"
7
#include "
zypp/base/Exception.h
"
8
#include "
zypp/base/NonCopyable.h
"
9
#include "
zypp/Pathname.h
"
10
11
namespace
zypp
12
{
13
namespace
base
14
{
15
16
class
ZYppLockedException
:
public
Exception
17
{
18
public
:
19
ZYppLockedException
(
const
std::string & msg_r,
20
const
std::string &
name
,
21
pid_t
locker_pid
);
22
virtual
~ZYppLockedException
()
throw
();
23
pid_t
locker_pid
()
const
{
return
_locker_pid
; }
24
std::string
name
()
const
{
return
_name
; }
25
private
:
26
pid_t
_locker_pid
;
27
std::string
_name
;
28
};
29
43
class
InterProcessMutex
:
private
base::NonCopyable
44
{
45
public
:
50
enum
ConsumerType
51
{
52
Reader
,
53
Writer
54
};
55
59
class
Options
60
{
61
public
:
77
Options
(
ConsumerType
ptype,
78
const
std::string &pname =
"zypp"
,
79
int
ptimeout = -1 );
80
85
void
setPath
(
const
Pathname &
base
);
86
87
std::string
name
;
88
int
timeout
;
89
ConsumerType
type
;
90
Pathname
base
;
91
};
92
108
InterProcessMutex
(
const
Options
&poptions );
109
114
~InterProcessMutex
();
115
116
private
:
117
bool
isProcessRunning
(pid_t pid_r);
118
Pathname
lockFilePath
()
const
;
119
private
:
120
shared_ptr<Fd>
_fd
;
121
Options
_options
;
122
};
123
124
125
} }
126
127
128
#endif
129
zypp
base
InterProcessMutex.h
Generated by
1.8.1