En Google, luchamos por la equidad racial de la comunidad negra. Más información

nl :: Inet :: InetLayer

#include <src/inet/InetLayer.h>

Esto proporciona acceso a servicios de Internet, incluidos temporizadores, resolución del sistema de nombres de dominio (DNS), transporte de red TCP, transporte de red UDP y transporte de red sin procesar, para un solo subproceso.

Resumen

Para BSD / POSIX Sockets, la notificación de preparación de eventos se maneja a través de descriptores de archivo y una implementación tradicional de encuesta / selección en la adaptación de la plataforma.

Para LwIP, la notificación de preparación de eventos se maneja a través de eventos / mensajes y enlaces específicos de la plataforma y el sistema para el sistema de eventos / mensajes.

Constructores y Destructores

InetLayer (void)
Esta es la InetLayer constructor por defecto.

Tipos públicos

@5 {
kState_NotInitialized = 0,
kState_Initialized = 1,
kState_ShutdownInProgress = 2
}
enumeración
El estado actual de la InetLayer objeto.
DNSResolveCompleteFunct typedef
DNSResolver::OnResolveCompleteFunct

Atributos públicos

State
enum nl::Inet::InetLayer::@5
El estado actual de la InetLayer objeto.

Atributos estáticos públicos

sInetEventHandlerDelegate

Funciones publicas

CanEnqueueDroppableEvent (void)
bool
CancelResolveHostAddress (DNSResolveCompleteFunct onComplete, void *appState)
void
Cancele cualquier consulta de DNS pendiente (para una devolución de llamada de finalización coincidente y el estado de la aplicación) que aún pueda estar activa.
DroppableEventDequeued (void)
void
GetInterfaceFromAddr (const IPAddress & addr, InterfaceId & intfId)
Obtenga el identificador de interfaz para la dirección IP especificada.
GetLinkLocalAddr (InterfaceId link, IPAddress *llAddr)
Obtenga la dirección IPv6 local del enlace para un enlace o interfaz especificados.
GetPlatformData (void)
void *
Esto devuelve cualquier dato de plataforma específico del cliente asignado a la instancia, si se ha configurado previamente.
HandleSelectResult (int selectRes, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
void
Manejar E / S desde una llamada seleccionada.
Init ( Weave::System::Layer & aSystemLayer, void *aContext)
Esta es la InetLayer inicializador explícito.
InitQueueLimiter (void)
MatchLocalIPv6Subnet (const IPAddress & addr)
bool
Compruebe si hay una coincidencia de prefijo entre la dirección IPv6 especificada y cualquiera de las direcciones IPv6 configuradas localmente.
NewRawEndPoint (IPVersion ipVer, IPProtocol ipProto, RawEndPoint **retEndPoint)
Crea un nuevo RawEndPoint objeto para una versión específica de IP y el protocolo.
NewTCPEndPoint ( TCPEndPoint **retEndPoint)
Crea un nuevo TCPEndPoint objeto.
NewTunEndPoint ( TunEndPoint **retEndPoint)
Crea un nuevo TunEndPoint objeto.
NewUDPEndPoint ( UDPEndPoint **retEndPoint)
Crea un nuevo UDPEndPoint objeto.
PrepareSelect (int & nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval & sleepTime)
void
Preparar los conjuntos de descriptores de fichero para select() para trabajar.
ResolveHostAddress (const char *hostName, uint16_t hostNameLen, uint8_t options, uint8_t maxAddrs, IPAddress *addrArray, DNSResolveCompleteFunct onComplete, void *appState)
Realice 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)
Realice 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)
Realice una resolución de dirección IP de un nombre de host especificado.
SetPlatformData (void *aPlatformData)
void
Esto establece los datos de la plataforma específicos del cliente especificados en la instancia para su posterior recuperación por parte de la plataforma del cliente.
Shutdown (void)
Esta es la InetLayer deinitializer explícita y debe ser llamado antes de disponer de una instancia InetLayer ejemplo.
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 de la InetLayer objeto.

Propiedades
kState_Initialized

Estado inicializado.

kState_NotInitialized

Estado no inicializado.

kState_ShutdownInProgress

Estado donde se ha activado el apagado.

DNSResolveCompleteFunct

DNSResolver::OnResolveCompleteFunct DNSResolveCompleteFunct

Atributos públicos

Expresar

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

El estado actual de la InetLayer objeto.

[SOLO LECTURA] Estado actual.

Atributos estáticos públicos

sInetEventHandlerDelegate

Weave::System::LwIPEventHandlerDelegate sInetEventHandlerDelegate

Funciones publicas

CanEnqueueDroppableEvent

bool CanEnqueueDroppableEvent(
  void
)

CancelarResolverHostAddress

