nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Webhook 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 Thread-sicher. Separate Instanzen können jedoch gleichzeitig von mehreren Threads verwendet werden.

Auf Multithread-LwIP-Systemen sind Instanzen im Vergleich zu anderen Threads, die auf den globalen LwIP-Status zugreifen, Thread-sicher, sofern die anderen Threads die LwIP-Kernsperre haben, während die Liste der Netifs verändert wird, und dass das Netif-Objekt selbst nie gelöscht wird.

Bei Socket-basierten Systemen ist die Iteration bei Änderungen an den zugrunde liegenden Systemschnittstellen immer stabil.

Auf LwIP-Systemen ist die Iteration stabil, es sei denn, die aktuell ausgewählte Schnittstelle wird aus der Liste entfernt. In diesem Fall wird die Iteration sofort beendet.

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 ID der Netzwerkschnittstelle an der aktuellen Position des Iterators zurück.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Rufen Sie den Namen der aktuellen Netzwerkschnittstelle ab.
HasBroadcastAddress(void)
bool
Gibt an, ob die aktuelle Netzwerkschnittstelle eine Sendeadresse hat.
HasCurrent(void)
bool
Testen Sie, ob der Iterator auf einer Schnittstelle positioniert ist.
IsUp(void)
bool
Gibt an, ob die aktuelle Netzwerkschnittstelle aktiv ist.
Next(void)
bool
Springt zur nächsten Netzwerkschnittstelle.
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 ID der Netzwerkschnittstelle an der aktuellen Position des Iterators zurück.

Details
Rückgabewerte
INET_NULL_INTERFACEID
wenn sie über das Ende der Liste hinaus fortgeschritten sind.
id
Die aktuelle ID der Netzwerkschnittstelle.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Rufen Sie 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
Arbeitsspeicherregion zum Schreiben des Schnittstellennamens
[in] nameBufSize
Größe des durch nameBuf angegebenen Bereichs
Rückgabewerte
INET_NO_ERROR
erfolgreiches Ergebnis, geschriebener Schnittstellenname
INET_ERROR_INCORRECT_STATE
Der Iterator befindet sich jenseits des Listenendes.
INET_ERROR_NO_MEMORY
Name ist zu groß, um in den Zwischenspeicher geschrieben zu werden
other
ein 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 Sendeadresse hat, false, wenn dies nicht der Fall ist, oder wenn der Iterator über das Ende der Liste hinaus positioniert wird

HasCurrent

bool HasCurrent(
  void
)

Testen Sie, ob der Iterator auf einer Schnittstelle positioniert ist.

Testen Sie, ob der Iterator an einer Schnittstellenadresse positioniert ist.

Details
Rückgabe
true, wenn sich der Iterator auf einer Schnittstelle befindet; false, wenn er über das Ende der Schnittstellenliste hinaus positioniert wird.
Rückgabe
true, wenn sich der Iterator an einer Schnittstellenadresse befindet; false, wenn er über das Ende der Adressenliste hinaus liegt.

InterfaceIterator

 InterfaceIterator(
  void
)

Konstruiert ein InterfaceIterator-Objekt.

Startet den Iterator an der ersten Netzwerkschnittstelle. Auf einigen Plattformen weist dieser Konstruktor möglicherweise Ressourcen zu, 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 dies nicht der Fall ist oder wenn sich der Iterator über das Ende der Liste hinaus befindet.

Weiter

bool Next(
  void
)

Springt zur nächsten Netzwerkschnittstelle.

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, wenn sie über das Ende hinausgehen, 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 sich der Iterator über das Ende der Liste hinaus befindet.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Zerstört ein InterfaceIterator-Objekt.

Verwendet alle vom Konstruktor zugewiesenen Ressourcen wieder.

Geschützte Funktionen

GetFlags

short GetFlags(
  void
)

Gibt den ifr_flags-Wert für die aktuelle Schnittstelle zurück.