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
GetInterfaceId
InterfaceId GetInterfaceId( void )
Muestra el ID de la interfaz de red en la posición actual del iterador.
Detalles | |||||
---|---|---|---|---|---|
Valores que se muestran |
|
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 |
|
||||||||
Valores que se muestran |
|
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.