nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
Iterator listy interfejsów sieci systemu.
Podsumowanie
Użyj obiektów tej klasy do iteracji listy interfejsów sieciowych systemu.
metody w pojedynczej instancji tej klasy nie są bezpieczne w wątku; ale oddzielne instancje mogą być używane jednocześnie przez wiele wątków.
W wielowątkowych systemach LwIP instancje są bezpieczne w porównaniu z innymi wątkami uzyskującymi dostęp do globalnego stanu LwIP, o ile pozostałe wątki zachowują blokadę rdzenia LwIP podczas mutowania listy identyfikatorów netif, a sam obiekty netif nigdy nie są niszczone.
W systemach opartych na gniazdach iteracja jest zawsze stabilna w przypadku zmian w interfejsach systemu.
W systemach LwIP iteracja jest stabilna, chyba że aktualnie wybrany interfejs zostanie usunięty z listy – wówczas iteracja zakończy się natychmiast.
Konstruktory i niszczyciele |
|
---|---|
InterfaceIterator(void)
Tworzy obiekt InterfaceIterator.
|
|
~InterfaceIterator(void)
Niszczenie obiektu InterfaceIterator.
|
Atrybuty chronione |
|
---|---|
mCurIntf
|
size_t
|
mCurNetif
|
struct netif *
|
mIntfArray
|
struct if_nameindex *
|
mIntfFlags
|
short
|
mIntfFlagsCached
|
bool
|
Funkcje publiczne |
|
---|---|
GetInterface(void)
|
InterfaceId
Wycofany alias dla
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Zwraca identyfikator interfejsu sieci w bieżącej pozycji iteratora.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Pobierz nazwę bieżącego interfejsu sieci.
|
HasBroadcastAddress(void)
|
bool
Wskazuje, czy bieżący interfejs sieci ma adres rozgłoszeniowy.
|
HasCurrent(void)
|
bool
Sprawdź, czy iterator znajduje się w interfejsie.
|
IsUp(void)
|
bool
Wskazuje, czy bieżący interfejs sieci jest aktywny.
|
Next(void)
|
bool
Przesuń iterację do następnego interfejsu sieci.
|
SupportsMulticast(void)
|
bool
Wskazuje, czy bieżący interfejs sieci obsługuje multiemisję.
|
Funkcje chronione |
|
---|---|
GetFlags(void)
|
short
Zwraca wartość ifr_flags dla bieżącego interfejsu.
|
Atrybuty chronione
mCurIntf
size_t mCurIntf
mCurNetif
struct netif * mCurNetif
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
Funkcje publiczne
GetInterfaceId
InterfaceId GetInterfaceId( void )
Zwraca identyfikator interfejsu sieci w bieżącej pozycji iteratora.
Szczegóły | |||||
---|---|---|---|---|---|
Zwracane wartości |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Pobierz nazwę bieżącego interfejsu sieci.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Wskazuje, czy bieżący interfejs sieci ma adres rozgłoszeniowy.
Szczegóły | |
---|---|
Zwroty |
true , jeśli bieżący interfejs sieci ma adres rozgłoszeniowy, false , jeśli nie ma go lub jeśli iterator znajduje się poza końcem listy. |
HasCurrent
bool HasCurrent( void )
Sprawdź, czy iterator znajduje się w interfejsie.
Sprawdź, czy iterator jest umieszczony pod adresem interfejsu.
Szczegóły | |
---|---|
Zwroty |
true , jeśli iterator znajduje się w interfejsie; false , jeśli znajduje się poza końcem listy interfejsów. |
Zwroty |
true , jeśli iterator jest umieszczony w adresie interfejsu; false , jeśli znajduje się poza końcem listy adresów. |
InterfaceIterator
InterfaceIterator( void )
Tworzy obiekt InterfaceIterator.
Uruchamia iterację na pierwszym interfejsie sieci. Na niektórych platformach ten konstruktor może przydzielać zasoby poddane recyklingowi przez destruktor.
IsUp
bool IsUp( void )
Wskazuje, czy bieżący interfejs sieci jest aktywny.
Szczegóły | |
---|---|
Zwroty |
true , jeśli bieżący interfejs sieci jest włączony, false , jeśli nie lub jeśli iterator znajduje się poza końcem listy. |
Dalej
bool Next( void )
Przesuń iterację do następnego interfejsu sieci.
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.
Szczegóły | |
---|---|
Zwroty |
false , jeśli przejdziesz dalej, w przeciwnym razie true . |
SupportsMulticast
bool SupportsMulticast( void )
Wskazuje, czy bieżący interfejs sieci obsługuje multiemisję.
Szczegóły | |
---|---|
Zwroty |
true , jeśli bieżący interfejs sieci obsługuje multiemisję, false , jeśli nie, lub jeśli iterator znajduje się poza końcem listy. |
~InterfaceIterator
~InterfaceIterator( void )
Niszczenie obiektu InterfaceIterator.
Ponownie uruchamia wszystkie zasoby przydzielone przez konstruktor.
Funkcje chronione
GetFlags
short GetFlags( void )
Zwraca wartość ifr_flags dla bieżącego interfejsu.