/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c ConnectionSession -p generated/com_deepin_daemon_network_connectionsession ../xml/com.deepin.daemon.Network.ConnectionSession.xml
 *
 * qdbusxml2cpp-fix is Copyright (C) 2016 Deepin Technology Co., Ltd.
 *
 * This is an auto-generated file.
 * Do not edit! All changes made to it will be lost.
 */

#ifndef COM_DEEPIN_DAEMON_NETWORK_CONNECTIONSESSION_H
#define COM_DEEPIN_DAEMON_NETWORK_CONNECTIONSESSION_H

#include <QtCore/QObject>
#include <QtCore/QByteArray>
#include <QtCore/QList>
#include <QtCore/QMap>
#include <QtCore/QString>
#include <QtCore/QStringList>
#include <QtCore/QVariant>

#include <DBusExtendedAbstractInterface>
#include <QtDBus/QtDBus>

#include "types/networkavailablekeys.h"
#include "types/networkerrors.h"
#include "types/networkconnectiondata.h"

/*
 * Proxy class for interface com.deepin.daemon.ConnectionSession
 */
class __ConnectionSessionPrivate;
class __ConnectionSession : public DBusExtendedAbstractInterface
{
    Q_OBJECT

public:
    static inline const char *staticInterfaceName()
    { return "com.deepin.daemon.ConnectionSession"; }

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

    ~__ConnectionSession();

    Q_PROPERTY(bool AllowDelete READ allowDelete NOTIFY AllowDeleteChanged)
    bool allowDelete();

    Q_PROPERTY(bool AllowEditConnectionId READ allowEditConnectionId NOTIFY AllowEditConnectionIdChanged)
    bool allowEditConnectionId();

    Q_PROPERTY(NetworkAvailableKeys AvailableKeys READ availableKeys NOTIFY AvailableKeysChanged)
    NetworkAvailableKeys availableKeys();

    Q_PROPERTY(QStringList AvailableSections READ availableSections NOTIFY AvailableSectionsChanged)
    QStringList availableSections();

    Q_PROPERTY(QStringList AvailableVirtualSections READ availableVirtualSections NOTIFY AvailableVirtualSectionsChanged)
    QStringList availableVirtualSections();

    Q_PROPERTY(QDBusObjectPath ConnectionPath READ connectionPath NOTIFY ConnectionPathChanged)
    QDBusObjectPath connectionPath();

    Q_PROPERTY(NetworkErrors Errors READ errors NOTIFY ErrorsChanged)
    NetworkErrors errors();

    Q_PROPERTY(QString Type READ type NOTIFY TypeChanged)
    QString type();

    Q_PROPERTY(QString Uuid READ uuid NOTIFY UuidChanged)
    QString uuid();

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

    inline void CloseQueued()
    {
        QList<QVariant> argumentList;

        CallQueued(QStringLiteral("Close"), argumentList);
    }


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



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



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



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



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



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



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



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



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



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



    inline QDBusPendingReply<> SetKey(const QString &in0, const QString &in1, const QString &in2)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2);
        return asyncCallWithArgumentList(QStringLiteral("SetKey"), argumentList);
    }

    inline void SetKeyQueued(const QString &in0, const QString &in1, const QString &in2)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1) << QVariant::fromValue(in2);

        CallQueued(QStringLiteral("SetKey"), argumentList);
    }


    inline QDBusPendingReply<QDBusUnixFileDescriptor> SetKeyFd(const QString &in0, const QString &in1)
    {
        QList<QVariant> argumentList;
        argumentList << QVariant::fromValue(in0) << QVariant::fromValue(in1);
        return asyncCallWithArgumentList(QStringLiteral("SetKeyFd"), argumentList);
    }




Q_SIGNALS: // SIGNALS
    void ConnectionDataChanged();
    // begin property changed signals
    void AllowDeleteChanged(bool  value) const;
    void AllowEditConnectionIdChanged(bool  value) const;
    void AvailableKeysChanged(NetworkAvailableKeys  value) const;
    void AvailableSectionsChanged(const QStringList & value) const;
    void AvailableVirtualSectionsChanged(const QStringList & value) const;
    void ConnectionPathChanged(const QDBusObjectPath & value) const;
    void ErrorsChanged(NetworkErrors  value) const;
    void TypeChanged(const QString & value) const;
    void UuidChanged(const QString & value) const;

public Q_SLOTS:
    void CallQueued(const QString &callName, const QList<QVariant> &args);

private Q_SLOTS:
    void onPendingCallFinished(QDBusPendingCallWatcher *w);
    void onPropertyChanged(const QString &propName, const QVariant &value);

private:
    __ConnectionSessionPrivate *d_ptr;
};

namespace com {
  namespace deepin {
    namespace daemon {
      typedef ::__ConnectionSession ConnectionSession;
    }
  }
}
#endif
