nl :: Inet :: InterfaceIterator
#include <src/inet/InetInterface.h>
Iterador para a lista de interfaces de rede do sistema.
Resumo
Use objetos desta classe para iterar a lista de interfaces de rede do sistema.
Métodos em uma instância individual desta classe não são thread-safe; no entanto, instâncias separadas podem ser usadas simultaneamente por vários threads.
Em sistemas LwIP multi-threaded, as instâncias são thread-safe em relação a outros threads que acessam o estado LwIP global, desde que os outros threads mantenham o bloqueio do núcleo LwIP enquanto modificam a lista de netifs, e os próprios objetos netif nunca são destruídos.
Em sistemas baseados em soquetes, a iteração é sempre estável em face de mudanças nas interfaces do sistema subjacente.
Em sistemas LwIP, a iteração é estável, exceto no caso em que a interface atualmente selecionada é removida da lista, caso em que a iteração termina imediatamente.
Construtores e Destruidores | |
---|---|
InterfaceIterator (void) Constrói um InterfaceIterator objecto. | |
~InterfaceIterator (void) Destrói um InterfaceIterator objecto. |
Atributos protegidos | |
---|---|
mCurIntf | size_t |
mCurNetif | struct netif * |
mIntfArray | struct if_nameindex * |
mIntfFlags | short |
mIntfFlagsCached | bool |
Funções públicas | |
---|---|
GetInterface (void) | InterfaceId Apelido obsoleto para GetInterfaceId(void) |
GetInterfaceId (void) | InterfaceId Retorna o id da interface de rede na posição atual do iterador. |
GetInterfaceName (char *nameBuf, size_t nameBufSize) | Obtenha o nome da interface de rede atual. |
HasBroadcastAddress (void) | bool Retorna se a interface de rede atual tem um endereço de broadcast. |
HasCurrent (void) | bool Teste se o iterador está posicionado em uma interface. |
IsUp (void) | bool Retorna se a interface de rede atual está ativa. |
Next (void) | bool Avance o iterador para a próxima interface de rede. |
SupportsMulticast (void) | bool Retorna se a interface de rede atual oferece suporte a multicast. |
Funções protegidas | |
---|---|
GetFlags (void) | short Retorna o valor ifr_flags para a interface atual. |
Atributos protegidos
mCurIntf
size_t mCurIntf
mCurNetif
struct netif * mCurNetif
mIntfArray
struct if_nameindex * mIntfArray
mIntfFlags
short mIntfFlags
mIntfFlagsCached
bool mIntfFlagsCached
Funções públicas
GetInterfaceId
InterfaceId GetInterfaceId( void )
Retorna o id da interface de rede na posição atual do iterador.
Detalhes | |||||
---|---|---|---|---|---|
Valores Retornados |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Obtenha o nome da interface de rede atual.
Writes the name of the network interface as \c NUL terminated text string at \c nameBuf.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
| ||||||||
Valores Retornados |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Retorna se a interface de rede atual possui um endereço de broadcast.
Detalhes | |
---|---|
Devoluções | true se interface de rede atual tem um endereço de broadcast, false se não, ou se o iterador está posicionada para além do fim da lista. |
HasCurrent
bool HasCurrent( void )
Teste se o iterador está posicionado em uma interface.
Teste se o iterador está posicionado em um endereço de interface.
Detalhes | |
---|---|
Devoluções | true se a iteração está posicionado sobre uma interface; false se posicionado para além do fim da lista de interface. |
Devoluções | true se a iteração está posicionado sobre um endereço de interface; false se posicionado para além do fim da lista de endereços. |
InterfaceIterator
InterfaceIterator( void )
Constrói um InterfaceIterator objecto.
Inicia o iterador na primeira interface de rede. Em algumas plataformas, esse construtor pode alocar recursos reciclados pelo destruidor.
É acima
bool IsUp( void )
Retorna se a interface de rede atual está ativa.
Detalhes | |
---|---|
Devoluções | true se a interface de rede atual é para cima, false se não ou se o iterador está posicionada para além do fim da lista. |
Próximo
bool Next( void )
Avance o iterador para a próxima interface de rede.
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.
Detalhes | |
---|---|
Devoluções | false se avançado para além do fim, outra coisa true . |
Suporta Multicast
bool SupportsMulticast( void )
Retorna se a interface de rede atual oferece suporte a multicast.
Detalhes | |
---|---|
Devoluções | true se suportes de interface de rede atual multicast, false se não, ou se o iterador está posicionada para além do fim da lista. |
~ InterfaceIterator
~InterfaceIterator( void )
Destrói um InterfaceIterator objecto.
Recicla todos os recursos alocados pelo construtor.
Funções protegidas
GetFlags
short GetFlags( void )
Retorna o valor ifr_flags para a interface atual.