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 uma única linha de execução.
Resumo
Para soquetes BSD/POSIX, a notificação de prontidão de eventos é processada por descritores de arquivo e por uma implementação tradicional de pesquisa / seleção na adaptação da plataforma.
Para LwIP, a notificação de prontidão de eventos é tratada por eventos / mensagens e hooks específicos da plataforma e do sistema para o sistema de eventos / mensagens.
Construtores e destrutores |
|
---|---|
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 uma chamada de retorno de conclusão e estado do aplicativo) que ainda estejam ativas.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Consiga o identificador da interface para o endereço IP especificado.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Extrai o endereço IPv6 link-local de um link ou interface especificado.
|
GetPlatformData(void)
|
void *
Isso retorna todos os dados da plataforma específicos do cliente atribuídos à instância, se tiverem sido definidos anteriormente.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Processe a E/S de uma chamada selecionada.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Este é 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 algum 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 um 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 trabalhar com o
select() . |
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 de 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 de 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 de um nome de host especificado.
|
SetPlatformData(void *aPlatformData)
|
void
Isso define os dados da plataforma específicos do cliente especificados na 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 onde 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 uma chamada de retorno de conclusão e estado do aplicativo) que ainda estejam ativas.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
DroppableEventDequeued
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Consiga o identificador da interface para o endereço IP especificado.
Se o identificador de interface não puder ser derivado, ele será definido como INET_NULL_INTERFACEID.
Detalhes | |||||
---|---|---|---|---|---|
Parâmetros |
|
||||
Retorna |
INET_NO_ERROR incondicionalmente.
|
GetLinkLocalAddr
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Extrai o endereço IPv6 link-local de 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 tiverem sido definidos anteriormente.
Detalhes | |
---|---|
Retorna |
Dados da plataforma 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 )
Processe a E/S de uma chamada selecionada.
Esse método registra o evento pendente de E/S em cada endpoint ativo e, em seguida, invoca as respectivas funções de processamento de E/S para esses endpoints.
Detalhes | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parâmetros |
|
InetLayer
InetLayer( void )
Esse é o construtor padrão InetLayer.
Ele realiza algumas inicializações básicas de membros de dados. No entanto, como InetLayer segue um padrão de design explícito 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 )
Este é o inicializador explícito InetLayer.
Ela deve 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 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 optar por 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::DidInit para afetar personalizações ou extensões de dados específicas da plataforma no 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 algum dos endereços IPv6 configurados localmente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
||
Retorna |
verdadeiro se uma correspondência bem-sucedida for encontrada. Caso contrário, será falso.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Cria um novo objeto RawEndPoint para uma versão de IP e um 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 trabalhar com o select()
.
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 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 )
Executa 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 )
Executa 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 da plataforma específicos do cliente especificados na instância para recuperação posterior pela plataforma do cliente.
Detalhes | |||
---|---|---|---|
Parâmetros |
|
Desligamento
INET_ERROR Shutdown( void )
Esse é o desinicializador explícito de InetLayer e precisa ser chamado antes de descartar uma instância de InetLayer instanciada.
As plataformas podem optar por 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 efetuar a limpeza de personalizações específicas da plataforma ou 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 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 )