/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp com.deepin.AppStore.Backend.Deb.xml -p lastore_deb_interface -i dbus/dbus_variant/app_version.h -i dbus/dbus_variant/installed_app_info.h -i dbus/dbus_variant/installed_app_timestamp.h -i dbus/dbus_extended_abstract_interface.h -c LastoreDebInterface -l DbusExtendedAbstractInterface -N
 *
 * qdbusxml2cpp is Copyright (C) 2016 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef LASTORE_DEB_INTERFACE_H
#define LASTORE_DEB_INTERFACE_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 "dbus/dbus_variant/app_version.h"
#include "dbus/dbus_variant/installed_app_info.h"
#include "dbus/dbus_variant/installed_app_timestamp.h"
#include "dbus/dbus_extended_abstract_interface.h"

/*
 * Proxy class for interface com.deepin.AppStore.Backend
 */
class LastoreDebInterface: public DbusExtendedAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "com.deepin.AppStore.Backend.Deb"; }

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

    ~LastoreDebInterface();

    Q_PROPERTY(QList<QDBusObjectPath> JobList READ jobList NOTIFY jobListChanged)
    inline QList<QDBusObjectPath> jobList() const
    { return qvariant_cast< QList<QDBusObjectPath> >(property("JobList")); }

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

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

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

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

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

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

    inline QDBusPendingReply<InstalledAppTimestampList> QueryInstallationTime(const QStringList &idList)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(idList);
        return asyncCallWithArgumentList(QStringLiteral("QueryInstallationTime"), argumentList);
    }

    inline QDBusPendingReply<AppVersionList> QueryVersion(const QStringList &idList)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(idList);
        return asyncCallWithArgumentList(QStringLiteral("QueryVersion"), argumentList);
    }

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

Q_SIGNALS: // SIGNALS
    void jobListChanged();
};

#endif