void CancelResolveHostAddress(
  DNSResolveCompleteFunct onComplete,
  void *appState
)

Cancele cualquier consulta de DNS pendiente (para una devolución de llamada de finalización coincidente y el estado de la aplicación) que aún pueda estar activa.

Detalles
Parámetros
[in] onComplete
Un puntero a la función de devolución de llamada cuando se completa una solicitud de DNS.
[in] appState
Un puntero a un objeto de estado de la aplicación que se pasará a la función de devolución de llamada como argumento.

DroppableEventDequeued

void DroppableEventDequeued(
  void
)

GetInterfaceFromAddr

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

Obtenga el identificador de interfaz para la dirección IP especificada.

Si el identificador de interfaz no puede derivarse que se establece en la INET_NULL_INTERFACEID .

Detalles
Parámetros
[in] addr
Una referencia a la Dirección IP objeto.
[out] intfId
Una referencia al objeto InterfaceId.
Devoluciones
INET_NO_ERROR incondicionalmente.

GetLinkLocalAddr

INET_ERROR GetLinkLocalAddr(
  InterfaceId link,
  IPAddress *llAddr
)

Obtenga la dirección IPv6 local del enlace para un enlace o interfaz especificados.

Detalles
Parámetros
[in] link
La interfaz para la que se busca la dirección IPv6 local del enlace.
[out] llAddr
La dirección IPv6 local del enlace para el enlace.
Valores devueltos
INET_ERROR_NOT_IMPLEMENTED
Si no se admite IPv6.
INET_ERROR_BAD_ARGS
Si la dirección local del enlace es NULL.
INET_ERROR_ADDRESS_NOT_FOUND
Si el enlace no tiene ninguna dirección configurada.
INET_NO_ERROR
Sobre el éxito.

GetPlatformData

void * GetPlatformData(
  void
)

Esto devuelve cualquier dato de plataforma específico del cliente asignado a la instancia, si se ha configurado previamente.

Detalles
Devoluciones
Datos de la plataforma específicos del cliente, si se ha configurado previamente; de lo contrario, NULL.

HandleSelectResult

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

Manejar E / S desde una llamada seleccionada.

Este método registra el evento de E / S pendiente en cada punto final activo y luego invoca las funciones de manejo de E / S respectivas para esos puntos finales.

Detalles
Parámetros
[in] selectRes
El valor de retorno de la llamada seleccionada.
[in] readfds
Un puntero al conjunto de descriptores de archivos leídos.
[in] writefds
Un puntero al conjunto de descriptores de archivos de escritura.
[in] exceptfds
Un puntero al conjunto de descriptores de archivos con errores.

InetLayer

 InetLayer(
  void
)

Esta es la InetLayer constructor por defecto.

Realiza una inicialización básica de miembros de datos; Sin embargo, dado que InetLayer sigue un patrón de diseño de inicialización explícita, la InetLayer :: Init método debe ser llamado con éxito antes de usar el objeto.

En eso

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

Esta es la InetLayer inicializador explícito.

Esto se debe llamar y completar con éxito ante el InetLayer puede ser utilizado.

La persona que llama puede proporcionar un argumento de contexto opcional que se devolverá a través de cualquier función de enlace específica de la plataforma. Para adaptaciones basadas en lwip, esto será típicamente un puntero a la cola de eventos asociados a la InetLayer ejemplo.

Plataformas pueden optar por hacer valer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS en su cabecera configuración de la plataforma específica y permitir la Plataforma :: :: InetLayer WillInit y Plataforma :: :: ganchos InetLayer DidInit a efectos específicos de la plataforma de datos personalizaciones o extensiones a InetLayer .

Detalles
Parámetros
[in] aSystemLayer
Una instancia requerida de la capa del sistema de tejido ya se ha inicializado correctamente.
[in] aContext
Un argumento de contexto opcional que se devolverá a la persona que llama a través de cualquier función de enlace específica de la plataforma.
Valores devueltos
INET_ERROR_INCORRECT_STATE
Si el InetLayer está en un estado incorrecto.
INET_ERROR_NO_MEMORY
Si el InetLayer se queda sin recursos para esta solicitud de un nuevo temporizador.
other
Errores específicos de la plataforma que indican el motivo del error de inicialización.
INET_NO_ERROR
Sobre el éxito.

InitQueueLimiter

INET_ERROR InitQueueLimiter(
  void
)

MatchLocalIPv6Subnet

bool MatchLocalIPv6Subnet(
  const IPAddress & addr
)

Compruebe si hay una coincidencia de prefijo entre la dirección IPv6 especificada y cualquiera de las direcciones IPv6 configuradas localmente.

Detalles
Parámetros
[in] addr
La dirección IPv6 para verificar la coincidencia de prefijo.
Devoluciones
Es verdadero si se encuentra una coincidencia exitosa; de lo contrario, es falso.

