O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl :: Inet :: InetLayer

#include <src/inet/InetLayer.h>

Isso fornece acesso a serviços de Internet, incluindo temporizadores, resolução de DNS (Domain Name System), transporte de rede TCP, transporte de rede UDP e transporte de rede bruta, para um único thread.

Resumo

Para BSD / POSIX Sockets, a notificação de prontidão de evento é tratada por meio de descritores de arquivo e uma implementação tradicional de pesquisa / seleção na adaptação da plataforma.

Para LwIP, a notificação de prontidão de evento é tratada por meio de eventos / mensagens e ganchos específicos da plataforma e do sistema para o sistema de eventos / mensagens.

Construtores e Destruidores

InetLayer (void)
Esta é a InetLayer construtor padrão.

Tipos públicos

@5 {
kState_NotInitialized = 0,
kState_Initialized = 1,
kState_ShutdownInProgress = 2
}
enum
O estado atual da InetLayer objeto.
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Atributos públicos

State
enum nl::Inet::InetLayer::@5
O estado atual da InetLayer objeto.

Atributos estáticos públicos

sInetEventHandlerDelegate

Funções públicas

CanEnqueueDroppableEvent (void)
bool
CancelResolveHostAddress (DNSResolveCompleteFunct onComplete, void *appState)
void
Cancele qualquer consulta DNS pendente (para um retorno de chamada de conclusão e estado do aplicativo correspondentes) que ainda possa estar ativa.
DroppableEventDequeued (void)
void
GetInterfaceFromAddr (const IPAddress & addr, InterfaceId & intfId)
Obtenha o identificador de interface para o endereço IP especificado.
GetLinkLocalAddr (InterfaceId link, IPAddress *llAddr)
Obtenha o endereço IPv6 local do link para um link ou interface especificada.
GetPlatformData (void)
void *
Isso retorna todos os dados de plataforma específicos do cliente atribuídos à instância, se tiverem sido configurados anteriormente.
HandleSelectResult (int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Lide com I / O de uma chamada selecionada.
Init ( Weave::System::Layer & aSystemLayer, void *aContext)
Esta é a InetLayer inicializador explícito.
InitQueueLimiter (void)
MatchLocalIPv6Subnet (const IPAddress & addr)
bool
Verifique se há uma correspondência de prefixo entre o endereço IPv6 especificado e qualquer um dos endereços IPv6 configurados localmente.
NewRawEndPoint (IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Cria um novo RawEndPoint objeto para uma versão IP específico e protocolo.
NewTCPEndPoint ( TCPEndPoint **retEndPoint)
Cria um novo TCPEndPoint objeto.
NewTunEndPoint ( TunEndPoint **retEndPoint)
Cria um novo TunEndPoint objeto.
NewUDPEndPoint ( UDPEndPoint **retEndPoint)
Cria um novo UDPEndPoint objeto.
PrepareSelect (int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Prepare os conjuntos de descritores de arquivos para select() para trabalhar.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Execute uma resolução de endereço IP de um nome de host especificado.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Execute uma resolução de endereço IP de um nome de host especificado.
ResolveHostAddress (const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Execute uma resolução de endereço IP de um nome de host especificado.
SetPlatformData (void *aPlatformData)
void
Isso define os dados da plataforma específicos do cliente especificados para a instância para recuperação posterior pela plataforma do cliente.
Shutdown (void)
Esta é a InetLayer deinitializer explícita e deve ser chamado antes de descartá um instanciado InetLayer instância.
SystemLayer (void) const

Funções estáticas públicas

HandleInetLayerEvent ( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument)
Weave::System::Error
IsDroppableEvent (Weave::System::EventType aType)
bool
UpdateSnapshot ( nl::Weave::System::Stats::Snapshot & aSnapshot)
void

Tipos públicos

@ 5

 @5

O estado atual da InetLayer objeto.

Propriedades
kState_Initialized

Estado inicializado.

kState_NotInitialized

Estado não inicializado.

kState_ShutdownInProgress

Indique onde o desligamento foi acionado.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Atributos públicos

Estado

enum nl::Inet::InetLayer::@5 State

O estado atual da InetLayer objeto.

[SOMENTE LEITURA] Estado atual.

Atributos estáticos públicos

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Funções públicas

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelResolveHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Cancele qualquer consulta DNS pendente (para um retorno de chamada de conclusão e estado do aplicativo correspondentes) que ainda possa estar ativa.

Detalhes
Parâmetros
[in] onComplete
Um ponteiro para a função de retorno de chamada quando uma solicitação DNS é concluída.
[in] appState
Um ponteiro para um objeto de estado do aplicativo a ser passado para a função de retorno de chamada como argumento.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

INET_ERROR GetInterfaceFromAddr(
  const IPAddress & addr,
  InterfaceId & intfId
)

Obtenha o identificador de interface para o endereço IP especificado.

Se o identificador de interface não pode ser derivada ele está definido para o INET_NULL_INTERFACEID .

Detalhes
Parâmetros
[in] addr
Uma referência ao Endereço_ip objecto.
[out] intfId
Uma referência ao objeto InterfaceId.
Devoluções
INET_NO_ERROR incondicionalmente.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Obtenha o endereço IPv6 local do link para um link ou interface especificada.

Detalhes
Parâmetros
[in] link
A interface para a qual o endereço IPv6 local do link está sendo procurado.
[out] llAddr
O endereço IPv6 local do link para o link.
Valores Retornados
INET_ERROR_NOT_IMPLEMENTED
Se IPv6 não for compatível.
INET_ERROR_BAD_ARGS
Se o endereço local do link for NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Se o link não tiver nenhum endereço configurado.
INET_NO_ERROR
Com sucesso.

GetPlatformData

void * GetPlatformData(
  void
)

Isso retorna todos os dados de plataforma específicos do cliente atribuídos à instância, se tiverem sido configurados anteriormente.

Detalhes
Devoluções
Dados de plataforma específicos do cliente, se tiverem sido configurados anteriormente; caso contrário, NULL.

HandleSelectResult

void HandleSelectResult(
  int selectRes,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds
)

Lidar com I / O de uma chamada selecionada.

Este método registra o evento de E / S pendente em cada terminal ativo e, em seguida, chama as respectivas funções de tratamento de E / S para esses terminais.

Detalhes
Parâmetros
[in] selectRes
O valor de retorno da chamada selecionada.
[in] readfds
Um ponteiro para o conjunto de descritores de arquivos lidos.
[in] writefds
Um ponteiro para o conjunto de descritores de arquivo de gravação.
[in] exceptfds
Um ponteiro para o conjunto de descritores de arquivo com erros.

InetLayer

 InetLayer(
  void
)

Esta é a InetLayer construtor padrão.

Ele executa algumas inicializações básicas de membros de dados; No entanto, desde InetLayer segue um padrão de design inicializador explícito, o InetLayer :: Init método deve ser chamado com sucesso antes de usar o objeto.

Iniciar

INET_ERROR Init(
  Weave::System::Layer & aSystemLayer,
  void *aContext
)

Esta é a InetLayer inicializador explícito.

Esta deve ser chamado e concluir com êxito antes do InetLayer pode ser usado.

O chamador pode fornecer um argumento de contexto opcional que será passado de volta por meio de quaisquer funções de gancho específicas da plataforma. Para adaptações baseados em lwIP, este será tipicamente um ponteiro para a fila de evento associado com o InetLayer exemplo.

Plataformas pode escolher fazer valer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no seu cabeçalho configuração específica da plataforma e permitir que a plataforma :: :: InetLayer WillInit e Plataforma :: ganchos InetLayer :: DidInit para efeito específico da plataforma de customização ou dados extensões para InetLayer .

Detalhes
Parâmetros
[in] aSystemLayer
Uma instância necessária do Weave System Layer já foi inicializada com sucesso.
[in] aContext
Um argumento de contexto opcional que será passado de volta ao chamador por meio de quaisquer funções de gancho específicas da plataforma.
Valores Retornados
INET_ERROR_INCORRECT_STATE
Se o InetLayer está em um estado incorreto.
INET_ERROR_NO_MEMORY
Se o InetLayer ficar sem recursos para este pedido para um novo timer.
other
Erros específicos da plataforma que indicam o motivo da falha de inicialização.
INET_NO_ERROR
Com sucesso.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Verifique se há uma correspondência de prefixo entre o endereço IPv6 especificado e qualquer um dos endereços IPv6 configurados localmente.

Detalhes
Parâmetros
[in] addr
O endereço IPv6 para verificar a correspondência de prefixo.
Devoluções
true se uma correspondência bem-sucedida for encontrada, caso contrário, false.

NewRawEndPoint

INET_ERROR NewRawEndPoint(
  IPVersion ipVer,
  IPProtocol ipProto,
  RawEndPoint **retEndPoint
)

Cria um novo RawEndPoint objeto para uma versão IP específico e protocolo.

Detalhes
Parâmetros
[in] ipVer
IPv4 ou IPv6.
[in] ipProto
Um protocolo dentro da família IP (por exemplo, ICMPv4 ou ICMPv6).
[in,out] retEndPoint
Um ponteiro para um ponteiro do RawEndPoint objeto que é um parâmetro de retorno após a conclusão da criação do objeto. * retEndPoint é NULL se a criação falhar.
Valores Retornados
INET_ERROR_INCORRECT_STATE
Se o InetLayer objeto não foi inicializado.
INET_ERROR_NO_ENDPOINTS
Se o InetLayer RawEndPoint piscina está cheia e há novos terminais podem ser criados.
INET_NO_ERROR
Com sucesso.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Cria um novo TCPEndPoint objeto.

Detalhes
Parâmetros
[in,out] retEndPoint
Um ponteiro para um ponteiro do TCPEndPoint objeto que é um parâmetro de retorno após a conclusão da criação do objeto. * retEndPoint é NULL se a criação falhar.
Valores Retornados
INET_ERROR_INCORRECT_STATE
Se o InetLayer objeto não foi inicializado.
INET_ERROR_NO_ENDPOINTS
Se o InetLayer TCPEndPoint piscina está cheia e há novos terminais podem ser criados.
INET_NO_ERROR
Com sucesso.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Cria um novo TunEndPoint objeto.

Detalhes
Parâmetros
[in,out] retEndPoint
Um ponteiro para um ponteiro do TunEndPoint objeto que é um parâmetro de retorno após a conclusão da criação do objeto. * retEndPoint é NULL se a criação falhar.
Valores Retornados
INET_ERROR_INCORRECT_STATE
Se o InetLayer objeto não foi inicializado.
INET_ERROR_NO_ENDPOINTS
Se o InetLayer TunEndPoint piscina está cheia e há novos podem ser criados.
INET_NO_ERROR
Com sucesso.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Cria um novo UDPEndPoint objeto.

Detalhes
Parâmetros
[in,out] retEndPoint
Um ponteiro para um ponteiro do UDPEndPoint objeto que é um parâmetro de retorno após a conclusão da criação do objeto. * retEndPoint é NULL se a criação falhar.
Valores Retornados
INET_ERROR_INCORRECT_STATE
Se o InetLayer objeto não foi inicializado.
INET_ERROR_NO_ENDPOINTS
Se o InetLayer UDPEndPoint piscina está cheia e há novos terminais podem ser criados.
INET_NO_ERROR
Com sucesso.

PrepareSelect

void PrepareSelect(
  int & nfds,
  fd_set *readfds,
  fd_set *writefds,
  fd_set *exceptfds,
  struct timeval & sleepTime
)

Prepare os conjuntos de descritores de arquivos para select() para trabalhar.

Detalhes
Parâmetros
[out] nfds
O intervalo de descritores de arquivo no conjunto de descritores de arquivo.
[in] readfds
Um ponteiro para o conjunto de descritores de arquivo legíveis.
[in] writefds
Um ponteiro para o conjunto de descritores de arquivo graváveis.
[in] exceptfds
Um ponteiro para o conjunto de descritores de arquivo com erros.
[in] sleepTimeTV
Um ponteiro para uma estrutura especificando por quanto tempo o select deve dormir

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t options,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Execute uma resolução de endereço IP de um nome de host especificado.

Detalhes
Parâmetros
[in] hostName
Um ponteiro para uma string C não terminada em NULL que representa o nome do host a ser consultado.
[in] hostNameLen
O comprimento da string do nome do host.
[in] options
Um valor inteiro que controla como a resolução do nome do host é executada.
                    Value should be one of the address family values from the
                    #DNSOptions enumeration:

                    #kDNSOption_AddrFamily_Any
                    #kDNSOption_AddrFamily_IPv4Only
                    #kDNSOption_AddrFamily_IPv6Only
                    #kDNSOption_AddrFamily_IPv4Preferred
                    #kDNSOption_AddrFamily_IPv6Preferred
[in] maxAddrs
O número máximo de endereços a serem armazenados na tabela DNS.
[in] addrArray
Um ponteiro para a tabela DNS.
[in] onComplete
Um ponteiro para a função de retorno de chamada quando uma solicitação DNS é concluída.
[in] appState
Um ponteiro para o estado do aplicativo a ser passado para onComplete quando uma solicitação DNS for concluída.
Valores Retornados
INET_NO_ERROR
se uma solicitação DNS for tratada com sucesso.
INET_ERROR_NO_MEMORY
se o pool do resolvedor da camada Inet estiver cheio.
INET_ERROR_HOST_NAME_TOO_LONG
se um nome de host solicitado for muito longo.
INET_ERROR_HOST_NOT_FOUND
se um nome de host de solicitação não puder ser resolvido para um endereço.
INET_ERROR_DNS_TRY_AGAIN
se um servidor de nomes retornou uma indicação de falha temporária; tente mais tarde.
INET_ERROR_DNS_NO_RECOVERY
se um servidor de nomes retornou um erro irrecuperável.
INET_ERROR_NOT_IMPLEMENTED
se a resolução DNS não estiver habilitada na plataforma subjacente.
other
Rede POSIX ou erro de sistema operacional retornado pela implementação do resolvedor DNS subjacente.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint16_t hostNameLen,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Execute uma resolução de endereço IP de um nome de host especificado.

Detalhes
Parâmetros
[in] hostName
Um ponteiro para uma string C não terminada em NULL representando o nome do host a ser consultado.
[in] hostNameLen
O comprimento da string do nome do host.
[in] maxAddrs
O número máximo de endereços a serem armazenados na tabela DNS.
[in] addrArray
Um ponteiro para a tabela DNS.
[in] onComplete
Um ponteiro para a função de retorno de chamada quando uma solicitação DNS é concluída.
[in] appState
Um ponteiro para o estado do aplicativo a ser passado para onComplete quando uma solicitação DNS for concluída.
Valores Retornados
INET_NO_ERROR
se uma solicitação DNS for tratada com sucesso.
INET_ERROR_NO_MEMORY
se o pool do resolvedor da camada Inet estiver cheio.
INET_ERROR_HOST_NAME_TOO_LONG
se um nome de host solicitado for muito longo.
INET_ERROR_HOST_NOT_FOUND
se um nome de host de solicitação não puder ser resolvido para um endereço.
INET_ERROR_DNS_TRY_AGAIN
se um servidor de nomes retornou uma indicação de falha temporária; tente mais tarde.
INET_ERROR_DNS_NO_RECOVERY
se um servidor de nomes retornou um erro irrecuperável.
INET_ERROR_NOT_IMPLEMENTED
se a resolução DNS não estiver habilitada na plataforma subjacente.
other
Rede POSIX ou erro de sistema operacional retornado pela implementação do resolvedor DNS subjacente.

ResolveHostAddress

INET_ERROR ResolveHostAddress(
  const char *hostName,
  uint8_t maxAddrs,
  IPAddress *addrArray,
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Execute uma resolução de endereço IP de um nome de host especificado.

Detalhes
Parâmetros
[in] hostName
Um ponteiro para uma string C terminada em NULL que representa o nome do host a ser consultado.
[in] maxAddrs
O número máximo de endereços a serem armazenados na tabela DNS.
[in] addrArray
Um ponteiro para a tabela DNS.
[in] onComplete
Um ponteiro para a função de retorno de chamada quando uma solicitação DNS é concluída.
[in] appState
Um ponteiro para o estado do aplicativo a ser passado para onComplete quando uma solicitação DNS for concluída.
Valores Retornados
INET_NO_ERROR
se uma solicitação DNS for tratada com sucesso.
INET_ERROR_NO_MEMORY
se o pool do resolvedor da camada Inet estiver cheio.
INET_ERROR_HOST_NAME_TOO_LONG
se um nome de host solicitado for muito longo.
INET_ERROR_HOST_NOT_FOUND
se um nome de host de solicitação não puder ser resolvido para um endereço.
INET_ERROR_DNS_TRY_AGAIN
se um servidor de nomes retornou uma indicação de falha temporária; tente mais tarde.
INET_ERROR_DNS_NO_RECOVERY
se um servidor de nomes retornou um erro irrecuperável.
INET_ERROR_NOT_IMPLEMENTED
se a resolução DNS não estiver habilitada na plataforma subjacente.
other
Rede POSIX ou erro de sistema operacional retornado pela implementação do resolvedor DNS subjacente.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Isso define os dados da plataforma específicos do cliente especificados para a instância para recuperação posterior pela plataforma do cliente.

Detalhes
Parâmetros
[in] aPlatformData
Os dados da plataforma específicos do cliente a serem configurados.

Desligar

INET_ERROR Shutdown(
  void
)

Esta é a InetLayer deinitializer explícita e deve ser chamado antes de descartá um instanciado InetLayer instância.

Plataformas pode escolher fazer valer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no seu cabeçalho configuração específica da plataforma e permitir que a plataforma :: :: InetLayer WillShutdown e Plataforma :: :: InetLayer DidShutdown ganchos para efeito de limpeza de personalizações específicas da plataforma ou extensões de dados para InetLayer .

Detalhes
Devoluções
INET_NO_ERROR em caso de sucesso; caso contrário, um erro específico indicando o motivo da falha de desligamento.

SystemLayer

Weave::System::Layer * SystemLayer(
  void
) const 

Funções estáticas públicas

HandleInetLayerEvent

Weave::System::Error HandleInetLayerEvent(
  Weave::System::Object & aTarget,
  Weave::System::EventType aEventType,
  uintptr_t aArgument
)

IsDroppableEvent

bool IsDroppableEvent(
  Weave::System::EventType aType
)

UpdateSnapshot

void UpdateSnapshot(
  nl::Weave::System::Stats::Snapshot & aSnapshot
)