nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Iterator do tworzenia listy interfejsów sieci systemu.

Podsumowanie

Użyj obiektów tej klasy do iteracji listy interfejsów sieci systemu.

Metody w pojedynczej instancji tej klasy nie są bezpieczne dla wątków, ale 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 inne wątki mają blokadę rdzeni LwIP podczas mutacji listy netif, a obiekty netif nigdy nie są niszczone.

W systemach opartych na gniazdach iteracja działa zawsze stabilnie niezależnie od zmian interfejsów systemu.

W systemach LwIP iteracja jest stabilna, chyba że aktualnie wybrany interfejs jest usuwany z listy – wtedy iteracja kończy się natychmiast.

Konstruktorzy i niszczyciele

InterfaceIterator(void)
Konstruuje obiekt InterfaceIterator.
~InterfaceIterator(void)
Niszczy obiekt InterfaceIterator.

Atrybuty chronione

mCurIntf
size_t
mCurNetif
struct netif *
mIntfArray
struct if_nameindex *
mIntfFlags
short
mIntfFlagsCached
bool

Funkcje publiczne

GetInterface(void)
InterfaceId
Wycofano alias dla: GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Zwraca identyfikator interfejsu sieci w bieżącej pozycji iteratora.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Pobierz nazwę obecnego interfejsu sieci.
HasBroadcastAddress(void)
bool
Zwraca, czy bieżący interfejs sieci ma adres rozgłoszeniowy.
HasCurrent(void)
bool
Sprawdź, czy iterator jest pozycjonowany w interfejsie.
IsUp(void)
bool
Zwraca, czy bieżący interfejs sieci działa.
Next(void)
bool
Przejdź do iteratora do następnego interfejsu sieci.
SupportsMulticast(void)
bool
Zwraca, 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
)

Wycofano 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 znajdzie się poza końcem listy.
id
identyfikator obecnego interfejsu sieci.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Pobierz nazwę obecnego 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 oznaczona jako nameBuf
Zwracane wartości
INET_NO_ERROR
pomyślny wynik, zapisana nazwa interfejsu
INET_ERROR_INCORRECT_STATE
iterator znajduje się poza końcem listy
INET_ERROR_NO_MEMORY
nazwa jest za duża do zapisania w buforze
other
błąd innego systemu lub platformy

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Zwraca, 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, lub jeśli iterator znajduje się poza końcem listy.

HasCurrent

bool HasCurrent(
  void
)

Sprawdź, czy iterator jest pozycjonowany w interfejsie.

Sprawdź, czy iterator jest w pozycji w adresie interfejsu.

Szczegóły
Zwroty
true, jeśli iterator jest w pozycji interfejsu; false, jeśli znajduje się poza końcem listy interfejsów.
Zwroty
true, jeśli iterator jest położony pod adresem interfejsu; false, jeśli znajduje się poza końcem listy adresów.

InterfaceIterator

 InterfaceIterator(
  void
)

Konstruuje obiekt InterfaceIterator.

Uruchamia iterator w pierwszym interfejsie sieci. Na niektórych platformach ten konstruktor może przydzielać zasoby zrecyklingowane przez destruktora.

IsUp

bool IsUp(
  void
)

Zwraca, czy bieżący interfejs sieci działa.

Szczegóły
Zwroty
true, jeśli bieżący interfejs sieci jest aktywny, false, jeśli nie, lub jeśli iterator znajduje się poza końcem listy.

Dalej

bool Next(
  void
)

Przejdź do iteratora 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 wykracza poza koniec, w przeciwnym razie true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Zwraca, 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
)

Niszczy obiekt InterfaceIterator.

Odświeża wszystkie zasoby przydzielone przez konstruktor.

Funkcje chronione

GetFlags

short GetFlags(
  void
)

Zwraca wartość ifr_flags dla bieżącego interfejsu.