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 de forma simultánea instancias separadas.

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

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

En sistemas LwIP, la iteración es estable, excepto en el caso en el que la interfaz seleccionada actualmente se quita 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 transmisión.
HasCurrent(void)
bool
Prueba si el iterador se posiciona en una interfaz.
IsUp(void)
bool
Muestra si la interfaz de red actual está activa.
Next(void)
bool
Avanzar el iterador a la siguiente interfaz de red
SupportsMulticast(void)
bool
Muestra si la interfaz de red actual es compatible con multidifusión.

Funciones protegidas

GetFlags(void)
short
Muestra el valor de ifr_flags para 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 de retorno
INET_NULL_INTERFACEID
si avanza 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 de retorno
INET_NO_ERROR
resultado exitoso, nombre de la interfaz escrito
INET_ERROR_INCORRECT_STATE
el iterador se coloca más allá del final de la lista
INET_ERROR_NO_MEMORY
el nombre es demasiado grande para escribirlo en un 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 transmisión.

Detalles
Resultado que se muestra
true si la interfaz de red actual tiene una dirección de transmisión, false si no es así, o si el iterador se coloca más allá del final de la lista.

HasCurrent

bool HasCurrent(
  void
)

Prueba si el iterador se posiciona en una interfaz.

Prueba si el iterador se posiciona en una dirección de interfaz.

Detalles
Resultado que se muestra
true si el iterador se posiciona en una interfaz; false si se posiciona más allá del final de la lista de la interfaz.
Resultado que se muestra
true si el iterador se posiciona en una dirección de 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
Resultado que se muestra
true si la interfaz de red actual está activa, false si no es así o si el iterador se posiciona más allá del final de la lista.

Siguiente

bool Next(
  void
)

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
Resultado que se muestra
false si se avanza más allá del final, de lo contrario, true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Muestra si la interfaz de red actual es compatible con multidifusión.

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

~InterfaceIterator

 ~InterfaceIterator(
  void
)

Destruye un objeto InterfaceIterator.

Recicla cualquier recurso asignado por el constructor.

Funciones protegidas

GetFlags

short GetFlags(
  void
)

Muestra el valor de ifr_flags para la interfaz actual.