/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp com.kylin.backup.manager.xml -p ComKylinBackupManagerInterface
 *
 * qdbusxml2cpp is Copyright (C) 2020 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef COMKYLINBACKUPMANAGERINTERFACE_H
#define COMKYLINBACKUPMANAGERINTERFACE_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>
#include <QtDBus/QtDBus>
#include "../common/mydefine.h"

/*
 * Proxy class for interface com.kylin.backup.manager
 */
class ComKylinBackupManagerInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "com.kylin.backup.manager"; }

public:
    ComKylinBackupManagerInterface(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = nullptr);

    ~ComKylinBackupManagerInterface();

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<int> Mount_backup_partition()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("Mount_backup_partition"), argumentList);
    }

    inline QDBusPendingReply<bool> umountBackupPartition()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("umountBackupPartition"), argumentList);
    }

    inline QDBusPendingReply<bool> remountPartitionsForCasperMode()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("remountPartitionsForCasperMode"), argumentList);
    }

    inline QDBusPendingReply<> autoBackUpForSystemUpdate_noreturn(const QString &autobackup_name, const QString &create_note, const QString &inc_note, const QString &frontUserName, int frontUid)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(autobackup_name) << QVariant::fromValue(create_note) << QVariant::fromValue(inc_note) << QVariant::fromValue(frontUserName) << QVariant::fromValue(frontUid);
        return asyncCallWithArgumentList(QStringLiteral("autoBackUpForSystemUpdate_noreturn"), argumentList);
    }

    inline QDBusPendingReply<int> checkEnv(const BackupWrapper& backupWrapper)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(backupWrapper);
        return asyncCallWithArgumentList(QStringLiteral("checkEnv"), argumentList);
    }

    inline QDBusPendingReply<int> deleteBackupPoint(BackupWrapper backupWrapper)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(backupWrapper);
        return asyncCallWithArgumentList(QStringLiteral("deleteBackupPoint"), argumentList);
    }

    inline QDBusPendingReply<QString, QString> getBackupCommentForSystemUpdate()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("getBackupCommentForSystemUpdate"), argumentList);
    }
    inline QDBusReply<QString> getBackupCommentForSystemUpdate(QString &state)
    {
        QList<QVariant> argumentList;
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("getBackupCommentForSystemUpdate"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            state = qdbus_cast<QString>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<int, bool> getBackupState()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(QStringLiteral("getBackupState"), argumentList);
    }
    inline QDBusReply<int> getBackupState(bool &isActive)
    {
        QList<QVariant> argumentList;
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("getBackupState"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().count() == 2) {
            isActive = qdbus_cast<bool>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<int> ghostBackup(BackupWrapper backupWrapper)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(backupWrapper);
        return asyncCallWithArgumentList(QStringLiteral("ghostBackup"), argumentList);
    }

    inline QDBusPendingReply<int> goBackup(BackupWrapper backupWrapper)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(backupWrapper);
        return asyncCallWithArgumentList(QStringLiteral("goBackup"), argumentList);
    }

    inline QDBusPendingReply<int> goRestore(BackupWrapper backupWrapper)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(backupWrapper);
        return asyncCallWithArgumentList(QStringLiteral("goRestore"), argumentList);
    }

    inline QDBusPendingReply<> cancel()
    {
        return asyncCall(QStringLiteral("cancel"));
    }

    inline QDBusPendingReply<> reboot()
    {
        return asyncCall(QStringLiteral("reboot"));
    }

Q_SIGNALS: // SIGNALS
    void backupFinished(bool result);
    void progress(int in0, int in1);
    void sendBackupResult(bool result);
    void sendDeleteResult(bool result);
    void sendEnvCheckResult(int result);
    void sendGhostBackupResult(bool result);
    void sendRate(int in0, int in1);
    void sendRestoreResult(bool result);
    void sendStartBackupResult(int result);
};

namespace com {
  namespace kylin {
    namespace backup {
      typedef ::ComKylinBackupManagerInterface manager;
    }
  }
}
#endif
