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

nl :: Inet :: IPEndPointBasis

#include <src/inet/IPEndPointBasis.h>

Los objetos de esta clase representan puntos finales de protocolo IP de los que no se pueden crear instancias.

Resumen

Herencia

Hereda de: nl :: :: Inet EndPointBasis
Subclases conocidas directas:
  nl :: Inet :: RawEndPoint
  nl :: Inet :: UDPEndPoint

Tipos públicos

@8 {
kState_Ready = kBasisState_Closed,
kState_Bound = 1,
kState_Listening = 2,
kState_Closed = 3
}
enumeración
Estado dinámico básico del punto final subyacente.
@9 {
kSendFlag_RetainBuffer = 0x0040
}
enumeración
Indicadores de opción de transmisión para la SendMsg método.
OnMessageReceivedFunct )(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de función de manejo de eventos de recepción de texto de mensaje.
OnReceiveErrorFunct )(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Tipo de función de manejo de eventos de error de recepción.

Atributos públicos

OnMessageReceived
Delegado de la función de manejo de eventos de recepción de mensajes del punto final.
OnReceiveError
Delegado de función de manejo de eventos de error de recepción del punto final.
mState
enum nl::Inet::IPEndPointBasis::@8
Estado dinámico básico del punto final subyacente.

Atributos protegidos

mBoundIntfId
InterfaceId

Funciones publicas

JoinMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress)
Únase a un grupo de multidifusión IP.
LeaveMulticastGroup (InterfaceId aInterfaceId, const IPAddress & aAddress)
Deja un grupo de multidifusión de IP.
SetMulticastLoopback (IPVersion aIPVersion, bool aLoopback)
Establezca si el tráfico de multidifusión IP debe retroceder.

Funciones protegidas

Bind (IPAddressType aAddressType, IPAddress aAddress, uint16_t aPort, InterfaceId aInterfaceId)
BindInterface (IPAddressType aAddressType, InterfaceId aInterfaceId)
GetSocket (IPAddressType aAddressType, int aType, int aProtocol)
HandleDataReceived ( Weave::System::PacketBuffer *aBuffer)
void
HandlePendingIO (uint16_t aPort)
void
Init ( InetLayer *aInetLayer)
void
PrepareIO (void)
SendMsg (const IPPacketInfo *aPktInfo, Weave::System::PacketBuffer *aBuffer, uint16_t aSendFlags)

Funciones estáticas públicas

FindNetifFromInterfaceId (InterfaceId aInterfaceId)
struct netif *

Funciones estáticas protegidas

GetPacketInfo ( Weave::System::PacketBuffer *buf)
Obtenga información de direccionamiento de origen y destino de la capa IP de LwIP.

Tipos públicos

@ 8

 @8

Estado dinámico básico del punto final subyacente.

Los objetos se inicializan en el estado "listo", pasan al estado "vinculado" después de vincularse a una dirección de interfaz local, luego pasan al estado "escuchando" cuando tienen continuaciones registradas para manejar eventos para la recepción de mensajes ICMP.

Nota: El kBasisState_Closed enumeración estado se asigna a kState_Ready por razones de compatibilidad binaria-históricos. El vigente kState_Closed existe para identificar por separado la distinción entre "no abierto todavía" y "abierto anteriormente ahora cerrado" que existía previamente en los kState_Ready y kState_Closed estados.

Propiedades
kState_Bound

Punto final vinculado, pero no escucha.

kState_Closed

Punto final cerrado, listo para su lanzamiento.

kState_Listening

Datagramas de recepción de punto final.

kState_Ready

Punto final inicializado, pero no abierto.

@ 9

 @9

Indicadores de opción de transmisión para la SendMsg método.

Propiedades
kSendFlag_RetainBuffer

No pongas el mensaje en cola de forma destructiva directamente.

Ponga una copia en cola.

OnMessageReceivedFunct

void(* OnMessageReceivedFunct)(IPEndPointBasis *endPoint, Weave::System::PacketBuffer *msg, const IPPacketInfo *pktInfo)

Tipo de función de manejo de eventos de recepción de texto de mensaje.

Proporcionar una función de este tipo a la OnMessageReceived miembro delegado al mensaje de proceso de recepción de eventos de texto en endPoint donde msg es el texto del mensaje recibido del remitente en senderAddr .

Detalles
Parámetros
[in] endPoint
El punto final asociado con el evento.
[in] msg
El mensaje de texto recibido.
[in] senderAddr
La dirección IP del remitente.

OnReceiveErrorFunct

void(* OnReceiveErrorFunct)(IPEndPointBasis *endPoint, INET_ERROR err, const IPPacketInfo *pktInfo)

Tipo de función de manejo de eventos de error de recepción.

Proporcionar una función de este tipo a la OnReceiveError miembro delegado a eventos de error de recepción proceso de endPoint . El err argumento proporciona detalles específicos del tipo de error.

Detalles
Parámetros
[in] endPoint
El punto final asociado con el evento.
[in] err
El motivo del error.

Atributos públicos

OnMessageReceived

OnMessageReceivedFunct OnMessageReceived

Delegado de función de manejo de eventos de recepción de mensajes del punto final.

OnReceiveError

OnReceiveErrorFunct OnReceiveError

Delegado de función de manejo de eventos de error de recepción del punto final.

mState

