/usr/include/bobcat/signal is in libbobcat-dev 4.04.00-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | #ifndef INCLUDED_SIGNAL_
#define INCLUDED_SIGNAL_
#include <vector>
#include <csignal>
namespace FBB
{
class SignalHandler
{
friend class Signal;
public:
virtual ~SignalHandler();
private:
virtual void signalHandler(size_t signum) = 0;
};
class Signal
{
typedef std::vector<SignalHandler *> SignalHandlerVector;
std::vector<SignalHandlerVector> d_signals;
// d_signals is a vector of vectors of pointers to SignalHandlers
// the row dimension refers to the signal number
// each row holds a SignalHandler object handling that kind of signal
static Signal *s_signal;
public:
static Signal &instance();
Signal(Signal const &) = delete;
Signal &operator=(Signal const &) = delete;
void add(size_t signum, SignalHandler &object);
void remove(size_t signum, SignalHandler &object);
void ignore(size_t signum);
void reset(size_t signum);
private:
Signal();
static void verify(size_t signum, char const *member);
static void handler(int signum); // called by remove
void signal(int signum, sighandler_t handler); // calls sigaction
};
}
#endif
|