En Google, luchamos por la equidad racial de la comunidad negra. Más información
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

nl :: Inet :: InterfaceIterator

#include <src/inet/InetInterface.h>

Iterador para la lista de interfaces de red del sistema.

Resumen

Utilice 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 subprocesos; sin embargo, varios subprocesos pueden usar instancias separadas simultáneamente.

En los sistemas LwIP de subprocesos múltiples, las instancias son seguras para subprocesos en relación con otros subprocesos que acceden al estado global de LwIP siempre que los otros subprocesos mantengan el bloqueo del núcleo LwIP mientras mutan la lista de netifs, y que el objeto netif en sí mismo nunca se destruya.

En los sistemas basados ​​en sockets, la iteración siempre es estable frente a 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 elimine de la lista, en cuyo caso la iteración finaliza inmediatamente.

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 publicas

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

Funciones protegidas

GetFlags (void)
short
Devuelve 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 publicas

GetInterface

InterfaceId GetInterface(
  void
)

Alias ​​obsoleto para GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

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

Detalles
Valores devueltos
INET_NULL_INTERFACEID
si avanza más allá del final de la lista.
id
el ID de interfaz de red actual.

GetInterfaceName

INET_ERROR GetInterfaceName(
  char *nameBuf,
  size_t nameBufSize
)

Obtenga 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 memoria para escribir el nombre de la interfaz
[in] nameBufSize
tamaño de la región denotado por nameBuf
Valores devueltos
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 el búfer
other
otro error de sistema o plataforma

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Devuelve si la interfaz de red actual tiene una dirección de transmisión.

Detalles
Devoluciones
true si la interfaz de red actual tiene una dirección de transmisión, false si no, o si el iterador está posicionado más allá del final de la lista.

HasCurrent

bool HasCurrent(
  void
)

Pruebe si el iterador está posicionado en una interfaz.

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

Detalles
Devoluciones
true si el iterador está posicionado en una interfaz; false si se coloca más allá del final de la lista de interfaces.
Devoluciones
true si el iterador está posicionado en una dirección de interfaz; false si se coloca 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.

Depende

bool IsUp(
  void
)

Devuelve si la interfaz de red actual está activa.

Detalles
Devoluciones
true si la interfaz de red actual está activa, false caso contrario o si el iterador está posicionado más allá del final de la lista.

próximo

bool Next(
  void
)

Haga 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
Devoluciones
false si avanza más allá del final, de lo contrario es true .

Soporta multidifusión

bool SupportsMulticast(
  void
)

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

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

~ InterfaceIterator

 ~InterfaceIterator(
  void
)

Destruye un objeto InterfaceIterator .

Recicla los recursos asignados por el constructor.

Funciones protegidas

GetFlags

short GetFlags(
  void
)

Devuelve el valor de ifr_flags para la interfaz actual.