AusweisApp
Lade ...
Suche ...
Keine Treffer
SignalHandler.h
gehe zur Dokumentation dieser Datei
1
5
/*
6
* \brief Implements signal handler for unix and windows.
7
*/
8
9
#pragma once
10
11
#include "
Env.h
"
12
13
#include <QObject>
14
#include <functional>
15
16
#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
17
#include <QSocketNotifier>
18
#include <csignal>
19
#elif defined(Q_OS_WIN)
20
#include <QReadWriteLock>
21
#include <windows.h>
22
#endif
23
24
namespace
governikus
25
{
26
27
class
SignalHandler
28
:
public
QObject
29
,
private
Env::ThreadSafe
30
{
31
Q_OBJECT
32
33
Q_DISABLE_COPY
(
SignalHandler
)
34
friend
class
Env
;
35
friend
void
shutdownApp
();
36
37
private
:
38
bool
mInit;
39
std::
function
<
void
()> mController;
40
41
#ifdef Q_OS_WIN
42
SERVICE_STATUS_HANDLE
mServiceStatusHandle
;
43
QReadWriteLock
mLock;
44
#endif
45
46
SignalHandler
();
47
~SignalHandler
()
override
;
48
49
#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID) && !defined(Q_OS_IOS)
50
51
private
:
52
QScopedPointer<QSocketNotifier>
mSignalSocketNotifier
;
53
static
int
cSignalSocketPair
[2];
54
55
void
initUnix
();
56
static
void
sigHandler
(
int
pSignal
);
57
#elif defined(Q_OS_WIN)
58
59
private
:
60
static
BOOL
WINAPI
ctrlHandler
(
DWORD
pCtrlType
);
61
static
VOID
WINAPI
serviceMain
(
DWORD
pArgc
,
LPTSTR
*
pArgv
);
62
static
VOID
WINAPI
serviceCtrlHandler
(
DWORD
pCtrlCode
);
63
static
void
registerService
();
64
void
setServiceStatus
(
DWORD
pCurrentState
);
65
#endif
66
67
private
Q_SLOTS
:
68
void
onSignalSocketActivated();
69
#if defined(Q_OS_WIN)
70
void
quit();
71
#else
72
void
quit()
const
;
73
#endif
74
75
public
:
76
void
init
();
77
void
setController
(
const
std::function<
void
()>&
pController
);
78
};
79
80
}
// namespace governikus
Env.h
governikus::Env
Definition
Env.h:42
governikus::SignalHandler
Definition
SignalHandler.h:30
governikus::SignalHandler::setController
void setController(const std::function< void()> &pController)
Definition
SignalHandler.cpp:66
governikus::SignalHandler::shutdownApp
friend void shutdownApp()
governikus::SignalHandler::init
void init()
Definition
SignalHandler.cpp:46
governikus
Implementation of GeneralAuthenticate response APDUs.
Definition
CommandApdu.h:17
governikus::VOID
VOID
Definition
MsgTypes.h:22
governikus::decodeObject
QSharedPointer< T > decodeObject(const QByteArray &pData, bool pLogging=true)
Template function for decoding an OpenSSL type from DER encoded QByteArray.
Definition
ASN1TemplateUtil.h:114
governikus::Env::ThreadSafe
Definition
Env.h:47
src
init
SignalHandler.h
Erzeugt von
1.10.0