nl::Weave::WeaveMessageLayer

#include <src/lib/core/WeaveMessageLayer.h>

La definición de la clase WeaveMessageLayer, que administra la comunicación con otros nodos de Weave.

Resumen

Utiliza uno de varios extremos de InetLayer para establecer un canal de comunicación con otros nodos de Weave.

Constructores y destructores

WeaveMessageLayer(void)
El constructor de la capa de mensajes de Weave

Tipos públicos

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Esta función es la devolución de llamada de capa superior para informar un error durante el manejo de una conexión TCP entrante.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Se invoca esta función para quitar una devolución de llamada.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Esta función es la devolución de llamada de capa superior para controlar una conexión TCP entrante.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Esta función es la devolución de llamada de la aplicación para informar sobre el cambio en la actividad de la capa del mensaje.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Esta función es la devolución de llamada de capa superior que se invoca al recibir un mensaje de Weave a través de UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Esta función es la devolución de llamada de capa superior que se invoca cuando se encuentra un error.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
Enum
El estado del WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Esta función es la devolución de llamada de capa más alta que se invoca al recibir un paquete de túnel en un túnel UDP local.

Atributos públicos

AppState
void *
Un puntero para un objeto de estado específico de la aplicación.
ExchangeMgr
[READ ONLY] El objeto WeaveExchangeManager asociado.
FabricState
[READ ONLY] El objeto WeaveFabricState asociado.
IncomingConIdleTimeout
uint32_t
Tiempo de espera de inactividad predeterminado (en milisegundos) para las conexiones entrantes.
Inet
InetLayer *
[READ ONLY] El objeto InetLayer asociado.
IsListening
bool
[READ ONLY] Verdadero si se detectan mensajes o conexiones entrantes; de lo contrario, se establece como Falso.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] El objeto WeaveSecurityManager asociado.
State
uint8_t
[READ ONLY] El estado del objeto WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Interno y solo para depuración; cuando se establece, WeaveMessageLayer descarta el mensaje y lo muestra.

Funciones públicas

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Cierra todos los extremos abiertos de TCP y UDP.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Crea un WeaveConnectionTunnel mediante la vinculación de dos WeaveConnections especificadas.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica un encabezado de capa de mensajes de Weave de un mensaje de Weave recibido.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Codifica un encabezado WeaveMessageLayer en un PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Codifica un encabezado de capa de mensaje de Weave en un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Verifica si los intercambios UDP de Weave iniciados de forma local se deben enviar desde un puerto de origen UDP efímero.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Obtén la cantidad de WeaveConnections en uso y el tamaño del grupo.
IPv4ListenEnabled(void) const
bool
Verifica si la WeaveMessageLayer está configurada para detectar las comunicaciones entrantes a través de IPv4.
IPv6ListenEnabled(void) const
bool
Verifica si la WeaveMessageLayer está configurada para detectar las comunicaciones entrantes a través de IPv4.
Init(InitContext *context)
Inicializa el objeto de la capa de mensaje de Weave.
IsBoundToLocalIPv4Address(void) const
bool
Verifica si WeaveMessageLayer está vinculada a una dirección IPv4 local.
IsBoundToLocalIPv6Address(void) const
bool
Verifica si WeaveMessageLayer está vinculada a una dirección IPv6 local.
IsMessageLayerActive(void)
bool
NewConnection(void)
Crea un objeto WeaveConnection nuevo a partir de un grupo.
NewConnectionTunnel(void)
Crea un objeto WeaveConnectionTunnel nuevo a partir de un grupo.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Actualiza los extremos de InetLayer en función del estado actual de las interfaces de red del sistema.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Función para enviar un paquete de túnel a través de un túnel UDP local.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Configura un controlador de aplicaciones al que se llamará cada vez que cambie la actividad de la capa de mensajes.
SetTCPListenEnabled(bool val)
void
Habilita o inhabilita la escucha de conexiones TCP entrantes en WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Habilita o inhabilita la escucha de mensajes UDP entrantes en WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Verifica si WeaveMessageLayer está configurado para detectar conexiones TCP entrantes.
UDPListenEnabled(void) const
bool
Verifica si WeaveMessageLayer está configurado para detectar mensajes UDP entrantes.
UnsecuredListenEnabled(void) const
bool
Habilita o inhabilita el inicio de intercambios UDP de Weave desde un puerto de origen UDP efímero.

