/*
 * This file was generated by qdbusxml2cpp-fix version 0.8
 * Command line was: qdbusxml2cpp-fix -c ConnectionSession -p generated/com_deepin_daemon_network_connectionsession /build/deepin-qt-dbus-factory/src/dde-qt-dbus-factory-0.4.0/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/networkerrors.h"
#include "types/networkavailablekeys.h"
#include "types/networkconnectiondata.h"

/*
 * Proxy class for interface com.deepin.daemon.ConnectionSession
 */
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)
    inline bool allowDelete()
    { return qvariant_cast< bool >(internalPropGet("AllowDelete", &m_AllowDelete)); }

    Q_PROPERTY(bool AllowEditConnectionId READ allowEditConnectionId NOTIFY AllowEditConnectionIdChanged)
    inline bool allowEditConnectionId()
    { return qvariant_cast< bool >(internalPropGet("AllowEditConnectionId", &m_AllowEditConnectionId)); }

    Q_PROPERTY(NetworkAvailableKeys AvailableKeys READ availableKeys NOTIFY AvailableKeysChanged)
    inline NetworkAvailableKeys availableKeys()
    { return qvariant_cast< NetworkAvailableKeys >(internalPropGet("AvailableKeys", &m_AvailableKeys)); }

    Q_PROPERTY(QStringList AvailableSections READ availableSections NOTIFY AvailableSectionsChanged)
    inline QStringList availableSections()
    { return qvariant_cast< QStringList >(internalPropGet("AvailableSections", &m_AvailableSections)); }

    Q_PROPERTY(QStringList AvailableVirtualSections READ availableVirtualSections NOTIFY AvailableVirtualSectionsChanged)
    inline QStringList availableVirtualSections()
    { return qvariant_cast< QStringList >(internalPropGet("AvailableVirtualSections", &m_AvailableVirtualSections)); }

    Q_PROPERTY(QDBusObjectPath ConnectionPath READ connectionPath NOTIFY ConnectionPathChanged)
    inline QDBusObjectPath connectionPath()
    { return qvariant_cast< QDBusObjectPath >(internalPropGet("ConnectionPath", &m_ConnectionPath)); }

    Q_PROPERTY(NetworkErrors Errors READ errors NOTIFY ErrorsChanged)
    inline NetworkErrors errors()
    { return qvariant_cast< NetworkErrors >(internalPropGet("Errors", &m_Errors)); }

    Q_PROPERTY(QString Type READ type NOTIFY TypeChanged)
    inline QString type()
    { return qvariant_cast< QString >(internalPropGet("Type", &m_Type)); }

    Q_PROPERTY(QString Uuid READ uuid NOTIFY UuidChanged)
    inline QString uuid()
    { return qvariant_cast< QString >(internalPropGet("Uuid", &m_Uuid)); }

public Q_SLOTS: // METHODS
    inline QDBusPendingReply<> Close()
    {
        QList<QVariant> argumentList;
        return asyncCallWithArgumentList(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);
    }

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;

// begin private slots
private Q_SLOTS:
    void onPropertyChanged(const QString &propName, const QVariant &value);

// begin private member vaiables
private:
    bool m_AllowDelete;
    bool m_AllowEditConnectionId;
    NetworkAvailableKeys m_AvailableKeys;
    QStringList m_AvailableSections;
    QStringList m_AvailableVirtualSections;
    QDBusObjectPath m_ConnectionPath;
    NetworkErrors m_Errors;
    QString m_Type;
    QString m_Uuid;
};

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