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

GetInterface

InterfaceId GetInterface(
  void
)

Alias descontinuado de GetInterfaceId(void)

GetInterfaceId

InterfaceId GetInterfaceId(
  void
)

Retorna o ID da interface de rede na posição atual do iterador.

Detalhes
Valores de retorno
INET_NULL_INTERFACEID
se forem avançado além do final da lista.
id
o ID da interface de rede atual.

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
[in] nameBuf
região da memória para gravar o nome da interface
[in] nameBufSize
tamanho da região indicada por nameBuf
Valores de retorno
INET_NO_ERROR
resultado bem-sucedido, nome da interface escrito
INET_ERROR_INCORRECT_STATE
o iterador é posicionado além do fim da lista.
INET_ERROR_NO_MEMORY
o nome é muito grande para ser escrito em buffer
other
outro erro do sistema ou da plataforma

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.