Funciones estáticas públicas

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Obtiene el tamaño máximo de la carga útil de Weave para una configuración de mensajes y el PacketBuffer proporcionado.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Construye una string que describe un nodo de par y la dirección o información de conexión asociada.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Construye una string que describe un nodo de par en función de la información asociada con un mensaje recibido del par.

Clases

nl::Weave::WeaveMessageLayer::InitContext

La definición de la clase InitContext.

Tipos públicos

AceptarErrorError

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

Esta función es la devolución de llamada de capa superior para informar un error durante el manejo de una conexión TCP entrante.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] err
El WEAVE_ERROR encontrado al controlar una conexión TCP entrante.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Se invoca esta función para quitar una devolución de llamada.

Detalles
Parámetros
[in] listenerState
Un puntero al objeto de estado de la aplicación.

FunciónFundRecepción

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

Esta función es la devolución de llamada de capa superior para controlar una conexión TCP entrante.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] con
Un puntero al objeto WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Esta función es la devolución de llamada de la aplicación para informar sobre el cambio en la actividad de la capa del mensaje.

La capa de mensajes se considera activa si hay al menos una solicitud de sincronización de mensajes abierta o de intercambio de mensajes pendiente.

Detalles
Parámetros
[in] messageLayerIsActive
Un valor booleano que indica si la capa del mensaje está activa o no.

MensajeRecibirFunción

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

Esta función es la devolución de llamada de capa superior que se invoca al recibir un mensaje de Weave a través de UDP.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] payload
Es un puntero al mensaje PacketBuffer que contiene el paquete de túnel recibido.

Recibir error

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Esta función es la devolución de llamada de capa superior que se invoca cuando se encuentra un error.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] err
El WEAVE_ERROR encontrado al recibir datos.
[in] pktInfo
Un puntero de solo lectura para el objeto IPPacketInfo.

State

 State

El estado del WeaveMessageLayer.

Propiedades
kState_Initialized

Es el estado en el que se inicializa WeaveMessageLayer.

kState_Initializing

Es el estado en el que el WeaveMessageLayer está en proceso de inicialización.

kState_NotInitialized

Es el estado en el que no se inicializa WeaveMessageLayer.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

Esta función es la devolución de llamada de capa más alta que se invoca al recibir un paquete de túnel en un túnel UDP local.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] payload
Es un puntero al mensaje PacketBuffer que contiene el paquete de túnel recibido.

Atributos públicos

Estado de la aplicación

void * AppState

Un puntero para un objeto de estado específico de la aplicación.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] El objeto WeaveExchangeManager asociado.

Estado de Fabric

WeaveFabricState * FabricState

[READ ONLY] El objeto WeaveFabricState asociado.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Tiempo de espera de inactividad predeterminado (en milisegundos) para las conexiones entrantes.

Inet

InetLayer * Inet

[READ ONLY] El objeto InetLayer asociado.

Está escuchando

bool IsListening

[READ ONLY] Verdadero si se detectan mensajes o conexiones entrantes; de lo contrario, se establece como Falso.

Error de OnAccept

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

Error de OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

Administrador de seguridad

WeaveSecurityManager * SecurityMgr

[READ ONLY] El objeto WeaveSecurityManager asociado.

State

uint8_t State

[READ ONLY] El estado del objeto WeaveMessageLayer.

CapaSistema

System::Layer * SystemLayer

