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