process-cpp
3.0.0
A simple convenience library for handling processes in C++11.
signalable.cpp
Go to the documentation of this file.
1
/*
2
* Copyright © 2013 Canonical Ltd.
3
*
4
* This program is free software: you can redistribute it and/or modify it
5
* under the terms of the GNU Lesser General Public License version 3,
6
* as published by the Free Software Foundation.
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU Lesser General Public License for more details.
12
*
13
* You should have received a copy of the GNU Lesser General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
15
*
16
* Authored by: Thomas Voß <thomas.voss@canonical.com>
17
*/
18
19
#include <
core/posix/signalable.h
>
20
21
namespace
core
22
{
23
namespace
posix
24
{
25
struct
Signalable::Private
26
{
27
pid_t
pid
;
28
};
29
30
Signalable::Signalable
(pid_t pid) : d(new
Private
{pid})
31
{
32
}
33
34
void
Signalable::send_signal_or_throw
(
Signal
signal)
35
{
36
auto
result = ::kill(d->pid,
static_cast<
int
>
(signal));
37
38
if
(result == -1)
39
throw
std::system_error(errno, std::system_category());
40
}
41
42
void
Signalable::send_signal
(
Signal
signal, std::error_code& e) noexcept
43
{
44
auto
result = ::kill(d->pid,
static_cast<
int
>
(signal));
45
46
if
(result == -1)
47
{
48
e = std::error_code(errno, std::system_category());
49
}
50
}
51
}
52
}
core::posix::Signalable::Private
Definition:
signalable.cpp:26
core::posix::Signalable::Signalable
CORE_POSIX_DLL_LOCAL Signalable(pid_t pid)
Definition:
signalable.cpp:30
core::posix::Signal
Signal
The Signal enum collects the most common POSIX signals.
Definition:
signal.h:39
core
Definition:
child_process.h:32
core::posix::Signalable::Private::pid
pid_t pid
Definition:
signalable.cpp:27
core::posix::Signalable::send_signal_or_throw
virtual void send_signal_or_throw(Signal signal)
Sends a signal to this signalable object.
Definition:
signalable.cpp:34
signalable.h
core::posix::Signalable::send_signal
virtual void send_signal(Signal signal, std::error_code &e) noexcept(true)
Sends a signal to this signalable object.
Definition:
signalable.cpp:42
src
core
posix
signalable.cpp
Generated on Fri Jan 8 2021 09:32:56 for process-cpp by
1.8.20