/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -c DBusPasskey -p dbuspasskey com.deepin.Passkey.xml
 *
 * qdbusxml2cpp is Copyright (C) 2017 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef DBUSPASSKEY_H
#define DBUSPASSKEY_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>

/*
 * Proxy class for interface com.deepin.Passkey
 */
class DBusPasskey: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.deepin.Passkey1"; }

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

    ~DBusPasskey();

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

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

    inline QDBusPendingReply<QString> DeviceDetect(int timeout)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(timeout);
        return asyncCallWithArgumentList(QStringLiteral("DeviceDetect"), argumentList);
    }

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

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

    inline QDBusPendingReply<QString> EncryptKey(int keyType)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(keyType);
        return asyncCallWithArgumentList(QStringLiteral("EncryptKey"), argumentList);
    }

    inline QDBusPendingReply<QString> GetAssertion(const QString &user, const QString &credName, const QString &pin)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(user) << QVariant::fromValue(credName) << QVariant::fromValue(pin);
        return asyncCallWithArgumentList(QStringLiteral("GetAssertion"), argumentList);
    }

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

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

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

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

    inline QDBusPendingReply<QString> MakeCredential(const QString &user, const QString &credName, const QString &pin)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(user) << QVariant::fromValue(credName) << QVariant::fromValue(pin);
        return asyncCallWithArgumentList(QStringLiteral("MakeCredential"), argumentList);
    }

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

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

    inline QDBusPendingReply<> SetSymmetricKey(int encryptType, int keyType, const QString &key)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(encryptType) << QVariant::fromValue(keyType) << QVariant::fromValue(key);
        return asyncCallWithArgumentList(QStringLiteral("SetSymmetricKey"), argumentList);
    }

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

Q_SIGNALS: // SIGNALS
    void DeviceDetectStatus(const QString &id, int finish, const QString &result);
    void DeviceSelectStatus(const QString &id, int finish, const QString &result);
    void GetAssertStatus(const QString &id, const QString &user, int finish, const QString &result);
    void MakeCredStatus(const QString &id, const QString &user, int finish, const QString &result);
    void ResetStatus(const QString &id, int finish, const QString &result);
};

namespace com {
  namespace deepin {
    typedef ::DBusPasskey Passkey;
  }
}
#endif
