nl:: Inet:: InetLayer
#include <src/inet/InetLayer.h>
Proporciona acceso a servicios de Internet para un solo subproceso, entre los que se incluyen temporizadores, resolución de sistemas de nombres de dominio (DNS), transporte de redes TCP, transporte de red UDP y transporte de red sin procesar.
Resumen
Para los sockets BSD/POSIX, la notificación de preparación de los eventos se controla mediante descriptores de archivos y una implementación tradicional de sondeo o selección en la adaptación de la plataforma.
En el caso de LwIP, la notificación de preparación de eventos se controla mediante eventos / mensajes y hooks específicos de la plataforma y el sistema para el sistema de eventos / mensajes.
Constructores y destructores |
|
---|---|
InetLayer(void)
Este es el constructor predeterminado de InetLayer.
|
Tipos públicos |
|
---|---|
@5{
|
enum El estado actual del objeto InetLayer. |
DNSResolveCompleteFunct
|
typedefDNSResolver::OnResolveCompleteFunct
|
Atributos públicos |
|
---|---|
State
|
enum nl::Inet::InetLayer::@5
El estado actual del objeto InetLayer.
|
Atributos estáticos públicos |
|
---|---|
sInetEventHandlerDelegate
|
Funciones públicas |
|
---|---|
CanEnqueueDroppableEvent(void)
|
bool
|
CancelResolveHostAddress(DNSResolveCompleteFunct onComplete, void *appState)
|
void
Cancela cualquier consulta de DNS pendiente (para la devolución de llamada coincidente y el estado de la aplicación) que aún esté activa.
|
DroppableEventDequeued(void)
|
void
|
GetInterfaceFromAddr(const IPAddress & addr, InterfaceId & intfId)
|
Obtén el identificador de interfaz para la dirección IP especificada.
|
GetLinkLocalAddr(InterfaceId link, IPAddress *llAddr)
|
Obtén la dirección IPv6 local del vínculo de una interfaz o un vínculo especificados.
|
GetPlatformData(void)
|
void *
Esto muestra cualquier dato de plataforma específico del cliente asignado a la instancia, si se configuró anteriormente.
|
HandleSelectResult(int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
|
void
Maneja E/S desde una llamada seleccionada.
|
Init(Weave::System::Layer & aSystemLayer, void *aContext)
|
Este es el inicializador explícito InetLayer.
|
InitQueueLimiter(void)
|
|
MatchLocalIPv6Subnet(const IPAddress & addr)
|
bool
Verifica si hay una coincidencia de prefijo entre la dirección IPv6 especificada y cualquiera de las direcciones IPv6 configuradas de forma local.
|
NewRawEndPoint(IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
|
Crea un objeto RawEndPoint nuevo para una versión y un protocolo de IP específicos.
|
NewTCPEndPoint(TCPEndPoint **retEndPoint)
|
Crea un nuevo objeto TCPEndPoint.
|
NewTunEndPoint(TunEndPoint **retEndPoint)
|
Crea un objeto TunEndPoint nuevo.
|
NewUDPEndPoint(UDPEndPoint **retEndPoint)
|
Crea un objeto UDPEndPoint nuevo.
|
PrepareSelect(int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
|
void
Prepara los conjuntos de descriptores de archivos para que
select() funcionen. |
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Realiza una resolución de dirección IP de un nombre de host especificado.
|
ResolveHostAddress(const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Realiza una resolución de dirección IP de un nombre de host especificado.
|
ResolveHostAddress(const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
|
Realiza una resolución de dirección IP de un nombre de host especificado.
|
SetPlatformData(void *aPlatformData)
|
void
De esta manera, se configuran los datos específicos de la plataforma del cliente en la instancia para que la plataforma cliente los recupere más tarde.
|
Shutdown(void)
|
|
SystemLayer(void) const
|
Funciones 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
El estado actual del objeto InetLayer.
Properties | |
---|---|
kState_Initialized
|
Estado inicializado. |
kState_NotInitialized
|
Estado no inicializado. |
kState_ShutdownInProgress
|
Estado en el que se activó el bloqueo |
DNSResolveCompleteFunct
DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct
Atributos públicos
Estado
enum nl::Inet::InetLayer::@5 State
El estado actual del objeto InetLayer.
[READ-ONLY] Estado actual.
Atributos estáticos públicos
sInetEventHandlerDelegate
Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate
Funciones públicas
CanEnqueueDroppableEvent
bool CanEnqueueDroppableEvent( void )
CancelarResolveHostAddress
void CancelResolveHostAddress( DNSResolveCompleteFunct onComplete, void *appState )
Cancela cualquier consulta de DNS pendiente (para la devolución de llamada coincidente y el estado de la aplicación) que aún esté activa.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
DroppableEventDequeue
void DroppableEventDequeued( void )
GetInterfaceFromAddr
INET_ERROR GetInterfaceFromAddr( const IPAddress & addr, InterfaceId & intfId )
Obtén el identificador de interfaz para la dirección IP especificada.
Si no se puede derivar el identificador de interfaz, se establece en INET_NULL_INTERFACEID.
Detalles | |||||
---|---|---|---|---|---|
Parámetros |
|
||||
Qué muestra |
INET_NO_ERROR sin condiciones.
|
GetLinkLocalAddr.
INET_ERROR GetLinkLocalAddr( InterfaceId link, IPAddress *llAddr )
Obtén la dirección IPv6 local del vínculo de una interfaz o un vínculo especificados.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
GetPlatformData
void * GetPlatformData( void )
Esto muestra cualquier dato de plataforma específico del cliente asignado a la instancia, si se configuró anteriormente.
Detalles | |
---|---|
Qué muestra |
Datos de la plataforma específicos del cliente, si ya se configuraron; de lo contrario, son NULL.
|
NombreDeControlDeSelect
void HandleSelectResult( int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds )
Maneja E/S desde una llamada seleccionada.
Este método registra el evento de E/S pendiente en cada extremo activo y, luego, invoca las funciones de control de E/S respectivas para esos extremos.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
InetLayer
InetLayer( void )
Este es el constructor predeterminado de InetLayer.
Realiza algunas inicializaciones básicas de miembros de datos. Sin embargo, como InetLayer sigue un patrón de diseño de inicializador explícito, se debe llamar correctamente al método InetLayer::Init antes de usar el objeto.
Init
INET_ERROR Init( Weave::System::Layer & aSystemLayer, void *aContext )
Este es el inicializador explícito InetLayer.
Se debe llamar y completar correctamente antes de usar InetLayer.
El emisor puede proporcionar un argumento de contexto opcional que se pasará a través de cualquier función de hook específica de la plataforma. Para las adaptaciones basadas en LwIP, esto suele ser un puntero a la cola de eventos asociada con la instancia de InetLayer.
Las plataformas pueden optar por confirmar INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS en su encabezado de configuración específico de la plataforma y habilitar los hooks de Platform::InetLayer::WillInit y Platform::InetLayer::DidInit para aplicar personalizaciones específicas de la plataforma o extensiones de datos en InetLayer.
Detalles | |||||||||
---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||
Valores que se muestran |
|
InitQueueLimiter
INET_ERROR InitQueueLimiter( void )
MatchLocalIPv6Subred
bool MatchLocalIPv6Subnet( const IPAddress & addr )
Verifica si hay una coincidencia de prefijo entre la dirección IPv6 especificada y cualquiera de las direcciones IPv6 configuradas de forma local.
Detalles | |||
---|---|---|---|
Parámetros |
|
||
Qué muestra |
Es verdadero si se encuentra una coincidencia correcta; de lo contrario, es falso.
|
NewRawEndPoint
INET_ERROR NewRawEndPoint( IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint )
Crea un objeto RawEndPoint nuevo para una versión y un protocolo de IP específicos.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
Nuevo punto de extremo TCP
INET_ERROR NewTCPEndPoint( TCPEndPoint **retEndPoint )
Crea un nuevo objeto TCPEndPoint.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
NewTunEndPoint
INET_ERROR NewTunEndPoint( TunEndPoint **retEndPoint )
Crea un objeto TunEndPoint nuevo.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
NewUDPEndPoint
INET_ERROR NewUDPEndPoint( UDPEndPoint **retEndPoint )
Crea un objeto UDPEndPoint nuevo.
Detalles | |||||||
---|---|---|---|---|---|---|---|
Parámetros |
|
||||||
Valores que se muestran |
|
PrepareSeleccionar
void PrepareSelect( int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime )
Prepara los conjuntos de descriptores de archivos para que select()
funcionen.
Detalles | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Realiza una resolución de dirección IP de un nombre de host especificado.
Detalles | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||||||
Valores que se muestran |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint16_t hostNameLen, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Realiza una resolución de dirección IP de un nombre de host especificado.
Detalles | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||||||
Valores que se muestran |
|
ResolveHostAddress
INET_ERROR ResolveHostAddress( const char *hostName, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState )
Realiza una resolución de dirección IP de un nombre de host especificado.
Detalles | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Parámetros |
|
||||||||||||||||
Valores que se muestran |
|
SetPlatformData
void SetPlatformData( void *aPlatformData )
De esta manera, se configuran los datos específicos de la plataforma del cliente en la instancia para que la plataforma cliente los recupere más tarde.
Detalles | |||
---|---|---|---|
Parámetros |
|
Cierre
INET_ERROR Shutdown( void )
Este es el inicializador explícito InetLayer y se debe llamar antes de desechar una instancia InetLayer con instancia de la instancia.
Las plataformas pueden optar por confirmar INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS en el encabezado de su configuración específica de la plataforma y habilitar los hooks de Platform::InetLayer::WillShutdown y Platform::InetLayer::didShutdown para efectuar la limpieza de las personalizaciones o extensiones de datos específicas de la plataforma en InetLayer.
Detalles | |
---|---|
Qué muestra |
INET_NO_ERROR si la operación es exitosa; de lo contrario, es un error específico que indica el motivo del error de cierre.
|
Capa del sistema
Weave::System::Layer * SystemLayer( void ) const
Funciones estáticas públicas
ID de evento de capa de control de Internet
Weave::System::Error HandleInetLayerEvent( Weave::System::Object & aTarget, Weave::System::EventType aEventType, uintptr_t aArgument )
IsDroppableEvent
bool IsDroppableEvent( Weave::System::EventType aType )