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

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

Constructores y destructores

WeaveMessageLayer(void)
Es 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 la capa superior para informar un error durante el manejo de una conexión TCP entrante.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Esta función se invoca para quitar una devolución de llamada.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Esta función es la devolución de llamada de la 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 el cambio de la actividad de la capa de mensajes.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Esta función es la devolución de llamada de la capa superior que se invoca al recibir un mensaje de Weave mediante UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Esta función es la devolución de llamada de la capa superior que se invoca cuando se encuentra un error.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Es el estado de WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Esta función es la devolución de llamada de la capa superior que se invoca cuando se recibe un paquete en túnel a través de un túnel UDP local.

Atributos públicos

AppState
void *
Es un puntero a un objeto de estado específico de la aplicación.
ExchangeMgr
[SOLO DE LECTURA] Es el objeto WeaveExchangeManager asociado.
FabricState
[SOLO LECTURA] El objeto WeaveFabricState asociado.
IncomingConIdleTimeout
uint32_t
Es el tiempo de espera de inactividad predeterminado (en milisegundos) para las conexiones entrantes.
Inet
InetLayer *
[SOLO LECTURA] El objeto InetLayer asociado.
IsListening
bool
[READ ONLY] Es verdadero si se detectan conexiones o mensajes entrantes. De lo contrario, es falso.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[SOLO LECTURA] El objeto WeaveSecurityManager asociado.
State
uint8_t
[SOLO DE LECTURA] Es el estado del objeto WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Es interno y solo para depuración. Cuando se establece, WeaveMessageLayer descarta el mensaje y muestra un mensaje de error.

Funciones públicas

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Cierra todos los extremos TCP y UDP abiertos.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Crea un WeaveConnectionTunnel a través del acoplamiento de dos WeaveConnections especificados.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica un encabezado de la capa de mensajes de Weave de un mensaje de Weave recibido.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Encodificación de 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 de UDP de Weave iniciados de forma local deben enviarse 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 WeaveMessageLayer está configurado para escuchar las comunicaciones entrantes a través de IPv4.
IPv6ListenEnabled(void) const
bool
Verifica si WeaveMessageLayer está configurado para escuchar las comunicaciones entrantes a través de IPv4.
Init(InitContext *context)
Inicializa el objeto de la capa de mensajes de Weave.
IsBoundToLocalIPv4Address(void) const
bool
Comprueba si WeaveMessageLayer está vinculada a una dirección IPv4 local.
IsBoundToLocalIPv6Address(void) const
bool
Comprueba 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 Weave codificado con el extremo UDP subyacente de Inetlayer.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje Weave codificado con el extremo UDP subyacente de Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje Weave codificado con el extremo UDP subyacente de Inetlayer.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Vuelve a enviar un mensaje Weave codificado con el extremo UDP subyacente de Inetlayer.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envía un mensaje de Weave con el extremo UDP subyacente de Inetlayer después de codificarlo.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Enviar un mensaje de Weave con el extremo UDP subyacente de Inetlayer después de codificarlo
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Enviar un mensaje de Weave con el extremo UDP subyacente de Inetlayer después de codificarlo
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Función para enviar un paquete túnel a través de un túnel UDP local.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Establece 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 detección de conexiones TCP entrantes en WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Habilita o inhabilita la detección 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 escuchar conexiones TCP entrantes.
UDPListenEnabled(void) const
bool
Verifica si WeaveMessageLayer está configurado para escuchar mensajes UDP entrantes.
UnsecuredListenEnabled(void) const
bool
Habilita o inhabilita el inicio de intercambios de 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
Obtén el tamaño máximo de la carga útil de Weave para una configuración de mensaje 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 cadena que describe un nodo par y su información de dirección o conexión asociada.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Construye una cadena que describe un nodo de par según 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

AcceptErrorFunct

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

Esta función es la devolución de llamada de la 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
Se produjo un WEAVE_ERROR cuando se controlaba una conexión TCP entrante.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Esta función se invoca para quitar una devolución de llamada.

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

ConnectionReceiveFunct

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

Esta función es la devolución de llamada de la 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 el cambio de actividad de la capa de mensajes.

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

Detalles
Parámetros
[in] messageLayerIsActive
Es un valor booleano que indica si la capa de mensajes está activa o no.

MessageReceiveFunct

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

Esta función es la devolución de llamada de la capa superior que se invoca cuando se recibe 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
Puntero al mensaje de PacketBuffer que contiene el paquete tunelizado recibido.

ReceiveErrorFunct

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

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

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] err
Se detectó el error WEAVE_ERROR al recibir datos.
[in] pktInfo
Es un puntero de solo lectura al objeto IPPacketInfo.

Estado

 State

El estado de WeaveMessageLayer.

Propiedades
kState_Initialized

Indica el estado cuando se inicializa WeaveMessageLayer.

