nl:: Inet:: InterfaceIterator
#include <src/inet/InetInterface.h>
Iterador da lista de interfaces de rede do sistema.
Resumo
Use objetos desta classe para iterar a lista de interfaces de rede do sistema.
Os 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árias linhas de execução.
Em sistemas LwIP multithread, as instâncias são thread-safe em relação a outras linhas de execução que acessam o estado LwIP global, desde que as outras linhas mantenham o bloqueio principal do LwIP enquanto modificam a lista de netifs e que o próprio objeto netif nunca seja destruído.
Em sistemas baseados em soquetes, a iteração é sempre estável diante de mudanças nas interfaces do sistema subjacente.
Em sistemas LwIP, a iteração é estável, exceto quando a interface selecionada é removida da lista. Nesse caso, a iteração termina imediatamente.
Construtores e destruidores |
|
---|---|
InterfaceIterator(void)
Constrói um objeto InterfaceIterator.
|
|
~InterfaceIterator(void)
Destrói um objeto InterfaceIterator.
|
Atributos protegidos |
|
---|---|
mCurIntf
|
size_t
|
mCurNetif
|
struct netif *
|
mIntfArray
|
struct if_nameindex *
|
mIntfFlags
|
short
|
mIntfFlagsCached
|
bool
|
Funções públicas |
|
---|---|
GetInterface(void)
|
InterfaceId
Alias descontinuado de
GetInterfaceId(void) |
GetInterfaceId(void)
|
InterfaceId
Retorna o ID da interface de rede na posição atual do iterador.
|
GetInterfaceName(char *nameBuf, size_t nameBufSize)
|
Consiga o nome da interface de rede atual.
|
HasBroadcastAddress(void)
|
bool
Retorna indicando se a interface de rede atual tem um endereço de transmissão.
|
HasCurrent(void)
|
bool
Teste se o iterador está posicionado em uma interface.
|
IsUp(void)
|
bool
Retorna indicando se a interface de rede atual está ativa.
|
Next(void)
|
bool
Avançar 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 de 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 de retorno |
|
GetInterfaceName
INET_ERROR GetInterfaceName( char *nameBuf, size_t nameBufSize )
Consiga 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 de retorno |
|
HasBroadcastAddress
bool HasBroadcastAddress( void )
Retorna indicando se a interface de rede atual tem um endereço de transmissão.
Detalhes | |
---|---|
Retornos |
true se a interface de rede atual tiver um endereço de transmissão, false se não tiver ou se o iterador estiver posicionado 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 | |
---|---|
Retornos |
true se o iterador estiver posicionado em uma interface. false se posicionado além do fim da lista de interfaces. |
Retornos |
true se o iterador estiver posicionado em um endereço de interface. false se posicionado além do fim da lista de endereços. |
InterfaceIterator
InterfaceIterator( void )
Constrói um objeto InterfaceIterator.
Inicia o iterador na primeira interface de rede. Em algumas plataformas, esse construtor pode alocar recursos reciclados pelo destrutor.
IsUp
bool IsUp( void )
Retorna indicando se a interface de rede atual está ativa.
Detalhes | |
---|---|
Retornos |
true se a interface de rede atual estiver ativa, false se não estiver ou se o iterador estiver posicionado além do fim da lista. |
Próxima
bool Next( void )
Avançar 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 | |
---|---|
Retornos |
false se você avançar além do final. Caso contrário, será true . |
SupportsMulticast
bool SupportsMulticast( void )
Retorna se a interface de rede atual oferece suporte a multicast.
Detalhes | |
---|---|
Retornos |
true se a interface de rede atual for compatível com multicast, false se não for, ou se o iterador estiver posicionado além do fim da lista. |
~InterfaceIterator
~InterfaceIterator( void )
Destrói um objeto InterfaceIterator.
Recicla todos os recursos alocados pelo construtor.
Funções protegidas
GetFlags
short GetFlags( void )
Retorna o valor de ifr_flags para a interface atual.