/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c domain -p generated/com_deepin_ad_domain ../xml/com.deepin.ad.domain.xml
 *
 * qdbusxml2cpp-fix is Copyright (C) 2016 Deepin Technology Co., Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef COM_DEEPIN_AD_DOMAIN_H
#define COM_DEEPIN_AD_DOMAIN_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>

#include <DBusExtendedAbstractInterface>
#include <QtDBus/QtDBus>


/*
 * Proxy class for interface com.deepin.AD.ControlCenter
 */
class __domainPrivate;
class __domain : public DBusExtendedAbstractInterface
{
    Q_OBJECT

public:
    static inline const char *staticInterfaceName()
    { return "com.deepin.AD.ControlCenter"; }

public:
    explicit __domain(const QString &service, const QString &path, const QDBusConnection &connection, QObject *parent = 0);

    ~__domain();

    Q_PROPERTY(QString errorDetail READ errorDetail NOTIFY ErrorDetailChanged)
    QString errorDetail();

    Q_PROPERTY(bool isDemandReboot READ isDemandReboot NOTIFY IsDemandRebootChanged)
    bool isDemandReboot();

    Q_PROPERTY(bool isDomainEnabled READ isDomainEnabled WRITE setIsDomainEnabled NOTIFY IsDomainEnabledChanged)
    bool isDomainEnabled();
    void setIsDomainEnabled(bool value);

    Q_PROPERTY(bool isJoined READ isJoined NOTIFY IsJoinedChanged)
    bool isJoined();

    Q_PROPERTY(bool isProcessing READ isProcessing NOTIFY IsProcessingChanged)
    bool isProcessing();

    Q_PROPERTY(bool isServerValid READ isServerValid NOTIFY IsServerValidChanged)
    bool isServerValid();

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<bool> checkIpv4(const QString &strIp)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strIp);
        return asyncCallWithArgumentList(QStringLiteral("checkIpv4"), argumentList);
    }



    inline QDBusPendingReply<> checkServer(const QString &strIp, int iPort)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strIp) << QVariant::fromValue(iPort);
        return asyncCallWithArgumentList(QStringLiteral("checkServer"), argumentList);
    }

    inline void checkServerQueued(const QString &strIp, int iPort)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strIp) << QVariant::fromValue(iPort);

        CallQueued(QStringLiteral("checkServer"), argumentList);
    }


    inline QDBusPendingReply<> checkUser(int iAreaId, const QString &strAreaName, const QString &strUserName, const QString &strPassword)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(iAreaId) << QVariant::fromValue(strAreaName) << QVariant::fromValue(strUserName) << QVariant::fromValue(strPassword);
        return asyncCallWithArgumentList(QStringLiteral("checkUser"), argumentList);
    }

    inline void checkUserQueued(int iAreaId, const QString &strAreaName, const QString &strUserName, const QString &strPassword)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(iAreaId) << QVariant::fromValue(strAreaName) << QVariant::fromValue(strUserName) << QVariant::fromValue(strPassword);

        CallQueued(QStringLiteral("checkUser"), argumentList);
    }


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

    inline void disableDomainQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("disableDomain"), argumentList);
    }


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

    inline void enableDomainQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("enableDomain"), argumentList);
    }


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

    inline void enableHttpsQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("enableHttps"), argumentList);
    }


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

    inline void exitDomainQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("exitDomain"), argumentList);
    }


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

    inline void forceExitDomainQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("forceExitDomain"), argumentList);
    }


    inline QDBusPendingReply<> joinDomain(const QString &strHostName)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strHostName);
        return asyncCallWithArgumentList(QStringLiteral("joinDomain"), argumentList);
    }

    inline void joinDomainQueued(const QString &strHostName)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strHostName);

        CallQueued(QStringLiteral("joinDomain"), argumentList);
    }


    inline QDBusPendingReply<> modifyPassword(const QString &strOldPassword, const QString &strNewPassword)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strOldPassword) << QVariant::fromValue(strNewPassword);
        return asyncCallWithArgumentList(QStringLiteral("modifyPassword"), argumentList);
    }

    inline void modifyPasswordQueued(const QString &strOldPassword, const QString &strNewPassword)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strOldPassword) << QVariant::fromValue(strNewPassword);

        CallQueued(QStringLiteral("modifyPassword"), argumentList);
    }


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



    inline QDBusPendingReply<> queryAreas(const QString &strSearchKey, int iPageIndex, int iPageSize)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strSearchKey) << QVariant::fromValue(iPageIndex) << QVariant::fromValue(iPageSize);
        return asyncCallWithArgumentList(QStringLiteral("queryAreas"), argumentList);
    }

    inline void queryAreasQueued(const QString &strSearchKey, int iPageIndex, int iPageSize)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(strSearchKey) << QVariant::fromValue(iPageIndex) << QVariant::fromValue(iPageSize);

        CallQueued(QStringLiteral("queryAreas"), argumentList);
    }


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

    inline void queryIdentityQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("queryIdentity"), argumentList);
    }


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

    inline void rebootQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("reboot"), argumentList);
    }



Q_SIGNALS: // SIGNALS
    void checkServerEnded(bool bSuccess);
    void checkUserEnded(bool bSuccess);
    void demandReboot();
    void disableDomainEnded(bool bSuccess);
    void enableDomainEnded(bool bSuccess);
    void exitDomainEnded(bool bSuccess);
    void joinDomainEnded(bool bSuccess);
    void modifyPasswordEnded(bool bSuccess);
    void queryAreasEnded(const QString &strJson);
    void queryIdentityEnded(const QString &strJson);
    void serverError(const QString &errorDescription);
    // begin property changed signals
    void ErrorDetailChanged(const QString & value) const;
    void IsDemandRebootChanged(bool  value) const;
    void IsDomainEnabledChanged(bool  value) const;
    void IsJoinedChanged(bool  value) const;
    void IsProcessingChanged(bool  value) const;
    void IsServerValidChanged(bool  value) const;

public Q_SLOTS:
    void CallQueued(const QString &callName, const QList<QVariant> &args);

private Q_SLOTS:
    void onPendingCallFinished(QDBusPendingCallWatcher *w);
    void onPropertyChanged(const QString &propName, const QVariant &value);

private:
    __domainPrivate *d_ptr;
};

namespace com {
  namespace deepin {
    namespace ad {
      typedef ::__domain ControlCenter;
    }
  }
}
#endif
