nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

Riepilogo

Utilizza gli oggetti di questa classe per ripetere l'elenco degli indirizzi IP dell'interfaccia 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 thread-safe rispetto ad altri thread che accedono allo stato LwIP globale purché: 1) altri thread tengano il blocco del core LwIP mentre mutano l'elenco delle reti LwIP; e 2) gli oggetti netif non vengono mai eliminati.

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

Nei sistemi LwIP, l'iterazione è stabile, tranne nel caso in cui l'interfaccia associata all'indirizzo corrente venga rimossa, in questo caso l'iterazione potrebbe terminare prematuramente.

Costruttori e distruttori

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

Funzioni pubbliche

GetAddress(void)
Recupera l'indirizzo attuale dell'interfaccia.
GetAddressWithPrefix(IPPrefix & addrWithPrefix)
void
Restituisce un valore IPPrefix contenente l'indirizzo e la lunghezza del prefisso dell'indirizzo corrente.
GetIPv6PrefixLength(void)
uint8_t
Alias obsoleto per GetPrefixLength(void)
GetInterface(void)
InterfaceId
Alias obsoleto per GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Restituisce l'ID interfaccia di rete associato all'indirizzo dell'interfaccia corrente.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Recupera il nome dell'interfaccia di rete associata all'indirizzo dell'interfaccia corrente.
GetPrefixLength(void)
uint8_t
Restituisce il prefisso di rete associato all'indirizzo dell'interfaccia corrente.
HasBroadcastAddress(void)
bool
Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente ha un indirizzo di trasmissione IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente è attiva.
Next(void)
bool
Porta l'iteratore all'indirizzo dell'interfaccia successivo.
SupportsMulticast(void)
bool
Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente supporta il multicast.

Funzioni pubbliche

GetAddress

IPAddress GetAddress(
  void
)

Recupera l'indirizzo attuale dell'interfaccia.

Dettagli
Restituisce
l'indirizzo dell'interfaccia corrente o IPAddress::Any se l'iteratore si trova oltre la fine dell'elenco di indirizzi.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

Restituisce un valore IPPrefix contenente l'indirizzo e la lunghezza del prefisso dell'indirizzo corrente.

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias obsoleto per GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias obsoleto per GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Restituisce l'ID interfaccia di rete associato all'indirizzo dell'interfaccia corrente.

Dettagli
Restituisce
l'ID dell'interfaccia o INET_NULL_INTERFACEID se l'iteratore è posizionato oltre la fine dell'elenco di indirizzi.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Recupera il nome dell'interfaccia di rete associata all'indirizzo dell'interfaccia 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_NO_MEMORY
nome troppo grande per essere scritto nel buffer
INET_ERROR_INCORRECT_STATE
l'iteratore non è attualmente posizionato su un indirizzo di interfaccia
other
un altro errore di sistema o di piattaforma

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Restituisce il prefisso di rete associato all'indirizzo dell'interfaccia corrente.

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.

Dettagli
Restituisce
il prefisso di rete (in bit) o 0 se l'iteratore è posizionato oltre la fine dell'elenco di indirizzi.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente ha un indirizzo di trasmissione IPv4.

Dettagli
Restituisce
true se l'interfaccia ha un indirizzo di broadcast, false in caso contrario o se l'iteratore non è posizionato su un indirizzo di interfaccia.

HasCurrent

bool HasCurrent(
  void
)

InterfaceAddressIterator

 InterfaceAddressIterator(
  void
)

Crea un oggetto InterfaceAddressIterator.

Avvia l'iteratore al primo indirizzo di rete. Su alcune piattaforme, il costruttore potrebbe allocare risorse riciclate dal distruttore.

IsUp

bool IsUp(
  void
)

Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente è attiva.

Dettagli
Restituisce
true se l'interfaccia di rete corrente è attiva, false in caso contrario o se l'iteratore non è posizionato su un indirizzo di interfaccia.

Avanti

bool Next(
  void
)

Porta l'iteratore all'indirizzo dell'interfaccia successivo.

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.

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

SupportsMulticast

bool SupportsMulticast(
  void
)

Indica se l'interfaccia di rete associata all'indirizzo dell'interfaccia corrente supporta il multicast.

Dettagli
Restituisce
true se il multicast è supportato, false in caso contrario o se l'iteratore non è posizionato su un indirizzo di interfaccia.

~InterfaceAddressIterator

 ~InterfaceAddressIterator(
  void
)

Elimina un oggetto InterfaceAddressIterator.

Riciclo le risorse allocate dal costruttore.