summaryrefslogtreecommitdiffstats
path: root/src/input/pvsPrivInputSignalHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/input/pvsPrivInputSignalHandler.h')
-rw-r--r--src/input/pvsPrivInputSignalHandler.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/input/pvsPrivInputSignalHandler.h b/src/input/pvsPrivInputSignalHandler.h
index cb75c86..bc549ec 100644
--- a/src/input/pvsPrivInputSignalHandler.h
+++ b/src/input/pvsPrivInputSignalHandler.h
@@ -19,6 +19,19 @@
#include <QObject>
+/**
+ * Handle signals.
+ *
+ * This class reads \c int values from a file descriptor and dispatches sends
+ * Qt signals according to the \c SIG... value the integer represents.
+ * The purpose of this mechanism is to integrate (asynchronous) Unix signal
+ * handling into the synchronous event-driven Qt main loop. The main() function
+ * is expected to open a socket pair and install handlers for all relevant signals
+ * that simply write the number of the signal to that pipe.
+ *
+ * If allowUnauthenticatedKilling() has not been called, this class only accepts
+ * signal numbers that are sent by the same process.
+ */
class PVSPrivInputSignalHandler : public QObject
{
Q_OBJECT
@@ -28,16 +41,20 @@ public:
{
}
+ /** If \c value is \c true, allow sending signal numbers from other processes. */
void allowUnauthenticatedKilling(bool value)
{
_allowUnauthenticatedKilling = value;
}
public slots:
+ /** Connect this slot to a \c QSocketNotifier's \c activated(int) signal. */
void signalReceived(int sigfd);
signals:
+ /** SIGTERM */
void terminate();
+ /** SIGHUP */
void reloadConfiguration();
private: