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

GetInterface

InterfaceId GetInterface(
  void
)

Wycofany alias dla GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Zwraca identyfikator interfejsu sieci w bieżącej pozycji iteratora.

Szczegóły
Zwracane wartości
INET_NULL_INTERFACEID
jeśli awansujesz poza koniec listy.
id
identyfikator obecnego interfejsu sieci.

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
[in] nameBuf
region pamięci do zapisania nazwy interfejsu
[in] nameBufSize
wielkość regionu oznaczonego przez nameBuf
Zwracane wartości
INET_NO_ERROR
pomyślnie zapisany wynik, nazwa interfejsu została zapisana
INET_ERROR_INCORRECT_STATE
iterator znajduje się poza końcem listy
INET_ERROR_NO_MEMORY
nazwa jest za duża, aby zapisać ją w buforze
other
inny błąd systemu lub platformy

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.