Mensaje de destino

bool mDropMessage

Interno y solo para depuración; cuando se establece, WeaveMessageLayer descarta el mensaje y lo muestra.

Funciones públicas

ClearUnsecureConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

Cerrar extremos

WEAVE_ERROR CloseEndpoints(
  void
)

Cierra todos los extremos abiertos de TCP y UDP.

Luego, anula cualquier WeaveConnections abierto y cierra los objetos WeaveConnectionTunnel abiertos.

Consulta también:
Apagar().

CreateTunnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

Crea un WeaveConnectionTunnel mediante la vinculación de dos WeaveConnections especificadas.

Si se crea correctamente, los TCPEndPoints correspondientes al componente WeaveConnection se entregan al WeaveConnectionTunnel; de lo contrario, las WeaveConnections se cierran.

Detalles
Parámetros
[out] tunPtr
Un puntero para un puntero de un objeto WeaveConnectionTunnel.
[in] conOne
Una referencia al primer objeto WeaveConnection.
[in] conTwo
Una referencia al segundo objeto WeaveConnection.
[in] inactivityTimeoutMS
El tiempo máximo en milisegundos que el túnel de conexión de Weave podría estar inactivo.
Valores de retorno
WEAVE_NO_ERROR
en la creación exitosa de WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
si los objetos WeaveConnection del componente WeaveConnectionTunnel no tienen el estado correcto.
WEAVE_ERROR_NO_MEMORY
si no se puede crear un objeto WeaveConnectionTunnel nuevo.

Encabezado de decodificación

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Decodifica un encabezado de capa de mensajes de Weave de un mensaje de Weave recibido.

Detalles
Parámetros
[in] msgBuf
Un puntero al objeto PacketBuffer que contiene el mensaje de Weave.
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo que recibirá información sobre el mensaje.
[out] payloadStart
Un puntero para un puntero a la posición en el búfer de mensajes después de que se completa la decodificación.
Valores de retorno
WEAVE_NO_ERROR
Cuando se decodifica correctamente el encabezado del mensaje.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Si el búfer de mensajes pasado tiene una longitud no válida.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Si no se admite la versión de formato del encabezado de mensajes de Weave.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Codifica un encabezado WeaveMessageLayer en un PacketBuffer.

Detalles
Parámetros
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo que contiene información sobre el mensaje que se codificará.
[in] msgBuf
Un puntero al objeto PacketBuffer que retendría el mensaje Weave.
[in] con
Un puntero al objeto WeaveConnection.
[in] maxLen
La longitud máxima del mensaje de Weave codificado.
[in] reserve
El espacio reservado antes de la carga útil para contener el encabezado del mensaje de Weave.
Valores de retorno
WEAVE_NO_ERROR
si la codificación del mensaje es correcta.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si no se admite la versión de formato del encabezado de mensajes de Weave.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la carga útil en el búfer de mensajes es cero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
si el tipo de encriptación en el encabezado del mensaje no es compatible.
WEAVE_ERROR_MESSAGE_TOO_LONG
si el mensaje codificado sería mayor que el máximo solicitado.
WEAVE_ERROR_BUFFER_TOO_SMALL
si no hay suficiente espacio antes o después de la carga útil del mensaje.
other
errores generados por el objeto estado del tejido al recuperar el estado de la sesión.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Codifica un encabezado de capa de mensaje de Weave en un PacketBuffer.

Detalles
Parámetros
[in] destAddr
La dirección IP de destino.
[in] destPort
El puerto de destino.
[in] sendIntId
La interfaz en la que se envía el mensaje de Weave.
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que retendría el mensaje Weave.
Valores de retorno
WEAVE_NO_ERROR
si se codifica correctamente el mensaje de Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la versión de mensaje de Weave no es compatible.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la carga útil en el búfer de mensajes es cero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
si el tipo de encriptación no es compatible.
WEAVE_ERROR_MESSAGE_TOO_LONG
si el mensaje codificado sería mayor que el máximo solicitado.
WEAVE_ERROR_BUFFER_TOO_SMALL
si no hay suficiente espacio antes o después de la carga útil del mensaje.
other
errores generados por el objeto estado del tejido al recuperar el estado de la sesión.

