File indexing completed on 2025-03-23 12:49:54
0001 /* 0002 SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #ifndef NETWORKMANAGERQT_VPNPLUGIN_H 0008 #define NETWORKMANAGERQT_VPNPLUGIN_H 0009 0010 #include "generictypes.h" 0011 #include "vpnconnection.h" 0012 #include <networkmanagerqt/networkmanagerqt_export.h> 0013 0014 #include <QDBusObjectPath> 0015 #include <QObject> 0016 0017 namespace NetworkManager 0018 { 0019 class VpnPluginPrivate; 0020 0021 class NETWORKMANAGERQT_EXPORT VpnPlugin : public QObject 0022 { 0023 Q_OBJECT 0024 0025 public: 0026 enum FailureType { 0027 LoginFailed, 0028 ConnectFailed, 0029 BadIpConfig, 0030 }; 0031 0032 explicit VpnPlugin(const QString &path, QObject *parent = nullptr); 0033 ~VpnPlugin() override; 0034 0035 Q_SIGNALS: 0036 void configChanged(const QVariantMap &configuration); 0037 void failureChanged(uint reason); 0038 void ip4ConfigChanged(const QVariantMap &ip4config); 0039 void ip6ConfigChanged(const QVariantMap &ip6config); 0040 void loginBannerChanged(const QString &banner); 0041 void stateChanged(VpnConnection::State state); 0042 0043 protected Q_SLOTS: 0044 void connect(const NMVariantMapMap &connection); 0045 void disconnect(); 0046 QString needSecrets(const NMVariantMapMap &connection); 0047 void setConfig(const QVariantMap &config); 0048 void setFailure(const QString &reason); 0049 void setIp4Config(const QVariantMap &config); 0050 void setIp6Config(const QVariantMap &config); 0051 void onStateChanged(uint state); 0052 0053 protected: 0054 VpnPluginPrivate *const d_ptr; 0055 0056 private: 0057 Q_DECLARE_PRIVATE(VpnPlugin) 0058 }; 0059 0060 } // namespace NetworkManager 0061 0062 #endif // NETWORKMANAGERQT_VPNPLUGIN_H