NewRawEndPoint

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

Crea un nuevo RawEndPoint objeto para una versión específica de IP y el protocolo.

Detalles
Parámetros
[in] ipVer
IPv4 o IPv6.
[in] ipProto
Un protocolo dentro de la familia de IP (p. Ej., ICMPv4 o ICMPv6).
[in,out] retEndPoint
Un puntero a un puntero de la RawEndPoint objeto que es un parámetro de retorno sobre la terminación de la creación del objeto. * retEndPoint es NULL si falla la creación.
Valores devueltos
INET_ERROR_INCORRECT_STATE
Si el InetLayer no se ha inicializado objeto.
INET_ERROR_NO_ENDPOINTS
Si el InetLayer RawEndPoint piscina está llena y no nuevos puntos finales pueden ser creados.
INET_NO_ERROR
Sobre el éxito.

NewTCPEndPoint

INET_ERROR NewTCPEndPoint(
  TCPEndPoint **retEndPoint
)

Crea un nuevo TCPEndPoint objeto.

Detalles
Parámetros
[in,out] retEndPoint
Un puntero a un puntero de la TCPEndPoint objeto que es un parámetro de retorno sobre la terminación de la creación del objeto. * retEndPoint es NULL si falla la creación.
Valores devueltos
INET_ERROR_INCORRECT_STATE
Si el InetLayer no se ha inicializado objeto.
INET_ERROR_NO_ENDPOINTS
Si el InetLayer TCPEndPoint piscina está llena y no nuevos puntos finales pueden ser creados.
INET_NO_ERROR
Sobre el éxito.

NewTunEndPoint

INET_ERROR NewTunEndPoint(
  TunEndPoint **retEndPoint
)

Crea un nuevo TunEndPoint objeto.

Detalles
Parámetros
[in,out] retEndPoint
Un puntero a un puntero de la TunEndPoint objeto que es un parámetro de retorno sobre la terminación de la creación del objeto. * retEndPoint es NULL si falla la creación.
Valores devueltos
INET_ERROR_INCORRECT_STATE
Si el InetLayer no se ha inicializado objeto.
INET_ERROR_NO_ENDPOINTS
Si el InetLayer TunEndPoint piscina está llena y no hay otros nuevos pueden ser creados.
INET_NO_ERROR
Sobre el éxito.

NewUDPEndPoint

INET_ERROR NewUDPEndPoint(
  UDPEndPoint **retEndPoint
)

Crea un nuevo UDPEndPoint objeto.

Detalles
Parámetros
[in,out] retEndPoint
Un puntero a un puntero de la UDPEndPoint objeto que es un parámetro de retorno sobre la terminación de la creación del objeto. * retEndPoint es NULL si falla la creación.
Valores devueltos
INET_ERROR_INCORRECT_STATE
Si el InetLayer no se ha inicializado objeto.
INET_ERROR_NO_ENDPOINTS
Si el InetLayer UDPEndPoint piscina está llena y no nuevos puntos finales pueden ser creados.
INET_NO_ERROR
Sobre el éxito.

PrepararSeleccionar

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

Preparar los conjuntos de descriptores de fichero para select() para trabajar.

Detalles
Parámetros
[out] nfds
El rango de descriptores de archivo en el conjunto de descriptores de archivo.
[in] readfds
Un puntero al conjunto de descriptores de archivos legibles.
[in] writefds
Un puntero al conjunto de descriptores de archivos grabables.
[in] exceptfds
Un puntero al conjunto de descriptores de archivos con errores.
[in] sleepTimeTV
Un puntero a una estructura que especifica cuánto tiempo debe dormir la selección.

ResolveHostAddress

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

Realice una resolución de dirección IP de un nombre de host especificado.

Detalles
Parámetros
[in] hostName
Un puntero a una cadena C no terminada en NULL que representa el nombre de host que se va a consultar.
[in] hostNameLen
La longitud de la cadena del nombre de host.
[in] options
Un valor entero que controla cómo se realiza la resolución de nombres de host.
                    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
El número máximo de direcciones para almacenar en la tabla DNS.
[in] addrArray
Un puntero a la tabla DNS.
[in] onComplete
Un puntero a la función de devolución de llamada cuando se completa una solicitud de DNS.
[in] appState
Un puntero al estado de la aplicación que se pasará a onComplete cuando se complete una solicitud de DNS.
Valores devueltos
INET_NO_ERROR
si una solicitud de DNS se maneja con éxito.
INET_ERROR_NO_MEMORY
si el grupo de resolución de la capa Inet está lleno.
INET_ERROR_HOST_NAME_TOO_LONG
si un nombre de host solicitado es demasiado largo.
INET_ERROR_HOST_NOT_FOUND
si un nombre de host de solicitud no se pudo resolver en una dirección.
INET_ERROR_DNS_TRY_AGAIN
si un servidor de nombres devolvió una indicación de falla temporal; inténtelo de nuevo más tarde.
INET_ERROR_DNS_NO_RECOVERY
si un servidor de nombres devolvió un error irrecuperable.
INET_ERROR_NOT_IMPLEMENTED
si la resolución de DNS no está habilitada en la plataforma subyacente.
other
Error de sistema operativo o red POSIX devuelto por la implementación de resolución de DNS subyacente.

