Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef QNETWORKINTERFACE_H
00043 #define QNETWORKINTERFACE_H
00044
00045 #include <QtCore/qshareddata.h>
00046 #include <QtCore/qscopedpointer.h>
00047 #include <QtNetwork/qhostaddress.h>
00048
00049 #ifndef QT_NO_NETWORKINTERFACE
00050
00051 QT_BEGIN_HEADER
00052
00053 QT_BEGIN_NAMESPACE
00054
00055 QT_MODULE(Network)
00056
00057 template<typename T> class QList;
00058
00059 class QNetworkAddressEntryPrivate;
00060 class Q_NETWORK_EXPORT QNetworkAddressEntry
00061 {
00062 public:
00063 QNetworkAddressEntry();
00064 QNetworkAddressEntry(const QNetworkAddressEntry &other);
00065 QNetworkAddressEntry &operator=(const QNetworkAddressEntry &other);
00066 ~QNetworkAddressEntry();
00067 bool operator==(const QNetworkAddressEntry &other) const;
00068 inline bool operator!=(const QNetworkAddressEntry &other) const
00069 { return !(*this == other); }
00070
00071 QHostAddress ip() const;
00072 void setIp(const QHostAddress &newIp);
00073
00074 QHostAddress netmask() const;
00075 void setNetmask(const QHostAddress &newNetmask);
00076 int prefixLength() const;
00077 void setPrefixLength(int length);
00078
00079 QHostAddress broadcast() const;
00080 void setBroadcast(const QHostAddress &newBroadcast);
00081
00082 private:
00083 QScopedPointer<QNetworkAddressEntryPrivate> d;
00084 };
00085
00086 class QNetworkInterfacePrivate;
00087 class Q_NETWORK_EXPORT QNetworkInterface
00088 {
00089 public:
00090 enum InterfaceFlag {
00091 IsUp = 0x1,
00092 IsRunning = 0x2,
00093 CanBroadcast = 0x4,
00094 IsLoopBack = 0x8,
00095 IsPointToPoint = 0x10,
00096 CanMulticast = 0x20
00097 };
00098 Q_DECLARE_FLAGS(InterfaceFlags, InterfaceFlag)
00099
00100 QNetworkInterface();
00101 QNetworkInterface(const QNetworkInterface &other);
00102 QNetworkInterface &operator=(const QNetworkInterface &other);
00103 ~QNetworkInterface();
00104
00105 bool isValid() const;
00106
00107 int index() const;
00108 QString name() const;
00109 QString humanReadableName() const;
00110 InterfaceFlags flags() const;
00111 QString hardwareAddress() const;
00112 QList<QNetworkAddressEntry> addressEntries() const;
00113
00114 static QNetworkInterface interfaceFromName(const QString &name);
00115 static QNetworkInterface interfaceFromIndex(int index);
00116 static QList<QNetworkInterface> allInterfaces();
00117 static QList<QHostAddress> allAddresses();
00118
00119 private:
00120 friend class QNetworkInterfacePrivate;
00121 QSharedDataPointer<QNetworkInterfacePrivate> d;
00122 };
00123
00124 Q_DECLARE_OPERATORS_FOR_FLAGS(QNetworkInterface::InterfaceFlags)
00125
00126 #ifndef QT_NO_DEBUG_STREAM
00127 Q_NETWORK_EXPORT QDebug operator<<(QDebug debug, const QNetworkInterface &networkInterface);
00128 #endif
00129
00130 QT_END_NAMESPACE
00131
00132 QT_END_HEADER
00133
00134 #endif // QT_NO_NETWORKINTERFACE
00135
00136 #endif