nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Iterador para la lista de interfaces de red del sistema.

Resumen

Usa objetos de esta clase para iterar la lista de interfaces de red del sistema.

Los métodos en una instancia individual de esta clase no son seguros para los subprocesos. Sin embargo, varios subprocesos pueden usar instancias independientes de manera simultánea.

En los sistemas LwIP de varios subprocesos, las instancias son seguras para los subprocesos en relación con otros subprocesos que acceden al estado LwIP global, siempre que los otros subprocesos contengan el bloqueo del núcleo de LwIP mientras mutan la lista de Netifs, y que ese objeto netif nunca se destruya.

En los sistemas basados en sockets, la iteración es siempre estable ante los cambios en las interfaces del sistema subyacente.

En los sistemas LwIP, la iteración es estable, excepto en el caso de que la interfaz seleccionada actualmente se quite de la lista, en cuyo caso la iteración finaliza de inmediato.

Constructores y destructores

InterfaceIterator(void)
Construye un objeto InterfaceIterator.
~InterfaceIterator(void)
Destruye un objeto InterfaceIterator.

Atributos protegidos

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

Funciones públicas

GetInterface(void)
InterfaceId
Alias obsoleto para GetInterfaceId(void)
GetInterfaceId(void)
InterfaceId
Muestra el ID de la interfaz de red en la posición actual del iterador.
GetInterfaceName(char *nameBuf, size_t nameBufSize)
Obtén el nombre de la interfaz de red actual.
HasBroadcastAddress(void)
bool
Muestra si la interfaz de red actual tiene una dirección de emisión.
HasCurrent(void)
bool
Prueba si el iterador está posicionado en una interfaz.
IsUp(void)
bool
Muestra si la interfaz de red actual está activa.
Next(void)
bool
Haz avanzar el iterador a la siguiente interfaz de red.
SupportsMulticast(void)
bool
Muestra si la interfaz de red actual admite la multidifusión.

Funciones protegidas

GetFlags(void)
short
Muestra el valor ifr_flags de la interfaz actual.

Atributos protegidos

mCurIntf

size_t mCurIntf

mCurNetif

struct netif * mCurNetif

mIntfArray

struct if_nameindex * mIntfArray

mIntfFlags

short mIntfFlags

mIntfFlagsCached

bool mIntfFlagsCached

Funciones públicas

GetInterface

InterfaceId GetInterface(
  void
)

Alias obsoleto para GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Muestra el ID de la interfaz de red en la posición actual del iterador.

Detalles
Valores que se muestran
INET_NULL_INTERFACEID
si avanzas más allá del final de la lista.
id
el ID de la interfaz de red actual.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Obtén el nombre de la interfaz de red actual.

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

Detalles
Parámetros
[in] nameBuf
región de la memoria para escribir el nombre de la interfaz
[in] nameBufSize
tamaño de la región indicado por nameBuf
Valores que se muestran
INET_NO_ERROR
resultado correcto, nombre de la interfaz escrito
INET_ERROR_INCORRECT_STATE
el iterador se posiciona más allá del final de la lista
INET_ERROR_NO_MEMORY
el nombre es demasiado grande para escribirlo en el búfer
other
otro error del sistema o de la plataforma

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Muestra si la interfaz de red actual tiene una dirección de emisión.

Detalles
Qué muestra
true si la interfaz de red actual tiene una dirección de transmisión, false si no tiene o si el iterador se posiciona más allá del final de la lista.

HasCurrent

bool HasCurrent(
  void
)

Prueba si el iterador está posicionado en una interfaz.

Prueba si el iterador está posicionado en la dirección de una interfaz.

Detalles
Qué muestra
true si el iterador se posiciona en una interfaz; false si se posiciona más allá del final de la lista de interfaces.
Qué muestra
true si el iterador se posiciona en la dirección de una interfaz; false si se posiciona más allá del final de la lista de direcciones.

InterfaceIterator

 InterfaceIterator(
  void
)

Construye un objeto InterfaceIterator.

Inicia el iterador en la primera interfaz de red. En algunas plataformas, este constructor puede asignar recursos reciclados por el destructor.

IsUp

bool IsUp(
  void
)

Muestra si la interfaz de red actual está activa.

Detalles
Qué muestra
true si la interfaz de red actual está activa, false si no lo está o si el iterador se posiciona más allá del final de la lista.

Siguiente

bool Next(
  void
)

Haz avanzar el iterador a la siguiente interfaz de red.

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.

Detalles
Qué muestra
false si se avanza más allá del final; de lo contrario, es true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Muestra si la interfaz de red actual admite la multidifusión.

Detalles
Qué muestra
true si la interfaz de red actual admite la multidifusión, false si no es así o si el iterador se posiciona más allá del final de la lista.

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Destruye un objeto InterfaceIterator.

Recicla los recursos que asignó el constructor.

Funciones protegidas

GetFlags

short GetFlags(
  void
)

Muestra el valor ifr_flags de la interfaz actual.