nl:: Inet:: InterfaceAddressIterator
#include <src/inet/InetInterface.h>
Iterator listy adresów IP interfejsu sieci systemu.
Podsumowanie
Użyj obiektów tej klasy do iteracji listy adresów IP interfejsu sieci 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 dla wątków względem innych wątków uzyskujących dostęp do globalnego stanu LwIP, pod warunkiem że: 1) inne wątki zachowują blokadę rdzeni LwIP podczas mutowania listy identyfikatorów netif; oraz 2) same obiekty netif nigdy nie są niszczone.
W systemach opartych na gniazdach iteracja jest zawsze stabilna w przypadku zmian w interfejsach lub adresach systemu.
W systemach LwIP iteracja jest stabilna, chyba że interfejs powiązany z bieżącym adresem zostaje usunięty – wówczas iteracja może zakończyć się przedwcześnie.
Konstruktory i niszczyciele |
|
---|---|
InterfaceAddressIterator(void)
Tworzy obiekt InterfaceAddressIterator.
|
|
~InterfaceAddressIterator(void)
Niszczy obiekt InterfaceAddressIterator.
|
Funkcje publiczne |
|
---|---|
GetAddress(void)
|
Pobierz bieżący adres interfejsu.
|
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
|
void
Zwraca prefiks IPPrefix z adresem i długością prefiksu dla bieżącego adresu.
|
GetIPv6PrefixLength(void)
|
uint8_t
Wycofany alias dla
GetPrefixLength(void) |
GetInterface(void)
|
InterfaceId
Wycofany alias dla
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Zwraca identyfikator interfejsu sieci powiązany z obecnym adresem interfejsu.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Pobierz nazwę interfejsu sieci powiązanego z obecnym adresem interfejsu.
|
GetPrefixLength(void)
|
uint8_t
Pobiera prefiks sieci powiązany z bieżącym adresem interfejsu.
|
HasBroadcastAddress(void)
|
bool
Zwraca informacje o tym, czy interfejs sieci powiązany z bieżącym adresem interfejsu ma adres rozgłoszeniowy IPv4.
|
HasCurrent(void)
|
bool
|
IsUp(void)
|
bool
Wskazuje, czy interfejs sieci powiązany z obecnym adresem interfejsu jest aktywny.
|
Next(void)
|
bool
Przesuń iterację do następnego adresu interfejsu.
|
SupportsMulticast(void)
|
bool
Wskazuje, czy interfejs sieci powiązany z bieżącym adresem interfejsu obsługuje multiemisję.
|
Funkcje publiczne
GetAddress
IPAddress GetAddress( void )
Pobierz bieżący adres interfejsu.
Szczegóły | |
---|---|
Zwroty |
bieżący adres interfejsu lub
IPAddress::Any , jeśli iterator znajduje się poza końcem listy adresów. |
GetAddressWithPrefix
void GetAddressWithPrefix( IPPrefix & addrWithPrefix )
Zwraca prefiks IPPrefix z adresem i długością prefiksu dla bieżącego adresu.
GetInterfaceId
InterfaceId GetInterfaceId( void )
Zwraca identyfikator interfejsu sieci powiązany z obecnym adresem interfejsu.
Szczegóły | |
---|---|
Zwroty |
identyfikator interfejsu lub
INET_NULL_INTERFACEID , jeśli iterator znajduje się poza końcem listy adresów. |
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Pobierz nazwę interfejsu sieci powiązanego z obecnym adresem interfejsu.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Szczegóły | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parametry |
|
||||||||
Zwracane wartości |
|
GetPrefixLength
uint8_t GetPrefixLength( void )
Pobiera prefiks sieci powiązany z bieżącym adresem interfejsu.
On LwIP, this method simply returns the hard-coded constant 64. Note Well: the standard subnet prefix on all links other than PPP links is 64 bits. On PPP links and some non-broadcast multipoint access links, the convention is either 127 bits or 128 bits, but it might be something else. On most platforms, the system's interface address structure can represent arbitrary prefix lengths between 0 and 128.
Szczegóły | |
---|---|
Zwroty |
prefiks sieci (w bitach) lub 0, jeśli iterator znajduje się poza końcem listy adresów.
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Zwraca informacje o tym, czy interfejs sieci powiązany z bieżącym adresem interfejsu ma adres rozgłoszeniowy IPv4.
Szczegóły | |
---|---|
Zwroty |
true , jeśli interfejs ma adres rozgłoszeniowy, false , jeśli nie ma go lub jeśli iterator nie jest umieszczony pod adresem interfejsu. |
HasCurrent
bool HasCurrent( void )
InterfaceAddressIterator
InterfaceAddressIterator( void )
Tworzy obiekt InterfaceAddressIterator.
Uruchamia iterator od pierwszego adresu sieciowego. Na niektórych platformach ten konstruktor może przydzielać zasoby poddane recyklingowi przez destruktor.
IsUp
bool IsUp( void )
Wskazuje, czy interfejs sieci powiązany z obecnym adresem interfejsu jest aktywny.
Szczegóły | |
---|---|
Zwroty |
true , jeśli bieżący interfejs sieci jest włączony, false , jeśli nie, lub jeśli iterator nie znajduje się pod adresem interfejsu. |
Dalej
bool Next( void )
Przesuń iterację do następnego adresu interfejsu.
Advances the iterator to the next interface address or to a position beyond the end of the address list. On LwIP, this method is thread-safe provided that: 1) other threads hold the LwIP core lock while mutating the netif list; and 2) netif objects themselves are never destroyed. Additionally, iteration on LwIP systems will terminate early if the current interface is removed from the list.
Szczegóły | |
---|---|
Zwroty |
false , jeśli przejdziesz dalej, w przeciwnym razie true . |
SupportsMulticast
bool SupportsMulticast( void )
Wskazuje, czy interfejs sieci powiązany z bieżącym adresem interfejsu obsługuje multiemisję.
Szczegóły | |
---|---|
Zwroty |
true , jeśli iterator jest obsługiwany, false , jeśli nie jest, lub jeśli iterator nie jest umieszczony pod adresem interfejsu. |
~InterfaceAddressIterator
~InterfaceAddressIterator( void )
Niszczy obiekt InterfaceAddressIterator.
Ponownie uruchamia wszystkie zasoby przydzielone przez konstruktor.