nl::Inet::InterfaceIterator

#include <src/inet/InetInterface.h>

Iterador da lista de interfaces de rede do sistema.

Resumo

Use objetos dessa classe para iterar a lista de interfaces de rede do sistema.

Os métodos em uma instância individual dessa 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 com várias linhas de execução, as instâncias são seguras em relação a outros threads que acessam o estado LwIP global, desde que os outros threads 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 e termina imediatamente.

Construtores e destrutores

InterfaceIterator(void)
Cria 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 se a interface de rede atual tem um endereço de transmissão.
HasCurrent(void)
bool
Testar se o iterador está posicionado em uma interface.
IsUp(void)
bool
Retorna se a interface de rede atual está ativa.
Next(void)
bool
Avança o iterador para a próxima interface de rede.
SupportsMulticast(void)
bool
Retorna se a interface de rede atual for compatível com multicast.

Funções protegidas

GetFlags(void)
short
Retorna o valor de ifr_flags da 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 estiver 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 de 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 gravado
INET_ERROR_INCORRECT_STATE
iterador é posicionado além do final da lista
INET_ERROR_NO_MEMORY
O nome é grande demais para ser gravado no buffer
other
outro erro de sistema ou plataforma

HasBroadcastAddress

bool HasBroadcastAddress(
  void
)

Retorna se a interface de rede atual tem um endereço de transmissão.

Detalhes
Retorna
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
)

Testar se o iterador está posicionado em uma interface.

Testar se o iterador está posicionado em um endereço de interface.

Detalhes
Retorna
true se o iterador estiver posicionado em uma interface, false se posicionado além do final da lista de interfaces.
Retorna
true se o iterador estiver posicionado em um endereço de interface; false se posicionado além do final da lista de endereços.

InterfaceIterator

 InterfaceIterator(
  void
)

Cria 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 se a interface de rede atual está ativa.

Detalhes
Retorna
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ça 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
Retorna
false se avançado além do final. Caso contrário, true.

SupportsMulticast

bool SupportsMulticast(
  void
)

Retorna se a interface de rede atual for compatível com multicast.

Detalhes
Retorna
true se a interface de rede atual oferecer suporte a 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 da interface atual.