nl:: Inet: InetLayer
#include <src/inet/InetLayer.h>
Isso fornece acesso a serviços da Internet, incluindo timers, resolução de Sistema de Nome de Domínio (DNS), transporte de rede TCP, transporte de rede UDP e transporte de rede bruto, para uma única linha de execução.
Resumo
Para Soquetes BSD/POSIX, a notificação de prontidão de evento é processada por descritores de arquivo e uma implementação de pesquisa / seleção tradicional na adaptação da plataforma.
Para LwIP, a notificação de prontidão de evento é processada por eventos / mensagens e hooks específicos da plataforma e do sistema para o sistema de eventos / mensagens.
Construtores e destruidores |
|
---|---|
InetLayer(void)
Esse é o construtor padrão InetLayer.
|
Tipos públicos |
|
---|---|
@5{
|
tipo enumerado O estado atual do objeto InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Atributos públicos |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
O estado atual do objeto InetLayer.
|
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 correspondente) que ainda possa estar ativa.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Encontre o identificador de interface do endereço IP especificado.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Encontre o endereço IPv6 local do link para uma interface ou um link especificado.
|
GetPlatformData(void)
|
void *
Isso retorna todos os dados da plataforma específicos do cliente atribuídos à instância, se eles tiverem sido definidos anteriormente.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Processe E/S de uma chamada selecionada.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Esse é o inicializador explícito InetLayer.
|
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 objeto RawEndPoint para uma versão e um protocolo específicos do IP.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Cria um novo objeto TCPEndPoint.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Cria um novo objeto TunEndPoint.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Cria um novo objeto UDPEndPoint.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Prepare os conjuntos de descritores de arquivos para o
select() funcionar. |
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 especificados da plataforma específica do cliente para a instância, que poderão ser recuperados posteriormente pela plataforma do cliente.
|
Shutdown(void)
|
|
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 do objeto InetLayer.
Propriedades | |
---|---|
kState_Initialized
|
Estado inicializado. |
kState_NotInitialized
|
Estado não inicializado. |
kState_ShutdownInProgress
|
Estado em que o encerramento foi acionado. |
DNSResolveCompleteFunct.
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Atributos públicos
Estado
enum nl::Inet::InetLayer::@5 State
O estado atual do objeto InetLayer.
[SOMENTE LEITURA] Estado atual.
Atributos estáticos públicos
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Funções públicas
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelarResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Cancele qualquer consulta DNS pendente (para um retorno de chamada de conclusão e estado do aplicativo correspondente) que ainda possa estar ativa.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Encontre o identificador de interface do endereço IP especificado.
Se não for possível derivar o identificador de interface, ele será definido como INET_NULL_INTERFACEID.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
INET_NO_ERROR incondicionalmente.
|
GetLinkLocalAddr.
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Encontre o endereço IPv6 local do link para uma interface ou um link especificado.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
GetPlatformData
void * GetPlatformData( void )
Isso retorna todos os dados da plataforma específicos do cliente atribuídos à instância, se eles tiverem sido definidos anteriormente.
Detalhes | |
---|---|
Retorna |
Dados da plataforma específica do cliente, se tiverem sido definidos anteriormente. Caso contrário, serão NULL.
|
HandleSelectResult.
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Processe E/S de uma chamada selecionada.
Esse método registra o evento pendente de E/S em cada endpoint ativo e invoca as respectivas funções de processamento de E/S para esses endpoints.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
Camada Inet
InetLayer( void )
Esse é o construtor padrão InetLayer.
Ele realiza alguma inicialização básica de membro de dados. No entanto, como a InetLayer segue um padrão explícito de design de inicializador, o método InetLayer::Init precisa ser chamado com sucesso antes de usar o objeto.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Esse é o inicializador explícito InetLayer.
Ela precisa ser chamada e concluída antes que a InetLayer possa ser usada.
O autor da chamada pode fornecer um argumento de contexto opcional que será retornado por qualquer função de hook específica da plataforma. Para adaptações baseadas em LwIP, isso normalmente será um ponteiro para a fila de eventos associada à instância InetLayer.
As plataformas podem declarar INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no cabeçalho de configuração específico da plataforma e ativar os hooks de Platform::InetLayer::WillInit e Platform::InetLayer::DoesInit para modificar personalizações específicas da plataforma ou extensões de dados para InetLayer.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
InitQueueLimiter.
INET_ERROR InitQueueLimiter( void )
Correspondência localIPv6
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 |
|
||
Retorna |
"true" se uma correspondência bem-sucedida for encontrada. Caso contrário, será "false".
|
NewRawEndPoint (em inglês)
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Cria um novo objeto RawEndPoint para uma versão e um protocolo específicos do IP.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
NewPointEndPoint
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Cria um novo objeto TCPEndPoint.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Cria um novo objeto TunEndPoint.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
NewPointEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Cria um novo objeto UDPEndPoint.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
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 o select()
funcionar.
Detalhes | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
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 |
|
||||||||||||||||
Valores de retorno |
|
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 |
|
||||||||||||||||
Valores de retorno |
|
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 |
|
||||||||||||||||
Valores de retorno |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Isso define os dados especificados da plataforma específica do cliente para a instância, que poderão ser recuperados posteriormente pela plataforma do cliente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Encerramento
INET_ERROR Shutdown( void )
Esse é o desinicializador explícito InetLayer e precisa ser chamado antes do descarte de uma instância InetLayer instanciada.
As plataformas podem declarar INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no cabeçalho de configuração específico da plataforma e ativar os hooks de Platform::InetLayer::WillShutdown e Platform::InetLayer::DidShutdown para limpar as personalizações específicas da plataforma ou as extensões de dados para InetLayer.
Detalhes | |
---|---|
Retorna |
INET_NO_ERROR em caso de sucesso. Caso contrário, um erro específico que indica o motivo da falha de encerramento.
|
Camada de sistema
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 )