Deskflow 1.26.0.0
Keyboard and mouse sharing utility
Loading...
Searching...
No Matches
DaemonApp.h
Go to the documentation of this file.
1/*
2 * Deskflow -- mouse and keyboard sharing utility
3 * SPDX-FileCopyrightText: (C) 2012 - 2025 Symless Ltd.
4 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5 */
6
7#pragma once
8
9#include <string>
10
11#include <QObject>
12#include <QThread>
13
14class Event;
15class IEventQueue;
17class QLocalServer;
18class QCoreApplication;
19
21class DaemonIpcServer;
22}
23
24#if SYSAPI_WIN32
26#endif
27
28extern const char *const kLogFilename;
29
30class DaemonApp : public QObject
31{
32 Q_OBJECT
33
34public:
35 explicit DaemonApp(IEventQueue &events);
36 ~DaemonApp() override;
37
38 void run(QThread &daemonThread);
39 void setForeground();
40 void initLogging();
41 void connectIpcServer(const deskflow::core::ipc::DaemonIpcServer *ipcServer) const;
42
43 static QString logFilename();
44
45private:
46 void daemonize();
47 void handleError(const char *message);
48 int mainLoop();
49 int daemonLoop();
50 void saveLogLevel(const QString &logLevel) const;
51 void setElevate(bool elevate);
52 void setCommand(const QString &command);
53 void applyWatchdogCommand() const;
54 void clearWatchdogCommand();
55 void clearSettings() const;
56
57 static void showConsole();
58
59#if SYSAPI_WIN32
60 std::unique_ptr<MSWindowsWatchdog> m_pWatchdog;
61#endif
62
63 IEventQueue &m_events;
64 FileLogOutputter *m_pFileLogOutputter = nullptr;
65 deskflow::core::ipc::DaemonIpcServer *m_ipcServer = nullptr;
66 std::string m_command = "";
67 bool m_elevate = false;
68 bool m_foreground = false;
69};
const char *const kLogFilename
static QString logFilename()
Definition DaemonApp.cpp:211
void initLogging()
Definition DaemonApp.cpp:222
~DaemonApp() override
void setForeground()
Definition DaemonApp.cpp:216
void run(QThread &daemonThread)
Definition DaemonApp.cpp:117
void connectIpcServer(const deskflow::core::ipc::DaemonIpcServer *ipcServer) const
Definition DaemonApp.cpp:97
DaemonApp(IEventQueue &events)
Definition DaemonApp.cpp:35
Event.
Definition Event.h:29
Write log to file.
Definition LogOutputters.h:57
Event queue interface.
Definition IEventQueue.h:29
Monitors and controls a core process on Windows, elevating if necessary.
Definition MSWindowsWatchdog.h:29
Definition DaemonIpcServer.h:18
Definition DaemonApp.h:20