SigFn
Loading...
Searching...
No Matches
sigfn.hpp
Go to the documentation of this file.
1/*
2** Copyright 2024 Maxtek Consulting
3**
4** Permission is hereby granted, free of charge, to any person obtaining a copy
5** of this software and associated documentation files (the "Software"), to deal
6** in the Software without restriction, including without limitation the rights
7** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8** copies of the Software, and to permit persons to whom the Software is
9** furnished to do so, subject to the following conditions:
10**
11** The above copyright notice and this permission notice shall be included in all
12** copies or substantial portions of the Software.
13**
14** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19** OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20** SOFTWARE.
21*/
22
23#ifndef SIGFN_HPP
24#define SIGFN_HPP
25
32#include "sigfn.h"
33
34#include <functional>
35#include <string>
36#include <unordered_map>
37
38namespace sigfn
39{
45 typedef std::function<void(int)> handler_function;
46
47 const std::string INVALID_SIGNUM = "sigfn: invalid signal code";
48 const std::string INVALID_HANDLER = "sigfn: invalid signal handler";
49
55 class DLL_EXPORT exception final : public std::exception
56 {
57 private:
58 std::string _error_message;
59
60 public:
66 exception(int status);
67
73 const char *what() const noexcept override;
74 };
75
82 DLL_EXPORT void handle(int signum, const handler_function &handler_function);
83
90 DLL_EXPORT void handle(int signum, handler_function &&handler_function);
91
97 DLL_EXPORT void ignore(int signum);
98
104 DLL_EXPORT void reset(int signum);
105}
106
107#endif
sigfn exception
Definition sigfn.hpp:56
exception(int status)
create an exception based on a status code
const char * what() const noexcept override
what override for std::exception
Definition sigfn.hpp:39
std::function< void(int)> handler_function
signal handler function object type
Definition sigfn.hpp:45
const std::string INVALID_SIGNUM
Definition sigfn.hpp:47
const std::string INVALID_HANDLER
Definition sigfn.hpp:48
SigFn C interface.
#define DLL_EXPORT
Definition sigfn.h:42