PuertoPuertoEfímeraUDPHabilitado

bool EphemeralUDPPortEnabled(
  void
) const 

Verifica si los intercambios UDP de Weave iniciados de forma local se deben enviar desde un puerto de origen UDP efímero.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

Obtén la cantidad de WeaveConnections en uso y el tamaño del grupo.

Detalles
Parámetros
[out] aOutInUse
Referencia a size_t, en la que se almacena la cantidad de conexiones en uso.

IPv4Escucha habilitada

bool IPv4ListenEnabled(
  void
) const 

Verifica si la WeaveMessageLayer está configurada para detectar las comunicaciones entrantes a través de IPv4.

IPv6Escucha habilitada

bool IPv6ListenEnabled(
  void
) const 

Verifica si la WeaveMessageLayer está configurada para detectar las comunicaciones entrantes a través de IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inicializa el objeto de la capa de mensaje de Weave.

Detalles
Parámetros
[in] context
Un puntero para el objeto InitContext.
Valores de retorno
WEAVE_NO_ERROR
en la inicialización exitosa.
WEAVE_ERROR_INVALID_ARGUMENT
si el objeto InitContext pasado es NULL.
WEAVE_ERROR_INCORRECT_STATE
si el estado del objeto WeaveMessageLayer es incorrecto.
other
errores generados desde la capa Inet inferior durante la creación del extremo.

IsBoundToLocalIPv4Dirección

bool IsBoundToLocalIPv4Address(
  void
) const 

Verifica si WeaveMessageLayer está vinculada a una dirección IPv4 local.

IsBoundToLocalIPv6Dirección

bool IsBoundToLocalIPv6Address(
  void
) const 

Verifica si WeaveMessageLayer está vinculada a una dirección IPv6 local.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

Nueva conexión

WeaveConnection * NewConnection(
  void
)

Crea un objeto WeaveConnection nuevo a partir de un grupo.

Detalles
Qué muestra
un puntero al objeto WeaveConnection recién creado si tiene éxito; de lo contrario, es NULL

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crea un objeto WeaveConnectionTunnel nuevo a partir de un grupo.

Detalles
Qué muestra
un puntero al objeto WeaveConnectionTunnel recién creado si es correcto; de lo contrario, es NULL

Volver a codificar

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

Actualizar Endpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Actualiza los extremos de InetLayer en función del estado actual de las interfaces de red del sistema.

Detalles
Valores de retorno
WEAVE_NO_ERROR
para actualizar correctamente los extremos.
InetLayer
según las llamadas para crear extremos TCP/UDP.

Reenviar mensaje

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.

Detalles
Parámetros
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Reenviar mensaje

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.

Detalles
Parámetros
[in] destAddr
La dirección IP de destino.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Reenviar mensaje

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.

Detalles
Parámetros
[in] destAddr
La dirección IP de destino.
[in] destPort
El puerto de destino.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Reenviar mensaje

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Vuelve a enviar un mensaje de Weave codificado con el extremo UDP subyacente subyacente.

Nota: Si no se proporcionó la dirección de destino, intenta determinarla a partir del identificador de nodo en el encabezado del mensaje. Si esto no se puede hacer, fracasa. - Si la dirección de destino es una dirección de tela para la estructura local y el emisor no especificó el ID de nodo de destino, extráelo de la dirección de destino.

Detalles
Parámetros
[in] aDestAddr
La dirección IP de destino.
[in] destPort
El puerto de destino.
[in] interfaceId
La interfaz en la que se envía el mensaje de Weave.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Enviar mensaje

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.

