/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.freedesktop.impl.portal.PermissionStore.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef PERMISSIONSTOREINTERFACE_H
#define PERMISSIONSTOREINTERFACE_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.freedesktop.impl.portal.PermissionStore
 */
class OrgFreedesktopImplPortalPermissionStoreInterface: public QDBusAbstractInterface
{
    Q_OBJECT
public:
    static inline const char *staticInterfaceName()
    { return "org.freedesktop.impl.portal.PermissionStore"; }

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

    ~OrgFreedesktopImplPortalPermissionStoreInterface();

    Q_PROPERTY(uint version READ version)
    inline uint version() const
    { return qvariant_cast< uint >(property("version")); }

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

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

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

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

    inline QDBusPendingReply<QMap<QString,QStringList> , QDBusVariant> Lookup(const QString &table, const QString &id)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(table) << QVariant::fromValue(id);
        return asyncCallWithArgumentList(QStringLiteral("Lookup"), argumentList);
    }
    inline QDBusReply<QMap<QString,QStringList> > Lookup(const QString &table, const QString &id, QDBusVariant &data)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(table) << QVariant::fromValue(id);
        QDBusMessage reply = callWithArgumentList(QDBus::Block, QStringLiteral("Lookup"), argumentList);
        if (reply.type() == QDBusMessage::ReplyMessage && reply.arguments().size() == 2) {
            data = qdbus_cast<QDBusVariant>(reply.arguments().at(1));
        }
        return reply;
    }

    inline QDBusPendingReply<> Set(const QString &table, bool create, const QString &id, const QMap<QString,QStringList> &app_permissions, const QDBusVariant &data)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(table) << QVariant::fromValue(create) << QVariant::fromValue(id) << QVariant::fromValue(app_permissions) << QVariant::fromValue(data);
        return asyncCallWithArgumentList(QStringLiteral("Set"), argumentList);
    }

    inline QDBusPendingReply<> SetPermission(const QString &table, bool create, const QString &id, const QString &app, const QStringList &permissions)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(table) << QVariant::fromValue(create) << QVariant::fromValue(id) << QVariant::fromValue(app) << QVariant::fromValue(permissions);
        return asyncCallWithArgumentList(QStringLiteral("SetPermission"), argumentList);
    }

    inline QDBusPendingReply<> SetValue(const QString &table, bool create, const QString &id, const QDBusVariant &data)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(table) << QVariant::fromValue(create) << QVariant::fromValue(id) << QVariant::fromValue(data);
        return asyncCallWithArgumentList(QStringLiteral("SetValue"), argumentList);
    }

Q_SIGNALS: // SIGNALS
    void Changed(const QString &table, const QString &id, bool deleted, const QDBusVariant &data, const QMap<QString,QStringList> &permissions);
};

namespace org {
  namespace freedesktop {
    namespace impl {
      namespace portal {
        using PermissionStore = ::OrgFreedesktopImplPortalPermissionStoreInterface;
      }
    }
  }
}

#endif
