File indexing completed on 2024-04-21 04:00:12

0001 /*
0002     SPDX-FileCopyrightText: 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_MACVLAN_DEVICE_H
0008 #define NETWORKMANAGERQT_MACVLAN_DEVICE_H
0009 
0010 #include "device.h"
0011 #include <networkmanagerqt/networkmanagerqt_export.h>
0012 
0013 namespace NetworkManager
0014 {
0015 class MacVlanDevicePrivate;
0016 
0017 /**
0018  * A macvlan device interface
0019  */
0020 class NETWORKMANAGERQT_EXPORT MacVlanDevice : public Device
0021 {
0022     Q_OBJECT
0023     Q_PROPERTY(QString mode READ mode NOTIFY modeChanged)
0024     Q_PROPERTY(bool noPromisc READ noPromisc NOTIFY noPromiscChanged)
0025     Q_PROPERTY(QString parent READ parent NOTIFY parentChanged)
0026 
0027 public:
0028     typedef QSharedPointer<MacVlanDevice> Ptr;
0029     typedef QList<Ptr> List;
0030     explicit MacVlanDevice(const QString &path, QObject *parent = nullptr);
0031     ~MacVlanDevice() override;
0032 
0033     Type type() const override;
0034 
0035     QString mode() const;
0036     bool noPromisc() const;
0037     QString parent() const;
0038 
0039 Q_SIGNALS:
0040     void modeChanged(const QString &mode);
0041     void noPromiscChanged(bool noPromisc);
0042     void parentChanged(const QString &parent);
0043 
0044 private:
0045     Q_DECLARE_PRIVATE(MacVlanDevice)
0046 };
0047 
0048 }
0049 
0050 #endif