/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Command line was: qdbusxml2cpp -c TagDBusInterface -p tagdbus_interface org.deepin.filemanager.tag.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 TAGDBUS_INTERFACE_H
#define TAGDBUS_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>

/*
 * Proxy class for interface org.deepin.filemanager.service.Tag
 */
class TagDBusInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.deepin.filemanager.service.Tag"; }

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

    ~TagDBusInterface();

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

    inline QDBusPendingReply<bool> Delete(uint type)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type);
        return asyncCallWithArgumentList(QStringLiteral("Delete"), argumentList);
    }

    inline QDBusPendingReply<bool> Delete(uint type, const QVariantMap &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("Delete"), argumentList);
    }

    inline QDBusPendingReply<bool> Insert(uint type)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type);
        return asyncCallWithArgumentList(QStringLiteral("Insert"), argumentList);
    }

    inline QDBusPendingReply<bool> Insert(uint type, const QVariantMap &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("Insert"), argumentList);
    }

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

    inline QDBusPendingReply<QDBusVariant> Query(uint type)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type);
        return asyncCallWithArgumentList(QStringLiteral("Query"), argumentList);
    }

    inline QDBusPendingReply<QDBusVariant> Query(uint type, const QStringList &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("Query"), argumentList);
    }

    inline QDBusPendingReply<bool> Update(uint type)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type);
        return asyncCallWithArgumentList(QStringLiteral("Update"), argumentList);
    }

    inline QDBusPendingReply<bool> Update(uint type, const QVariantMap &value)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(type) << QVariant::fromValue(value);
        return asyncCallWithArgumentList(QStringLiteral("Update"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void FilesTagged(const QVariantMap &fileAndTags);
    void FilesUntagged(const QVariantMap &fileAndTags);
    void NewTagsAdded(const QVariantMap &tags);
    void TagsColorChanged(const QVariantMap &oldAndNew);
    void TagsDeleted(const QStringList &tags);
    void TagsNameChanged(const QVariantMap &oldAndNew);
};

namespace org {
  namespace deepin {
    namespace filemanager {
      namespace service {
        typedef ::TagDBusInterface Tag;
      }
    }
  }
}
#endif