Detalles
Parámetros
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo que contiene información sobre el mensaje que se enviará.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Enviar mensaje

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.

Nota: El puerto de destino utilizado es WEAVE_PORT. - Si no se proporcionó la dirección de destino, intenta determinarla a partir del identificador de nodo en el encabezado del mensaje. Si esto no se puede hacer, fracasa.

- Si la dirección de destino es una dirección de tela para la estructura local y el emisor no especificó el ID de nodo de destino, extráelo de la dirección de destino.

Detalles
Parámetros
[in] destAddr
La dirección IP de destino.
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo que contiene información sobre el mensaje que se enviará.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

Enviar mensaje

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envía un mensaje de Weave mediante el extremo UDP de Inetlayer subyacente después de codificarlo.

Nota: Si no se proporcionó la dirección de destino, intenta determinarla a partir del identificador de nodo en el encabezado del mensaje. Si esto no se puede hacer, fracasa. - Si la dirección de destino es una dirección de tela para la estructura local y el emisor no especificó el ID de nodo de destino, extráelo de la dirección de destino.

Detalles
Parámetros
[in] aDestAddr
La dirección IP de destino.
[in] destPort
El puerto de destino.
[in] sendIntfId
La interfaz en la que se envía el mensaje de Weave.
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo que contiene información sobre el mensaje que se enviará.
[in] payload
Un puntero al objeto PacketBuffer que contiene el mensaje codificado en Weave.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
WEAVE_ERROR_INVALID_ADDRESS
si el destAddr no se especifica o no se puede determinar desde el ID del nodo de destino.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Función para enviar un paquete de túnel a través de un túnel UDP local.

Envía un mensaje de datos IPv6 en túnel a través de UDP.

Detalles
Parámetros
[in] msgInfo
Un puntero para un objeto WeaveMessageInfo.
[in] destAddr
Dirección IP del destino del túnel UDP.
[in] msgBuf
Un puntero al objeto PacketBuffer que contiene el paquete que se enviará.
Valores de retorno
WEAVE_NO_ERROR
al enviar correctamente el mensaje a la capa de red.
WEAVE_ERROR_INVALID_ADDRESS
si el destAddr no se especifica o no se puede determinar desde el ID del nodo de destino.
errors
generado desde el extremo UDP de la capa Inet inferior durante el envío.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Configura un controlador de aplicaciones al que se llamará cada vez que cambie la actividad de la capa de mensajes.

Específicamente, la aplicación recibirá una notificación cada vez que se cumpla lo siguiente:

  • la cantidad de cambios abiertos.
  • el número de solicitudes de sincronización de contador de mensajes pendientes cambia de cero a, por lo menos, uno y nuevamente a cero. El controlador se entrega como un indicador general que indica si hay conversaciones de Weave en curso o respuestas pendientes. El controlador debe configurarse después de inicializar WeaveMessageLayer; si cierras WeaveMessageLayer, se borrará el controlador actual.

Detalles
Parámetros
[in] messageLayerActivityChangeHandler
Un puntero para una función que se llamará cada vez que cambie la actividad de la capa de mensajes.
Valores de retorno
None.

SetTCPListenerEnabled

void SetTCPListenEnabled(
  bool val
)

Habilita o inhabilita la escucha de conexiones TCP entrantes en WeaveMessageLayer.

NOTA: Se debe llamar a RefreshEndpoints() después de cambiar el estado de escucha de TCP.

SetUDPListenerEnabled

void SetUDPListenEnabled(
  bool val
)

Habilita o inhabilita la escucha de mensajes UDP entrantes en WeaveMessageLayer.

NOTA: Se debe llamar a RefreshEndpoints() después de que se cambie el estado de escucha de UDP.

SetUnsecureConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Cierre

WEAVE_ERROR Shutdown(
  void
)

Cierra WeaveMessageLayer.