ResolveHostAddress

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

Realice una resolución de dirección IP de un nombre de host especificado.

Detalles
Parámetros
[in] hostName
Un puntero a una cadena C no terminada en NULL que representa el nombre de host que se va a consultar.
[in] hostNameLen
La longitud de la cadena del nombre de host.
[in] maxAddrs
El número máximo de direcciones para almacenar en la tabla DNS.
[in] addrArray
Un puntero a la tabla DNS.
[in] onComplete
Un puntero a la función de devolución de llamada cuando se completa una solicitud de DNS.
[in] appState
Un puntero al estado de la aplicación que se pasará a onComplete cuando se complete una solicitud de DNS.
Valores devueltos
INET_NO_ERROR
si una solicitud de DNS se maneja con éxito.
INET_ERROR_NO_MEMORY
si el grupo de resolución de la capa Inet está lleno.
INET_ERROR_HOST_NAME_TOO_LONG
si un nombre de host solicitado es demasiado largo.
INET_ERROR_HOST_NOT_FOUND
si un nombre de host de solicitud no se pudo resolver en una dirección.
INET_ERROR_DNS_TRY_AGAIN
si un servidor de nombres devolvió una indicación de falla temporal; inténtelo de nuevo más tarde.
INET_ERROR_DNS_NO_RECOVERY
si un servidor de nombres devolvió un error irrecuperable.
INET_ERROR_NOT_IMPLEMENTED
si la resolución de DNS no está habilitada en la plataforma subyacente.
other
Error de sistema operativo o red POSIX devuelto por la implementación de resolución de DNS subyacente.

ResolveHostAddress

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

Realice una resolución de dirección IP de un nombre de host especificado.

Detalles
Parámetros
[in] hostName
Un puntero a una cadena C terminada en NULL que representa el nombre de host que se va a consultar.
[in] maxAddrs
El número máximo de direcciones para almacenar en la tabla DNS.
[in] addrArray
Un puntero a la tabla DNS.
[in] onComplete
Un puntero a la función de devolución de llamada cuando se completa una solicitud de DNS.
[in] appState
Un puntero al estado de la aplicación que se pasará a onComplete cuando se complete una solicitud de DNS.
Valores devueltos
INET_NO_ERROR
si una solicitud de DNS se maneja con éxito.
INET_ERROR_NO_MEMORY
si el grupo de resolución de la capa Inet está lleno.
INET_ERROR_HOST_NAME_TOO_LONG
si un nombre de host solicitado es demasiado largo.
INET_ERROR_HOST_NOT_FOUND
si un nombre de host de solicitud no se pudo resolver en una dirección.
INET_ERROR_DNS_TRY_AGAIN
si un servidor de nombres devolvió una indicación de falla temporal; inténtelo de nuevo más tarde.
INET_ERROR_DNS_NO_RECOVERY
si un servidor de nombres devolvió un error irrecuperable.
INET_ERROR_NOT_IMPLEMENTED
si la resolución de DNS no está habilitada en la plataforma subyacente.
other
Error de sistema operativo o red POSIX devuelto por la implementación de resolución de DNS subyacente.

SetPlatformData

void SetPlatformData(
  void *aPlatformData
)

Esto establece los datos de la plataforma específicos del cliente especificados en la instancia para su posterior recuperación por parte de la plataforma del cliente.

Detalles
Parámetros
[in] aPlatformData
Los datos de la plataforma específicos del cliente que se van a configurar.

Cerrar

INET_ERROR Shutdown(
  void
)

Esta es la InetLayer deinitializer explícita y debe ser llamado antes de disponer de una instancia InetLayer ejemplo.

Plataformas pueden optar por hacer valer INET_CONFIG_WILL_OVERRIDE_PLATFORM_XTOR_FUNCS en su cabecera la configuración específica de la plataforma y permitir que la plataforma :: :: InetLayer WillShutdown y Plataforma :: :: InetLayer DidShutdown ganchos a efecto de limpieza de las personalizaciones específicas de la plataforma o extensiones de datos a InetLayer .

Detalles
Devoluciones
INET_NO_ERROR en el éxito; de lo contrario, un error específico que indica el motivo de la falla de apagado.

SystemLayer

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

Funciones 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
)