nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Iteratore per l'elenco delle interfacce di rete del sistema.

Riepilogo

Utilizza gli oggetti di questa classe per iterare l'elenco delle interfacce di rete di sistema.

I metodi su una singola istanza di questa classe non sono compatibili con i thread; tuttavia, istanze separate possono essere utilizzate contemporaneamente da più thread.

Nei sistemi LwIP multi-thread, le istanze sono thread-safe rispetto ad altri thread che accedono allo stato LwIP globale, a condizione che gli altri thread contengano il core lock LwIP durante la modifica dell'elenco delle reti netif e che l'oggetto netif stesso non venga mai eliminato.

Sui sistemi basati su socket, l'iterazione è sempre stabile nonostante le modifiche alle interfacce del sistema sottostante.

Sui sistemi LwIP, l'iterazione è stabile, tranne nel caso in cui l'interfaccia attualmente selezionata venga rimossa dall'elenco, nel qual caso l'iterazione termina immediatamente.

Costruttori e distruttori

InterfaceIterator(void)
Crea un oggetto InterfaceIterator.
~InterfaceIterator(void)
Elimina un oggetto InterfaceIterator.

Attributi protetti

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

Funzioni pubbliche

GetInterface(void)
InterfaceId
Alias deprecato per GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Restituisce l'ID dell'interfaccia di rete nella posizione dell'iteratore corrente.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Ottieni il nome dell'attuale interfaccia di rete.
HasBroadcastAddress(void)
bool
Indica se l'interfaccia di rete corrente ha un indirizzo di broadcast.
HasCurrent(void)
bool
Verifica se l'iteratore è posizionato su un'interfaccia.
IsUp(void)
bool
Indica se l'interfaccia di rete corrente è attiva.
Next(void)
bool
Fai avanzare l'iteratore all'interfaccia di rete successiva.
SupportsMulticast(void)
bool
Indica se l'interfaccia di rete corrente supporta il multicast.

Funzioni protette

GetFlags(void)
short
Restituisce il valore ifr_flags per l'interfaccia corrente.

Attributi protetti

mCurIntf

size_t mCurIntf

mCurNetif

struct netif * mCurNetif

mIntfArray

struct if_nameindex * mIntfArray

mIntfFlags

short mIntfFlags

mIntfFlagsCached

bool mIntfFlagsCached

Funzioni pubbliche

GetInterface

InterfaceId GetInterface(
  void
)

Alias deprecato per GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Restituisce l'ID dell'interfaccia di rete nella posizione dell'iteratore corrente.

Dettagli
Valori restituiti
INET_NULL_INTERFACEID
se la parola chiave viene avanzata oltre la fine dell'elenco.
id
l'ID dell'interfaccia di rete corrente.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Ottieni il nome dell'attuale interfaccia di rete.

Writes the name of the network interface as \c NUL terminated text string
at \c nameBuf.

Dettagli
Parametri
[in] nameBuf
regione di memoria per scrivere il nome dell'interfaccia
[in] nameBufSize
dimensione della regione indicata da nameBuf
Valori restituiti
INET_NO_ERROR
risultato riuscito, nome dell'interfaccia scritto
INET_ERROR_INCORRECT_STATE
l'iteratore si trova oltre la fine dell'elenco
INET_ERROR_NO_MEMORY
nome troppo grande per essere scritto nel buffer
other
un altro errore del sistema o della piattaforma

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Indica se l'interfaccia di rete corrente ha un indirizzo di broadcast.

Dettagli
Restituisce
true se l'attuale interfaccia di rete ha un indirizzo di trasmissione, false in caso contrario o se l'iteratore si trova oltre la fine dell'elenco.

HasCurrent

bool HasCurrent(
  void
)

Verifica se l'iteratore è posizionato su un'interfaccia.

Verifica se l'iteratore è posizionato su un indirizzo di interfaccia.

Dettagli
Restituisce
true se l'iteratore è posizionato su un'interfaccia; false se posizionato oltre la fine dell'elenco delle interfacce.
Restituisce
true se l'iteratore è posizionato su un indirizzo di interfaccia; false se posizionato oltre la fine dell'elenco di indirizzi.

InterfaceIterator

 InterfaceIterator(
  void
)

Crea un oggetto InterfaceIterator.

Avvia l'iteratore sulla prima interfaccia di rete. Su alcune piattaforme, questo costruttore potrebbe allocare risorse riciclate dal distruttore.

IsUp

bool IsUp(
  void
)

Indica se l'interfaccia di rete corrente è attiva.

Dettagli
Restituisce
true se l'interfaccia di rete attuale è attiva, false in caso contrario o se l'iteratore si trova oltre la fine dell'elenco.

Avanti

bool Next(
  void
)

Fai avanzare l'iteratore all'interfaccia di rete successiva.

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.

Dettagli
Restituisce
false se si è avanzata oltre la fine, altrimenti true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Indica se l'interfaccia di rete corrente supporta il multicast.

Dettagli
Restituisce
true se l'interfaccia di rete attuale supporta il multicast, false in caso contrario o se l'iteratore si trova oltre la fine dell'elenco.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Elimina un oggetto InterfaceIterator.

Ricicla tutte le risorse allocate dal costruttore.

Funzioni protette

GetFlags

short GetFlags(
  void
)

Restituisce il valore ifr_flags per l'interfaccia corrente.