kState_Initializing

Indica cuándo WeaveMessageLayer está en proceso de inicialización.

kState_NotInitialized

Estado cuando no se inicializa WeaveMessageLayer.

TunneledMsgReceiveFunct

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

Esta función es la devolución de llamada de la capa superior que se invoca cuando se recibe un paquete en túnel a través de un túnel UDP local.

Detalles
Parámetros
[in] msgLayer
Un puntero al objeto WeaveMessageLayer.
[in] payload
Es un puntero al mensaje de PackageBuffer que contiene un paquete tunelizado recibido.

Atributos públicos

AppState

void * AppState

Es un puntero a un objeto de estado específico de la aplicación.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO DE LECTURA] Es el objeto WeaveExchangeManager asociado.

FabricState

WeaveFabricState * FabricState

[SOLO LECTURA] El objeto WeaveFabricState asociado.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Es el tiempo de espera de inactividad predeterminado (en milisegundos) para las conexiones entrantes.

Inet

InetLayer * Inet

[SOLO DE LECTURA] Es el objeto InetLayer asociado.

IsListening

bool IsListening

[SOLO DE LECTURA] Es verdadero si está escuchando conexiones o mensajes entrantes; de lo contrario, es falso.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[SOLO DE LECTURA] El objeto WeaveSecurityManager asociado.

Estado

uint8_t State

[SOLO LECTURA] El estado del objeto WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Es interno y solo para depuración. Cuando se establece, WeaveMessageLayer descarta el mensaje y muestra un mensaje de error.

Funciones públicas

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Cierra todos los extremos TCP y UDP abiertos.

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

Consulta también:
Shutdown().

CreateTunnel

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

Para crear un WeaveConnectionTunnel, combina dos WeaveConnections especificados.

Cuando se crea correctamente, los TCPEndPoints correspondientes a los objetos WeaveConnection del componente se entregan a WeaveConnectionTunnel. De lo contrario, se cierran las WeaveConnections.

Detalles
Parámetros
[out] tunPtr
Un puntero al puntero de un objeto WeaveConnectionTunnel.
[in] conOne
Una referencia al primer objeto WeaveConnection.
[in] conTwo
Es una referencia al segundo objeto WeaveConnection.
[in] inactivityTimeoutMS
Es el tiempo máximo en milisegundos que el túnel de conexión de Weave puede 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 están en el estado correcto.
WEAVE_ERROR_NO_MEMORY
si no se puede crear un objeto WeaveConnectionTunnel nuevo.

DecodeHeader

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

Decodifica un encabezado de capa de mensaje de Weave a partir de un mensaje de Weave recibido.

Detalles
Parámetros
[in] msgBuf
Un puntero al objeto PacketBuffer que contiene el mensaje de Weave.
[in] msgInfo
Es un puntero a un objeto WeaveMessageInfo que recibirá información sobre el mensaje.
[out] payloadStart
Es un puntero a 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 del mensaje que se pasó tiene una longitud no válida.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Si la versión del formato de encabezado de mensaje de Weave no es compatible.

EncodeMessage

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

Encodificación de un encabezado WeaveMessageLayer en un PacketBuffer

Detalles
Parámetros
[in] msgInfo
Es un puntero a un objeto WeaveMessageInfo que contiene información sobre el mensaje que se codificará.
[in] msgBuf
Un puntero al objeto PacketBuffer que contendrá el mensaje de Weave.
[in] con
Un puntero al objeto WeaveConnection.
[in] maxLen
Es la longitud máxima del mensaje Weave codificado.
[in] reserve
Es el espacio reservado antes de la carga útil para contener el encabezado del mensaje de Weave.
Valores de retorno
WEAVE_NO_ERROR
cuando se codifica correctamente el mensaje.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la versión del formato de encabezado de mensaje de Weave no es compatible.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longitud de 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 fuera más largo 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 de estado de Fabric cuando se recupera 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
Es el puerto de destino.
[in] sendIntId
Es la interfaz en la que se envía el mensaje de Weave.
[in] msgInfo
Un puntero a un objeto WeaveMessageInfo.
[in] payload
Un puntero al objeto PacketBuffer que contendrá el mensaje de Weave.
Valores de retorno
WEAVE_NO_ERROR
cuando se codifica correctamente el mensaje de Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
si la versión de Weave Message no es compatible.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
si la longitud de 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 fuera más largo 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 de estado de la estructura cuando se recupera el estado de la sesión.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Verifica si los intercambios de UDP de Weave iniciados de forma local deben enviarse 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
Es una referencia a size_t, en la que se almacena la cantidad de conexiones en uso.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Verifica si WeaveMessageLayer está configurado para escuchar las comunicaciones entrantes a través de IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Verifica si WeaveMessageLayer está configurado para escuchar las comunicaciones entrantes a través de IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inicializa el objeto de la capa de mensajes de Weave.

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

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

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

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

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

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Crea un objeto WeaveConnection nuevo a partir de un grupo.

