nl::Inet::InterfaceAddressIterator

#include <src/inet/InetInterface.h>

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

Riepilogo

Utilizza gli oggetti di questa classe per iterare l'elenco degli indirizzi IP delle interfacce di rete del 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.

Sui sistemi LwIP multi-threaded, le istanze sono thread-safe rispetto ad altri thread che accedono allo stato LwIP globale a condizione che: 1) altri thread contengano il blocco del core LwIP mentre si modifica l'elenco delle netif; e 2) l'oggetto netif stesso non viene mai distrutto.

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

Sui sistemi LwIP, l'iterazione è stabile, tranne nel caso in cui l'interfaccia associata all'indirizzo corrente venga rimossa, nel qual 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 IPPrefix contenente l'indirizzo e la lunghezza del prefisso per l'indirizzo corrente.
GetIPv6PrefixLength(void)
uint8_t
Alias deprecato per GetPrefixLength(void)
GetInterface(void)
InterfaceId
Alias deprecato per GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Restituisce l'ID dell'interfaccia di rete associato all'indirizzo dell'interfaccia corrente.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Ottieni il nome dell'interfaccia di rete associata all'indirizzo dell'interfaccia corrente.
GetPrefixLength(void)
uint8_t
Restituisce il prefisso di rete associato all'indirizzo di interfaccia corrente.
HasBroadcastAddress(void)
bool
Indica se l'interfaccia di rete associata all'indirizzo di interfaccia corrente ha un indirizzo di broadcast IPv4.
HasCurrent(void)
bool
IsUp(void)
bool
Indica se l'interfaccia di rete associata all'indirizzo di interfaccia corrente è attiva.
Next(void)
bool
Fai avanzare l'iteratore all'indirizzo di 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 corrente dell'interfaccia o IPAddress::Any se l'iteratore si trova oltre la fine dell'elenco di indirizzi.

GetAddressWithPrefix

void GetAddressWithPrefix(
  IPPrefix & addrWithPrefix
)

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

GetIPv6PrefixLength

uint8_t GetIPv6PrefixLength(
  void
)

Alias deprecato per GetPrefixLength(void)

GetInterface

InterfaceId GetInterface(
  void
)

Alias deprecato per GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

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

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Ottieni 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
dimensione della regione indicata da 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 del sistema o della piattaforma

GetPrefixLength

uint8_t GetPrefixLength(
  void
)

Restituisce il prefisso di rete associato all'indirizzo di 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 si trova oltre la fine dell'elenco di indirizzi.

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

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

Dettagli
Restituisce
true se l'interfaccia ha un indirizzo di trasmissione, 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 in corrispondenza del primo indirizzo di rete. Su alcune piattaforme, questo costruttore potrebbe allocare risorse riciclate dal distruttore.

IsUp

bool IsUp(
  void
)

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

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

Avanti

bool Next(
  void
)

Fai avanzare l'iteratore all'indirizzo di 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 si è 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.

Ricicla tutte le risorse allocate dal costruttore.