File indexing completed on 2024-04-14 03:57:38

0001 /*
0002     SPDX-FileCopyrightText: 2016 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_TUN_SETTING_H
0008 #define NETWORKMANAGERQT_TUN_SETTING_H
0009 
0010 #include "setting.h"
0011 #include <networkmanagerqt/networkmanagerqt_export.h>
0012 
0013 #include <QString>
0014 
0015 namespace NetworkManager
0016 {
0017 class TunSettingPrivate;
0018 
0019 /**
0020  * Represents generic setting
0021  */
0022 class NETWORKMANAGERQT_EXPORT TunSetting : public Setting
0023 {
0024 public:
0025     typedef QSharedPointer<TunSetting> Ptr;
0026     typedef QList<Ptr> List;
0027     enum Mode {
0028         Tun,
0029         Tap,
0030     };
0031 
0032     TunSetting();
0033     explicit TunSetting(const Ptr &other);
0034     ~TunSetting() override;
0035 
0036     QString name() const override;
0037 
0038     void setGroup(const QString &group);
0039     QString group() const;
0040 
0041     void setMode(Mode mode);
0042     Mode mode() const;
0043 
0044     void setMultiQueue(bool multiQueue);
0045     bool multiQueue() const;
0046 
0047     void setOwner(const QString &owner);
0048     QString owner() const;
0049 
0050     void setPi(bool pi);
0051     bool pi() const;
0052 
0053     void setVnetHdr(bool vnetHdr);
0054     bool vnetHdr() const;
0055 
0056     void fromMap(const QVariantMap &setting) override;
0057 
0058     QVariantMap toMap() const override;
0059 
0060 protected:
0061     TunSettingPrivate *d_ptr;
0062 
0063 private:
0064     Q_DECLARE_PRIVATE(TunSetting)
0065 };
0066 
0067 NETWORKMANAGERQT_EXPORT QDebug operator<<(QDebug dbg, const TunSetting &setting);
0068 
0069 }
0070 
0071 #endif // NETWORKMANAGERQT_TUN_SETTING_H