Detalles
Resultado que se muestra
Un puntero al objeto WeaveConnection recién creado si se realiza correctamente, de lo contrario, NULO

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crea un objeto WeaveConnectionTunnel nuevo a partir de un grupo.

Detalles
Resultado que se muestra
Un puntero al objeto WeaveConnectionTunnel recién creado si se realiza correctamente, de lo contrario, NULO

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Actualiza los extremos de InetLayer según el estado actual de las interfaces de red del sistema.

Detalles
Valores de retorno
WEAVE_NO_ERROR
en la actualización correcta de los extremos.
InetLayer
errores basados en llamadas para crear extremos TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

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

ResendMessage

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

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

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 Weave codificado.
Valores de retorno
WEAVE_NO_ERROR
cuando se envía correctamente el mensaje a la capa de red.
errors
se genera desde el extremo UDP de la capa inferior de Inet durante el envío.

ResendMessage

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

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

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

ResendMessage

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

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

Nota: Si no se proporcionó la dirección de destino, intenta determinarla a partir del identificador de nodo en el encabezado del mensaje. Fallará si no se puede hacer. -Si la dirección de destino es una dirección de la fábrica para la fábrica local y el llamador no especificó el ID del nodo de destino, extrájalo de la dirección de destino.

Detalles
Parámetros
[in] aDestAddr
La dirección IP de destino.
[in] destPort
Es 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 Weave codificado.
Valores de retorno
WEAVE_NO_ERROR
cuando se envía correctamente el mensaje a la capa de red.
errors
generados desde el extremo UDP inferior de la capa de Inet durante el envío.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

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

SendMessage

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

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

Nota: El puerto de destino que se usa 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. Falla si no se puede hacer.

-Si la dirección de destino es una dirección de la fábrica para la fábrica local y el llamador no especificó el ID del nodo de destino, extrájalo de la dirección de destino.

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

SendMessage

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

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

Nota:- Si no se suministró la dirección de destino, intenta determinarla a partir del identificador de nodo en el encabezado del mensaje. Falla si no se puede hacer. -Si la dirección de destino es una dirección de la fábrica para la fábrica local y el llamador no especificó el ID del nodo de destino, extrájalo de la dirección de destino.

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

SendUDPTunneledMessage

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

Función para enviar un paquete 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 a un objeto WeaveMessageInfo.
[in] destAddr
Es la 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
para enviar correctamente el mensaje a la capa de red.
WEAVE_ERROR_INVALID_ADDRESS
si no se especifica destAddr o no se puede determinar a partir del ID del nodo de destino.
errors
generados desde el extremo UDP inferior de la capa de Inet 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 ocurra lo siguiente:

  • cambia la cantidad de intercambios abiertos.
  • la cantidad de solicitudes de sincronización de contadores de mensajes pendientes cambia de cero a al menos uno y vuelve a cero. El controlador se entrega como indicador general que indica si hay conversaciones de Weave en curso o respuestas pendientes. El controlador se debe establecer después de que se haya inicializado WeaveMessageLayer. Si se cierra WeaveMessageLayer, se borrará el controlador actual.

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

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Habilita o inhabilita la detección de conexiones TCP entrantes en WeaveMessageLayer.

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Habilita o inhabilita la detección de mensajes UDP entrantes en WeaveMessageLayer.

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

SetUnsecuredConnectionListener

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

Cierre

WEAVE_ERROR Shutdown(
  void
)

Apaga WeaveMessageLayer.

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

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

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

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Verifica si WeaveMessageLayer está configurada para escuchar mensajes UDP entrantes.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Habilita o inhabilita el inicio de intercambios de 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.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Constructor de capas de mensajes de Weave.

Funciones estáticas públicas

GetMaxWeavePayloadSize

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

Obtén el tamaño máximo de la carga útil de Weave para una configuración de mensaje 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 carga útil que se muestra no generará un mensaje de Weave que no supere la MTU de UDP especificada.

Por último, el tamaño máximo de la carga útil que se muestra no generará un mensaje de Weave que supere el tamaño máximo de mensaje de Weave.

Detalles
Parámetros
[in] msgBuf
Es un puntero al PacketBuffer al que se escribirá la carga útil del mensaje.
[in] isUDP
Es verdadero si el mensaje es un mensaje UDP.
[in] udpMTU
Es el tamaño de la MTU de UDP. Se ignora si isUDP es falso.
Resultado que se 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 cadena que describe un nodo par y su información de dirección o conexión asociada.

La cadena generada tiene el siguiente formato:

 ([]:%, con )

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

GetPeerDescription

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

Crea una cadena que describe un nodo de intercambio de tráfico en función de la información asociada con un mensaje recibido del intercambio de tráfico.

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