nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Isso fornece acesso a serviços da Internet, incluindo timers, resolução de Sistema de Nomes de Domínio (DNS), transporte de rede TCP, transporte de rede UDP e transporte de rede bruta, para um único thread.
Resumo
Para soquetes BSD/POSIX, a notificação de prontidão de eventos é tratada por 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 do evento é processada por eventos / mensagens e ganchos 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{
|
enum 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 callback de conclusão e estado do aplicativo correspondentes) que ainda esteja ativa.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Consiga o identificador de interface do endereço IP especificado.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Encontre o endereço IPv6 de link-local para um link ou interface 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
Processar E/S de uma chamada selecionada.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Esse é o inicializador explícito de 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 de IP e protocolo específicos.
|
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 arquivo para o
select() trabalhar. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Executa uma resolução de endereço IP para um nome de host especificado.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Executa uma resolução de endereço IP para um nome de host especificado.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Executa uma resolução de endereço IP para um nome de host especificado.
|
SetPlatformData(void *aPlatformData)
|
void
Isso define os dados especificados da plataforma específicos do cliente para a instância, para recuperação posterior 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 )
CancelResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Cancele qualquer consulta DNS pendente (para um callback de conclusão e estado do aplicativo correspondentes) que ainda esteja ativa.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Consiga o identificador de interface do endereço IP especificado.
Se não for possível derivar o identificador da interface, ele será definido como INET_NULL_INTERFACEID.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retornos |
INET_NO_ERROR incondicionalmente.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Encontre o endereço IPv6 de link-local para um link ou interface 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 | |
---|---|
Retornos |
dados de plataformas específicos do cliente, se tiverem sido definidos anteriormente; caso contrário, NULL.
|
HandleSelectResult
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Processar E/S de uma chamada selecionada.
Esse método registra o evento de E/S pendente em cada endpoint ativo e, em seguida, invoca as respectivas funções de tratamento de E/S para esses endpoints.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
InetLayer
InetLayer( void )
Esse é o construtor padrão InetLayer.
Ele executa algumas inicializações básicas do membro de dados, No entanto, como InetLayer segue um padrão explícito de design de inicializador, o método InetLayer::Init precisa ser chamado antes de usar o objeto.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Esse é o inicializador explícito de InetLayer.
Isso precisa ser chamado e concluído 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 gancho 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 os ganchos INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no cabeçalho de configuração específico da plataforma e ativar os ganchos Platform::InetLayer::WillInit e Platform::InetLayer::DidInit para fazer personalizações específicas da plataforma ou extensões de dados para InetLayer.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||
Valores de retorno |
|
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 |
|
||
Retornos |
verdadeiro se uma correspondência bem-sucedida for encontrada; caso contrário, falso.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Cria um novo objeto RawEndPoint para uma versão de IP e protocolo específicos.
Detalhes | |||||||
---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||
Valores de retorno |
|
NewTCPEndPoint
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 |
|
NewUDPEndPoint
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 arquivo para o select()
trabalhar.
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 )
Executa uma resolução de endereço IP para 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 )
Executa uma resolução de endereço IP para 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 )
Executa uma resolução de endereço IP para um nome de host especificado.
Detalhes | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
||||||||||||||||
Valores de retorno |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
Isso define os dados especificados da plataforma específicos do cliente para a instância, para recuperação posterior pela plataforma do cliente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Encerramento
INET_ERROR Shutdown( void )
Esse é o desinicializador explícito InetLayer que precisa ser chamado antes do descarte de uma instância InetLayer instanciada.
As plataformas podem optar por declarar os ganchos INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS no cabeçalho de configuração específico da plataforma e ativar os ganchos Platform::InetLayer::WillShutdown e Platform::InetLayer::DidShutdown para efetuar a limpeza de personalizações específicas da plataforma ou extensões de dados para InetLayer.
Detalhes | |
---|---|
Retornos |
INET_NO_ERROR em caso de sucesso; caso contrário, um erro específico indicando o motivo da falha no encerramento.
|
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 )