Deskflow 1.26.0.285
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 Synergy App Ltd
4 * SPDX-License-Identifier: GPL-2.0-only WITH LicenseRef-OpenSSL-Exception
5 */
6
7#pragma once
8
9#include <QObject>
10#include <QThread>
11
12class Event;
13class IEventQueue;
15class QLocalServer;
16class QCoreApplication;
17
19class DaemonIpcServer;
20}
21
22#if defined(Q_OS_WIN)
24#endif
25
26extern const char *const kLogFilename;
27
28class DaemonApp : public QObject
29{
30 Q_OBJECT
31
32public:
33 explicit DaemonApp(IEventQueue &events);
34 ~DaemonApp() override;
35
36 void run(QThread &daemonThread);
37 void setForeground();
38 void initLogging();
39 void connectIpcServer(const deskflow::core::ipc::DaemonIpcServer *ipcServer) const;
40
41 static QString logFilename();
42
43private:
44 void daemonize();
45 void handleError(const char *message);
46 int mainLoop();
47 int daemonLoop();
48 void saveLogLevel(const QString &logLevel) const;
49 void setConfigFile(const QString &configFile);
50 void applyWatchdogCommand() const;
51 void clearWatchdogCommand();
52 void clearSettings();
53
54 static void showConsole();
55
56#if defined(Q_OS_WIN)
57 std::unique_ptr<MSWindowsWatchdog> m_pWatchdog;
58#endif
59
60 IEventQueue &m_events;
61 FileLogOutputter *m_pFileLogOutputter = nullptr;
62 deskflow::core::ipc::DaemonIpcServer *m_ipcServer = nullptr;
63 QString m_configFile;
64 bool m_foreground = false;
65};
const char *const kLogFilename
static QString logFilename()
Definition DaemonApp.cpp:239
void initLogging()
Definition DaemonApp.cpp:250
~DaemonApp() override
void setForeground()
Definition DaemonApp.cpp:244
void run(QThread &daemonThread)
Definition DaemonApp.cpp:145
void connectIpcServer(const deskflow::core::ipc::DaemonIpcServer *ipcServer) const
Definition DaemonApp.cpp:126
DaemonApp(IEventQueue &events)
Definition DaemonApp.cpp:36
Event.
Definition Event.h:43
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:19
Definition DaemonApp.h:18