-
Notifications
You must be signed in to change notification settings - Fork 3
/
coretools.h
58 lines (42 loc) · 1.23 KB
/
coretools.h
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
55
56
57
58
#ifndef CORETOOLS_H
#define CORETOOLS_H
#include "../view_models/configtools.h"
#include "../view_models/logtools.h"
#include <QByteArray>
#include <QObject>
#include <QProcess>
#include <QProcessEnvironment>
#include <QRegularExpression>
#include <QSharedPointer>
#include <QString>
#include <QStringList>
#include <memory>
namespace across::core {
class CoreTools : public QObject {
Q_OBJECT
Q_PROPERTY(bool isRunning READ isRunning WRITE setIsRunning NOTIFY
isRunningChanged)
public:
explicit CoreTools(QObject *parent = nullptr);
~CoreTools() override;
bool init(QSharedPointer<across::setting::ConfigTools> config);
void setConfig(const QString &stdin_str);
Q_INVOKABLE int run();
Q_INVOKABLE int stop();
Q_INVOKABLE int restart();
[[nodiscard]] bool isRunning() const;
public slots:
void setIsRunning(bool value);
void onReadData();
signals:
void isRunningChanged();
private:
across::config::Core *p_core{};
QSharedPointer<QProcess> p_process;
QSharedPointer<across::setting::ConfigTools> p_config;
std::shared_ptr<spdlog::logger> p_logger;
QString m_config;
bool m_running = false;
};
} // namespace across
#endif // CORETOOLS_H