File indexing completed on 2024-04-14 14:30:37

0001 /*
0002     SPDX-FileCopyrightText: 2008, 2011 Will Stephenson <wstephenson@kde.org>
0003     SPDX-FileCopyrightText: 2013 Daniel Nicoletti <dantti12@gmail.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_IPROUTE_H
0009 #define NETWORKMANAGERQT_IPROUTE_H
0010 
0011 #include "ipaddress.h"
0012 #include <networkmanagerqt/networkmanagerqt_export.h>
0013 
0014 #include <QNetworkAddressEntry>
0015 
0016 namespace NetworkManager
0017 {
0018 /**
0019  * This class represents IP route
0020  */
0021 class NETWORKMANAGERQT_EXPORT IpRoute : public QNetworkAddressEntry
0022 {
0023 public:
0024     /**
0025      * Constructs an empty IpRoute object.
0026      */
0027     IpRoute();
0028 
0029     /**
0030      * Constructs an IpRoute object that is a copy of the object @p other.
0031      */
0032     IpRoute(const IpRoute &other);
0033 
0034     /**
0035      * Destroys this IpRoute object.
0036      */
0037     ~IpRoute();
0038 
0039     /**
0040      * Returns true if the route IP is defined.
0041      */
0042     bool isValid() const;
0043 
0044     /**
0045      * Defines the next hop of the given route.
0046      */
0047     void setNextHop(const QHostAddress &nextHop) const;
0048 
0049     /**
0050      * Returns the next hop of the given route.
0051      */
0052     QHostAddress nextHop() const;
0053 
0054     /**
0055      * Defines the @p metric of the given route,
0056      * lower values have higher priority.
0057      */
0058     void setMetric(quint32 metric);
0059 
0060     /**
0061      * Returns the route metric number of the given route.
0062      */
0063     quint32 metric() const;
0064 
0065     /**
0066      * Makes a copy of the IpRoute object @p other.
0067      */
0068     IpRoute &operator=(const IpRoute &other);
0069 
0070 private:
0071     class Private;
0072     Private *const d;
0073 };
0074 typedef QList<IpRoute> IpRoutes;
0075 
0076 } // namespace NetworkManager
0077 
0078 #endif // NETWORKMANAGERQT_IPROUTE_H