summaryrefslogtreecommitdiffstats
path: root/qtservice/src/qtservice_p.h
blob: ef9b0b627d11fc355776215f9248e7c4e960d5b9 (plain)
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
// Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
// SPDX-License-Identifier: BSD-3-Clause

#ifndef QTSERVICE_P_H
#define QTSERVICE_P_H

#include <QStringList>
#include "qtservice.h"

class QtServiceControllerPrivate
{
    Q_DECLARE_PUBLIC(QtServiceController)
public:
    QString serviceName;
    QtServiceController *q_ptr;
};

class QtServiceBasePrivate
{
    Q_DECLARE_PUBLIC(QtServiceBase)
public:

    QtServiceBasePrivate(const QString &name);
    ~QtServiceBasePrivate();

    QtServiceBase *q_ptr;

    QString serviceDescription;
    QtServiceController::StartupType startupType;
    QtServiceBase::ServiceFlags serviceFlags;
    QStringList args;

    static class QtServiceBase *instance;

    QtServiceController controller;

    void startService();
    int run(bool asService, const QStringList &argList);
    bool install(const QString &account, const QString &password);

    bool start();

    QString filePath() const;
    bool sysInit();
    void sysSetPath();
    void sysCleanup();
    class QtServiceSysPrivate *sysd;
};

#endif