/*
 * This file was generated by qdbusxml2cpp version 0.8
 * Source file was org.desktopspec.ApplicationManager1.xml
 *
 * qdbusxml2cpp is Copyright (C) The Qt Company Ltd. and other contributors.
 *
 * This is an auto-generated file.
 * This file may have been hand-edited. Look for HAND-EDIT comments
 * before re-generating it.
 */

#ifndef APPLICATIONMANAGER1ADAPTOR_H
#define APPLICATIONMANAGER1ADAPTOR_H

#include <QtCore/QObject>
#include <QtDBus/QtDBus>
#include "dbus/applicationmanager1service.h"
#include <QtCore/qcontainerfwd.h>

/*
 * Adaptor class for interface org.desktopspec.ApplicationManager1
 */
class ApplicationManager1Adaptor: public QDBusAbstractAdaptor
{
    Q_OBJECT
    Q_CLASSINFO("D-Bus Interface", "org.desktopspec.ApplicationManager1")
    Q_CLASSINFO("D-Bus Introspection", ""
"  <interface name=\"org.desktopspec.ApplicationManager1\">\n"
"    <property access=\"read\" type=\"ao\" name=\"List\"/>\n"
"    <method name=\"ReloadApplications\">\n"
"      <annotation value=\"This method is used to update the desktop file cache when needed.                        You can pass a list of absolute paths to files or directories that you want to update.                        Note: Application Manager only supports directory paths in $XDG_DATA_DIRS.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"    <method name=\"Identify\">\n"
"      <arg direction=\"in\" type=\"h\" name=\"pidfd\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"id\"/>\n"
"      <arg direction=\"out\" type=\"o\" name=\"instance\"/>\n"
"      <arg direction=\"out\" type=\"a{sa{sv}}\" name=\"application_instance_info\"/>\n"
"      <annotation value=\"ObjectInterfaceMap\" name=\"org.qtproject.QtDBus.QtTypeName.Out2\"/>\n"
"      <annotation value=\"Given a pidfd,                        this method return a destkop file id,                        an application instance object path,                        as well as an application object path.                         NOTE:                        1. You should use pidfd_open(2) to get a pidfd.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"    <method name=\"addUserApplication\">\n"
"      <arg direction=\"in\" type=\"a{sv}\" name=\"desktop_file\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"name\"/>\n"
"      <arg direction=\"out\" type=\"s\" name=\"app_id\"/>\n"
"      <annotation value=\"QVariantMap\" name=\"org.qtproject.QtDBus.QtTypeName.In0\"/>\n"
"      <annotation value=\"Desktop-entry-spec: https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html,                        type of `v` is depends on the property which you want to set.                        examples:                        {'Name':{'en_US':'example','default':'测试'},{'custom':10}} : a{sa{sv}} // Name=测试 Name[en_US]=example custom=10                        {'custom':20,'Name':'example'} : a{sv} // custom=20 Name=example                       \" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"    <method name=\"deleteUserApplication\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"app_id\"/>\n"
"      <annotation value=\"Delete a user application by app_id.\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"    <method name=\"executeCommand\">\n"
"      <arg direction=\"in\" type=\"s\" name=\"program\"/>\n"
"      <arg direction=\"in\" type=\"as\" name=\"arguments\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"type\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"runId\"/>\n"
"      <arg direction=\"in\" type=\"a{ss}\" name=\"envVars\"/>\n"
"      <arg direction=\"in\" type=\"s\" name=\"workdir\"/>\n"
"      <arg direction=\"out\" type=\"o\" name=\"instancePath\"/>\n"
"      <annotation value=\"QStringList\" name=\"org.qtproject.QtDBus.QtTypeName.In1\"/>\n"
"      <annotation value=\"QStringMap\" name=\"org.qtproject.QtDBus.QtTypeName.In4\"/>\n"
"      <annotation value=\"Execute a non-system application with the specified parameters.                        This method creates a systemd service to run the command with proper cgroup management.                         Parameters:                        - program: Full path to the executable                        - arguments: List of command line arguments (optional)                        - type: Execution type, must be one of: 'shortcut', 'script', 'portablebinary'                        - runId: Fake app ID for identification (optional, defaults to escaped program path)                        - envVars: Custom environment variables (optional)                        - workdir: Working directory (optional)                         Returns:                        - instancePath: The instance object path on DBus. It's currently empty and reserved for future use.                         The systemd unit will be created with cgroup: app-DDE-tmp.{type}.{runId}@{random}.service\" name=\"org.freedesktop.DBus.Description\"/>\n"
"    </method>\n"
"  </interface>\n"
        "")
public:
    ApplicationManager1Adaptor(ApplicationManager1Service *parent);
    ~ApplicationManager1Adaptor() override;

    inline ApplicationManager1Service *parent() const
    { return static_cast<ApplicationManager1Service *>(QObject::parent()); }

public: // PROPERTIES
    Q_PROPERTY(QList<QDBusObjectPath> List READ list)
    QList<QDBusObjectPath> list() const;

public Q_SLOTS: // METHODS
    QString Identify(const QDBusUnixFileDescriptor &pidfd, QDBusObjectPath &instance, ObjectInterfaceMap &application_instance_info);
    void ReloadApplications();
    QString addUserApplication(const QVariantMap &desktop_file, const QString &name);
    void deleteUserApplication(const QString &app_id);
    QDBusObjectPath executeCommand(const QString &program, const QStringList &arguments, const QString &type, const QString &runId, const QStringMap &envVars, const QString &workdir);
Q_SIGNALS: // SIGNALS
};

#endif