Cierra todos los extremos abiertos de la capa Inet, restablece todas las devoluciones de llamada de la capa superior, las variables de miembro y los objetos. Una llamada a Shutdown() finaliza el objeto WeaveMessageLayer.

TCPListenerHabilitado

bool TCPListenEnabled(
  void
) const 

Verifica si WeaveMessageLayer está configurado para detectar conexiones TCP entrantes.

UDPListenerEnabled

bool UDPListenEnabled(
  void
) const 

Verifica si WeaveMessageLayer está configurado para detectar mensajes UDP entrantes.

UnsecureListenerEnabled

bool UnsecuredListenEnabled(
  void
) const 

Habilita o inhabilita el inicio de intercambios UDP de Weave desde un puerto de origen UDP efímero.

NOTA: Se debe llamar a RefreshEndpoints() después de que se cambie el estado del puerto efímero. Verifica si la escucha no segura está habilitada.

CapaDeMensajeDeWeave

 WeaveMessageLayer(
  void
)

El constructor de la capa de mensajes de Weave

Funciones estáticas públicas

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

Obtiene el tamaño máximo de la carga útil de Weave para una configuración de mensajes y el PacketBuffer proporcionado.

El tamaño máximo de la carga útil que se muestra no superará el espacio disponible para una carga útil dentro del PacketBuffer proporcionado.

Si el mensaje es UDP, el tamaño máximo de la carga útil mostrado no dará como resultado un mensaje de Weave que no desborde la MTU de UDP especificada.

Por último, el tamaño máximo de la carga útil que se muestra no dará como resultado un mensaje de Weave que sobrepasará el tamaño máximo del mensaje de Weave.

Detalles
Parámetros
[in] msgBuf
Un puntero para el PacketBuffer en el que se escribirá la carga útil del mensaje.
[in] isUDP
Verdadero si el mensaje es un mensaje UDP.
[in] udpMTU
El tamaño de la MTU de UDP. Se ignora si isUDP es falso.
Qué muestra
el tamaño máximo de la carga útil de Weave.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

Construye una string que describe un nodo de par y la dirección o información de conexión asociada.

La string generada tiene el siguiente formato:

 ([]:%, con )

Detalles
Parámetros
[in] buf
Un puntero para un búfer en el que se debe escribir la string. El búfer proporcionado debe ser al menos tan grande como kWeavePeerDescription_MaxLength. Si se proporciona un búfer más pequeño, la string se truncará para que quepa. El resultado incluirá un carácter de terminación NUL en todos los casos.
[in] bufSize
El tamaño del búfer al que apunta buf.
[in] nodeId
El ID del nodo que se imprimirá.
[in] addr
Un puntero para una dirección IP que se imprimirá, o NULO si no se debe imprimir una.
[in] port
Un número de puerto IP que se imprimirá. No se imprimirá ningún número de puerto si el agregador es NULO.
[in] interfaceId
Un InterfaceId que identifica la interfaz que se imprimirá. La string de salida contendrá el nombre de la interfaz conocido por la pila de red subyacente. No se imprimirá ningún nombre de interfaz si interfaceId es INET_NULL_INTERFACEID o si addr es NULO.
[in] con
Un puntero para un objeto WeaveConnection cuyo ID de registro se debe imprimir o NULL si no se debe imprimir un ID de conexión.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

Construye una string que describe un nodo de par en función de la información asociada con un mensaje recibido del par.

Detalles
Parámetros
[in] buf
Un puntero para un búfer en el que se debe escribir la string. El búfer proporcionado debe ser al menos tan grande como kWeavePeerDescription_MaxLength. Si se proporciona un búfer más pequeño, la string se truncará para que quepa. El resultado incluirá un carácter de terminación NUL en todos los casos.
[in] bufSize
El tamaño del búfer al que apunta buf.
[in] msgInfo
Un puntero para una estructura WeaveMessageInfo que contiene información sobre el mensaje.