File indexing completed on 2024-03-24 15:41:34

0001 /*
0002     SPDX-FileCopyrightText: 2013 Lukáš Tinkl <ltinkl@redhat.com>
0003     SPDX-FileCopyrightText: 2014 Jan Grulich <jgrulich@redhat.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006 */
0007 
0008 #ifndef NETWORKMANAGERQT_VETH_DEVICE_H
0009 #define NETWORKMANAGERQT_VETH_DEVICE_H
0010 
0011 #include "device.h"
0012 #include <networkmanagerqt/networkmanagerqt_export.h>
0013 
0014 namespace NetworkManager
0015 {
0016 class VethDevicePrivate;
0017 
0018 /**
0019  * A veth device interface
0020  */
0021 class NETWORKMANAGERQT_EXPORT VethDevice : public Device
0022 {
0023     Q_OBJECT
0024     Q_PROPERTY(QString peer READ peer NOTIFY peerChanged)
0025 
0026 public:
0027     typedef QSharedPointer<VethDevice> Ptr;
0028     typedef QList<Ptr> List;
0029 
0030     explicit VethDevice(const QString &path, QObject *parent = nullptr);
0031     ~VethDevice() override;
0032 
0033     Type type() const override;
0034 
0035     QString peer() const;
0036 
0037 Q_SIGNALS:
0038     void peerChanged(const QString &peer);
0039 
0040 private:
0041     Q_DECLARE_PRIVATE(VethDevice)
0042 };
0043 
0044 }
0045 
0046 #endif