enum nl::Inet::IPEndPointBasis::@8 mState

Estado dinámico básico del punto final subyacente.

Los objetos se inicializan en el estado "listo", pasan al estado "vinculado" después de vincularse a una dirección de interfaz local, luego pasan al estado "escuchando" cuando tienen continuaciones registradas para manejar eventos para la recepción de mensajes ICMP.

Nota: El kBasisState_Closed enumeración estado se asigna a kState_Ready por razones de compatibilidad binaria-históricos. El vigente kState_Closed existe para identificar por separado la distinción entre "no abierto todavía" y "abierto anteriormente ahora cerrado" que existía previamente en los kState_Ready y kState_Closed estados.

Atributos protegidos

mBoundIntfId

InterfaceId mBoundIntfId

Funciones publicas

JoinMulticastGroup

INET_ERROR JoinMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Únase a un grupo de multidifusión IP.

Únase al punto final al grupo de multidifusión proporcionado en la interfaz especificada.

Detalles
Parámetros
[in] aInterfaceId
el indicador de la interfaz de red para agregar al grupo de multidifusión
[in] aAddress
el grupo de multidifusión para agregar la interfaz al
Valores devueltos
INET_NO_ERROR
éxito: grupo de multidifusión eliminado
INET_ERROR_UNKNOWN_INTERFACE
interfaz de red desconocido, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress no es kIPAddressType_IPv4 o kIPAddressType_IPv6 o no es de multidifusión
other
otro error de sistema o plataforma

LeaveMulticastGroup

INET_ERROR LeaveMulticastGroup(
  InterfaceId aInterfaceId,
  const IPAddress & aAddress
)

Deje un grupo de multidifusión de IP.

Elimine el punto final del grupo de multidifusión proporcionado en la interfaz especificada.

Detalles
Parámetros
[in] aInterfaceId
el indicador de la interfaz de red para eliminar del grupo de multidifusión
[in] aAddress
el grupo de multidifusión para eliminar la interfaz de
Valores devueltos
INET_NO_ERROR
éxito: grupo de multidifusión eliminado
INET_ERROR_UNKNOWN_INTERFACE
interfaz de red desconocido, aInterfaceId
INET_ERROR_WRONG_ADDRESS_TYPE
aAddress no es kIPAddressType_IPv4 o kIPAddressType_IPv6 o no es de multidifusión
other
otro error de sistema o plataforma

SetMulticastLoopback

INET_ERROR SetMulticastLoopback(
  IPVersion aIPVersion,
  bool aLoopback
)

Establezca si el tráfico de multidifusión IP debe retroceder.

Establezca si el tráfico de multidifusión IP debe volver a este punto final.

Detalles
Parámetros
[in] aIPVersion
[in] aLoop
Valores devueltos
INET_NO_ERROR
éxito: conjunto de comportamiento de bucle invertido de multidifusión
other
otro error de sistema o plataforma

Funciones protegidas

Unir

INET_ERROR Bind(
  IPAddressType aAddressType,
  IPAddress aAddress,
  uint16_t aPort,
  InterfaceId aInterfaceId
)

BindInterface

INET_ERROR BindInterface(
  IPAddressType aAddressType,
  InterfaceId aInterfaceId
)

GetSocket

INET_ERROR GetSocket(
  IPAddressType aAddressType,
  int aType,
  int aProtocol
)

HandleDataReceived

void HandleDataReceived(
  Weave::System::PacketBuffer *aBuffer
)

HandlePendingIO

void HandlePendingIO(
  uint16_t aPort
)

En eso

void Init(
  InetLayer *aInetLayer
)

PrepareIO

SocketEvents PrepareIO(
  void
)

SendMsg

INET_ERROR SendMsg(
  const IPPacketInfo *aPktInfo,
  Weave::System::PacketBuffer *aBuffer,
  uint16_t aSendFlags
)

Funciones estáticas públicas

FindNetifFromInterfaceId

struct netif * FindNetifFromInterfaceId(
  InterfaceId aInterfaceId
)

Funciones estáticas protegidas

GetPacketInfo

IPPacketInfo * GetPacketInfo(
  Weave::System::PacketBuffer *buf
)

Obtenga información de direccionamiento de origen y destino de la capa IP de LwIP.

Cuando se usa LwIP, la información sobre el paquete está 'oculta' en el espacio reservado antes del inicio de los datos en el búfer de paquetes. Esto es necesario porque los eventos de la capa del sistema solo tienen dos argumentos, que en este caso se utilizan para transportar el puntero al punto final y el puntero al búfer.

Detalles
Parámetros
[in] aBuffer
el búfer de paquetes que contiene el mensaje IP
Devoluciones
un puntero a la información de la dirección sobre el éxito; de lo contrario, NULL si no hay suficiente espacio en el paquete para la información de la dirección.

En la mayoría de los casos, este truco de almacenar información antes de que los datos funcione porque el primer búfer en un mensaje IP LwIP contiene el espacio que se utilizó para los encabezados Ethernet / IP / UDP. Sin embargo, dado el tamaño actual de la IPPacketInfo estructura (40 bytes), es posible que haya no ser suficiente espacio para almacenar la estructura junto con la carga útil en una única memoria intermedia de paquetes. En la práctica, esto solo debería suceder para paquetes IPv4 extremadamente grandes que llegan sin un encabezado Ethernet.