1/*
2 SPDX-FileCopyrightText: 2013 Jan Grulich <jgrulich@redhat.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6
7#ifndef NETWORKMANAGERQT_MACVLAN_DEVICE_H
8#define NETWORKMANAGERQT_MACVLAN_DEVICE_H
9
10#include "device.h"
11#include <networkmanagerqt/networkmanagerqt_export.h>
12
13namespace NetworkManager
14{
15class MacVlanDevicePrivate;
16
17/**
18 * A macvlan device interface
19 */
20class NETWORKMANAGERQT_EXPORT MacVlanDevice : public Device
21{
22 Q_OBJECT
23 Q_PROPERTY(QString mode READ mode NOTIFY modeChanged)
24 Q_PROPERTY(bool noPromisc READ noPromisc NOTIFY noPromiscChanged)
25 Q_PROPERTY(QString parent READ parent NOTIFY parentChanged)
26
27public:
28 typedef QSharedPointer<MacVlanDevice> Ptr;
29 typedef QList<Ptr> List;
30 explicit MacVlanDevice(const QString &path, QObject *parent = nullptr);
31 ~MacVlanDevice() override;
32
33 Type type() const override;
34
35 QString mode() const;
36 bool noPromisc() const;
37 QString parent() const;
38
39Q_SIGNALS:
40 void modeChanged(const QString &mode);
41 void noPromiscChanged(bool noPromisc);
42 void parentChanged(const QString &parent);
43
44private:
45 Q_DECLARE_PRIVATE(MacVlanDevice)
46};
47
48}
49
50#endif
51

source code of networkmanager-qt/src/macvlandevice.h