nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
Iterator für die Liste der Systemnetzwerkschnittstellen.
Zusammenfassung
Verwenden Sie Objekte dieser Klasse, um die Liste der Systemnetzwerkschnittstellen zu iterieren.
Methoden für eine einzelne Instanz dieser Klasse sind nicht threadsicher. Es können jedoch separate Instanzen gleichzeitig von mehreren Threads verwendet werden.
In Multithread-LwIP-Systemen sind Instanzen threadsicher im Vergleich zu anderen Threads, die auf den globalen LwIP-Status zugreifen, vorausgesetzt, dass die anderen Threads die LwIP-Kernsperre enthalten und gleichzeitig die Liste der Netifs mutieren, und das Netif-Objekt selbst wird nie gelöscht.
Bei Socket-basierten Systemen ist die Iteration bei Änderungen an den Schnittstellen des zugrunde liegenden Systems immer stabil.
Bei LwIP-Systemen ist die Iteration stabil, außer wenn die aktuell ausgewählte Schnittstelle aus der Liste entfernt wird. In diesem Fall endet die Iteration sofort.
Konstruktoren und Zerstörer |
|
---|---|
InterfaceIterator(void)
Konstruiert ein InterfaceIterator-Objekt.
|
|
~InterfaceIterator(void)
Zerstört ein InterfaceIterator-Objekt.
|
Geschützte Attribute |
|
---|---|
mCurIntf
|
size_t
|
mCurNetif
|
struct netif *
|
mIntfArray
|
struct if_nameindex *
|
mIntfFlags
|
short
|
mIntfFlagsCached
|
bool
|
Öffentliche Funktionen |
|
---|---|
GetInterface(void)
|
InterfaceId
Eingestellter Alias für
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Gibt die Netzwerkschnittstellen-ID an der aktuellen Iteratorposition zurück.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Ruft den Namen der aktuellen Netzwerkschnittstelle ab.
|
HasBroadcastAddress(void)
|
bool
Gibt an, ob die aktuelle Netzwerkschnittstelle eine Sendeadresse hat.
|
HasCurrent(void)
|
bool
Testen Sie, ob sich der Iterator auf einer Schnittstelle befindet.
|
IsUp(void)
|
bool
Gibt an, ob die aktuelle Netzwerkschnittstelle aktiv ist.
|
Next(void)
|
bool
Mit dem Iterator die nächste Netzwerkschnittstelle erreichen.
|
SupportsMulticast(void)
|
bool
Gibt an, ob die aktuelle Netzwerkschnittstelle Multicast unterstützt.
|
Geschützte Funktionen |
|
---|---|
GetFlags(void)
|
short
Gibt den ifr_flags-Wert für die aktuelle Schnittstelle zurück.
|
Geschützte Attribute
mCurIntf
size_t mCurIntf
mCurNetif
struct netif * mCurNetif
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
Öffentliche Funktionen
GetInterfaceId
InterfaceId GetInterfaceId( void )
Gibt die Netzwerkschnittstellen-ID an der aktuellen Iteratorposition zurück.
Details | |||||
---|---|---|---|---|---|
Rückgabewerte |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Ruft den Namen der aktuellen Netzwerkschnittstelle ab.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Details | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parameter |
|
||||||||
Rückgabewerte |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Gibt an, ob die aktuelle Netzwerkschnittstelle eine Sendeadresse hat.
Details | |
---|---|
Rückgabe |
true , wenn die aktuelle Netzwerkschnittstelle eine Übertragungsadresse hat, andernfalls false oder wenn der Iterator jenseits des Listenendes positioniert ist. |
HasCurrent
bool HasCurrent( void )
Testen Sie, ob sich der Iterator auf einer Benutzeroberfläche befindet.
Testen Sie, ob sich der Iterator an einer Schnittstellenadresse befindet.
Details | |
---|---|
Rückgabe |
true , wenn sich der Iterator auf einer Schnittstelle befindet; false , wenn eine Position außerhalb der Liste der Schnittstellen liegt. |
Rückgabe |
true , wenn sich der Iterator an einer Schnittstellenadresse befindet. false , wenn eine Position jenseits des Endes der Adressenliste steht. |
InterfaceIterator
InterfaceIterator( void )
Konstruiert ein InterfaceIterator-Objekt.
Startet den Iterator an der ersten Netzwerkschnittstelle. Auf einigen Plattformen kann dieser Konstruktor Ressourcen zuweisen, die vom Destruktor recycelt wurden.
IsUp
bool IsUp( void )
Gibt an, ob die aktuelle Netzwerkschnittstelle aktiv ist.
Details | |
---|---|
Rückgabe |
true , wenn die aktuelle Netzwerkschnittstelle aktiv ist, false , wenn nicht oder der Iterator jenseits des Listenendes positioniert ist. |
Weiter
bool Next( void )
Mit dem Iterator die nächste Netzwerkschnittstelle erreichen.
Advances the internal iterator to the next network interface or to a position beyond the end of the interface list. On multi-threaded LwIP systems, this method is thread-safe relative to other threads accessing the global LwIP state provided that: 1) the other threads hold the LwIP core lock while mutating the list of netifs; and 2) netif objects themselves are never destroyed. Iteration is stable in the face of changes to the underlying system's interfaces, *except* in the case of LwIP systems when the currently selected interface is removed from the list, which causes iteration to end immediately.
Details | |
---|---|
Rückgabe |
false bei erweitertem Zugriff über das Ende hinaus, andernfalls true . |
SupportsMulticast
bool SupportsMulticast( void )
Gibt an, ob die aktuelle Netzwerkschnittstelle Multicast unterstützt.
Details | |
---|---|
Rückgabe |
true , wenn die aktuelle Netzwerkschnittstelle Multicast unterstützt, false , wenn dies nicht der Fall ist oder wenn der Iterator über das Ende der Liste hinaus positioniert ist. |
~InterfaceIterator
~InterfaceIterator( void )
Zerstört ein InterfaceIterator-Objekt.
Recycelt alle vom Konstruktor zugewiesenen Ressourcen.
Geschützte Funktionen
GetFlags
short GetFlags( void )
Gibt den ifr_flags-Wert für die aktuelle Schnittstelle zurück.