File indexing completed on 2025-03-16 12:58:24
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