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 * \class NetworkManager::MacVlanDevice
19 * \inheaderfile NetworkManagerQt/MacVlanDevice
20 * \inmodule NetworkManagerQt
21 *
22 * \brief A macvlan device interface.
23 */
24class NETWORKMANAGERQT_EXPORT MacVlanDevice : public Device
25{
26 Q_OBJECT
27
28 /*!
29 * \property NetworkManager::MacVlanDevice::mode
30 */
31 Q_PROPERTY(QString mode READ mode NOTIFY modeChanged)
32
33 /*!
34 * \property NetworkManager::MacVlanDevice::noPromisc
35 */
36 Q_PROPERTY(bool noPromisc READ noPromisc NOTIFY noPromiscChanged)
37
38 /*!
39 * \property NetworkManager::MacVlanDevice::parent
40 */
41 Q_PROPERTY(QString parent READ parent NOTIFY parentChanged)
42
43public:
44 /*!
45 * \typedef NetworkManager::MacVlanDevice::Ptr
46 */
47 typedef QSharedPointer<MacVlanDevice> Ptr;
48 /*!
49 * \typedef NetworkManager::MacVlanDevice::List
50 */
51 typedef QList<Ptr> List;
52 /*!
53 */
54 explicit MacVlanDevice(const QString &path, QObject *parent = nullptr);
55 ~MacVlanDevice() override;
56
57 Type type() const override;
58
59 /*!
60 */
61 QString mode() const;
62 /*!
63 */
64 bool noPromisc() const;
65 /*!
66 */
67 QString parent() const;
68
69Q_SIGNALS:
70 /*!
71 */
72 void modeChanged(const QString &mode);
73 /*!
74 */
75 void noPromiscChanged(bool noPromisc);
76 /*!
77 */
78 void parentChanged(const QString &parent);
79
80private:
81 Q_DECLARE_PRIVATE(MacVlanDevice)
82};
83
84}
85
86#endif
87

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