/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -v -c DownloadTrackerAdaptor -p downloadtrackeradaptor.h:downloadtrackeradaptor.cpp -i metatypes.h ../../../../../../ubuntu-download-manager/trunk/docs/dbus/com.canonical.applications.download.xml
 *
 * qdbusxml2cpp is Copyright (C) 2015 The Qt Company Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef DOWNLOADTRACKERADAPTOR_H
#define DOWNLOADTRACKERADAPTOR_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 "metatypes.h"

/*
 * Proxy class for interface com.canonical.applications.Download
 */
class DownloadTrackerAdaptor: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "com.canonical.applications.Download"; }

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

    ~DownloadTrackerAdaptor();

    Q_PROPERTY(QString ClickPackage READ clickPackage)
    inline QString clickPackage() const
    { return qvariant_cast< QString >(property("ClickPackage")); }

    Q_PROPERTY(QString DestinationApp READ destinationApp)
    inline QString destinationApp() const
    { return qvariant_cast< QString >(property("DestinationApp")); }

    Q_PROPERTY(bool ShowInIndicator READ showInIndicator)
    inline bool showInIndicator() const
    { return qvariant_cast< bool >(property("ShowInIndicator")); }

    Q_PROPERTY(QString Title READ title)
    inline QString title() const
    { return qvariant_cast< QString >(property("Title")); }

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

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

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

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

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

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

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

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

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

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

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

    inline QDBusPendingReply<> setHeaders(StringMap headers)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(headers);
        return asyncCallWithArgumentList(QStringLiteral("setHeaders"), argumentList);
    }

    inline QDBusPendingReply<> setMetadata(const QVariantMap &data)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(data);
        return asyncCallWithArgumentList(QStringLiteral("setMetadata"), argumentList);
    }

    inline QDBusPendingReply<> setThrottle(qulonglong speed)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(speed);
        return asyncCallWithArgumentList(QStringLiteral("setThrottle"), argumentList);
    }

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

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

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

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

Q_SIGNALS: // SIGNALS
    void authError(AuthErrorStruct error);
    void canceled(bool success);
    void error(const QString &error);
    void finished(const QString &path);
    void hashError(HashErrorStruct error);
    void httpError(HttpErrorStruct error);
    void networkError(NetworkErrorStruct error);
    void paused(bool success);
    void processError(ProcessErrorStruct error);
    void processing(const QString &path);
    void progress(qulonglong received, qulonglong total);
    void resumed(bool success);
    void started(bool success);
};

namespace com {
  namespace canonical {
    namespace applications {
      typedef ::DownloadTrackerAdaptor Download;
    }
  }
}
#endif
