nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

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

Riepilogo

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

I metodi su una singola istanza di questa classe non sono sicuri per i thread; tuttavia è possibile usare contemporaneamente istanze separate da più thread.

Nei sistemi LwIP multi-thread, le istanze sono sicure per thread rispetto ad altri thread che accedono allo stato LwIP globale, a condizione che gli altri thread mantengano il blocco del core LwIP mentre mutano l'elenco delle netif e che gli oggetti netif stessi non vengano mai eliminati.

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

Nei sistemi LwIP, l'iterazione è stabile, tranne nel caso in cui l'interfaccia attualmente selezionata venga rimossa dall'elenco e in questo 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 obsoleto per GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Restituisce l'ID dell'interfaccia di rete nella posizione corrente dell'iteratore.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Recupera il nome dell'interfaccia di rete corrente.
HasBroadcastAddress(void)
bool
Restituisce 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
Porta 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 obsoleto per GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

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

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Recupera il nome dell'interfaccia di rete corrente.

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
dimensioni della regione indicata con nameBuf
Valori restituiti
INET_NO_ERROR
risultato riuscito, nome dell'interfaccia scritto
INET_ERROR_INCORRECT_STATE
l'iteratore è posizionato oltre la fine dell'elenco
INET_ERROR_NO_MEMORY
nome troppo grande per essere scritto nel buffer
other
un altro errore di sistema o di piattaforma

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

Dettagli
Restituisce
true se l'interfaccia di rete corrente ha un indirizzo di broadcast, false in caso contrario o se l'iteratore è posizionato 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 di 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 alla prima interfaccia di rete. Su alcune piattaforme, il 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 corrente è attiva, false in caso contrario o se l'iteratore è posizionato oltre la fine dell'elenco.

Avanti

bool Next(
  void
)

Porta 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 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 corrente supporta il multicast, false in caso contrario o se l'iteratore è posizionato oltre la fine dell'elenco.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Elimina un oggetto InterfaceIterator.

Riciclo le risorse allocate dal costruttore.

Funzioni protette

GetFlags

short GetFlags(
  void
)

Restituisce il valore ifr_flags per l'interfaccia corrente.