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

GetInterface

InterfaceId GetInterface(
  void
)

Eingestellter Alias für GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Gibt die Netzwerkschnittstellen-ID an der aktuellen Iteratorposition zurück.

Details
Rückgabewerte
INET_NULL_INTERFACEID
wenn sie über das Ende der Liste hinaus erweitert wurden.
id
Die aktuelle Netzwerkschnittstellen-ID.

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
[in] nameBuf
Region des Arbeitsspeichers, um den Schnittstellennamen zu schreiben
[in] nameBufSize
Größe der Region, angegeben durch nameBuf
Rückgabewerte
INET_NO_ERROR
erfolgreiches Ergebnis, Schnittstellenname geschrieben
INET_ERROR_INCORRECT_STATE
Iterator ist jenseits des Listenendes positioniert
INET_ERROR_NO_MEMORY
Name ist zu groß, um in Puffer geschrieben zu werden
other
anderer System- oder Plattformfehler

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.