nl::Weave::ExchangeContext

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

Esta clase representa una conversación continua (ExchangeContext) entre dos o más nodos.

Resumen

Este define los métodos para codificar y comunicar mensajes de Weave dentro de un ExchangeContext a través de varios mecanismos de transporte, como TCP, UDP o Weave Reliable Messaging.

Tipos públicos

@34{
  kSendFlag_AutoRetrans = 0x0001,
  kSendFlag_ExpectResponse = 0x0002,
  kSendFlag_RetransmissionTrickle = 0x0004,
  kSendFlag_DelaySend = 0x0008,
  kSendFlag_ReuseMessageId = 0x0010,
  kSendFlag_ReuseSourceId = 0x0020,
  kSendFlag_RetainBuffer = 0x0040,
  kSendFlag_AlreadyEncoded = 0x0080,
  kSendFlag_DefaultMulticastSourceAddress = 0x0100,
  kSendFlag_FromInitiator = 0x0200,
  kSendFlag_RequestAck = 0x0400,
  kSendFlag_NoAutoRequestAck = 0x0800,
  kSendFlag_MulticastFromLinkLocal = kSendFlag_DefaultMulticastSourceAddress
}
enum
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando se cierra una conexión de Weave existente.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo de función de administración de mensajes de error clave.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Esta función es la devolución de llamada de la aplicación para controlar un mensaje de Weave recibido.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando venció el tiempo de espera para la recepción de un mensaje de respuesta.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando caducó el tiempo de espera para la retransmisión de un mensaje enviado con anterioridad.
Timeout typedef
uint32_t
Es el tipo utilizado para expresar el tiempo de espera en este ExchangeContext, en milisegundos.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe una confirmación de un mensaje de Weave que solicitó uno como parte del protocolo de mensajería confiable de Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe un mensaje de regulación o una entrega retrasada como parte del protocolo de mensajes confiables de Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Esta función es la devolución de llamada de la aplicación que se invoca cuando se encuentra un error durante el envío de un mensaje de Weave.

Atributos públicos

AllowDuplicateMsgs
bool
Indicador booleano que indica si se permiten mensajes duplicados para un intercambio determinado.
AppState
void *
Es un puntero al objeto de estado específico de la aplicación.
Con
[READ ONLY] Conexión de Weave asociada.
EncryptionType
uint8_t
Tipo de encriptación para usar cuando envías un mensaje.
ExchangeId
uint16_t
[READ ONLY] ID de intercambio asignado.
ExchangeMgr
[READ ONLY] Administrador de intercambio propietario.
KeyId
uint16_t
Clave de encriptación para usar cuando se envía un mensaje.
OnAckRcvd
Devolución de llamada de la aplicación para la confirmación de recepción.
OnConnectionClosed
OnDDRcvd
Devolución de llamada de la aplicación por mensaje de entrega retrasada recibida.
OnKeyError
Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe un mensaje de error clave del par.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Devolución de llamada de la aplicación para indicar un error durante el envío.
OnThrottleRcvd
Devolución de llamada de la aplicación para el mensaje de regulación recibido.
PeerAddr
IPAddress
[READ ONLY] Dirección IP del nodo de par.
PeerIntf
InterfaceId
[SOLO SOLO] Interfaz de salida que se usará cuando se envíen mensajes al par.
PeerNodeId
uint64_t
[READ ONLY] ID de nodo del nodo de intercambio de tráfico.
PeerPort
uint16_t
[READ ONLY] Puerto del nodo de intercambio de tráfico.
ResponseTimeout
Tiempo máximo de espera de respuesta (en milisegundos); 0 inhabilita el tiempo de espera de respuesta.
RetransInterval
uint32_t
Tiempo entre retransmisiones (en milisegundos); 0 inhabilita las retransmisiones.
mMsgProtocolVersion
uint16_t
Es la versión del protocolo de mensajes para ExchangeContext.
mWRMPConfig
Configuración de WRMP

Funciones públicas

Abort(void)
void
Anular el contexto de Exchange inmediatamente y liberar todas sus referencias
AddRef(void)
void
Incrementa uno de los contadores de referencia del contexto de intercambio.
AutoRequestAck() const
bool
Muestra si se solicitará una confirmación cada vez que se envíe un mensaje.
CancelRetrans(void)
void
Cancela el mecanismo de retransmisión de Trickle.
Close(void)
void
Cierra con facilidad un contexto de intercambio.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifique el encabezado de intercambio en un búfer de mensajes.
GetAutoReleaseKey() const
bool
Muestra si la clave de encriptación asociada con el intercambio debe liberarse cuando se libera el intercambio.
GetCurrentRetransmitTimeout(void)
uint32_t
Obtén el tiempo de espera de retransmisión actual.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Construye una string que describe el nodo de intercambio de tráfico y la dirección o información de conexión asociada.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Controla los mensajes engañosos en el contexto de intercambio.
HasPeerRequestedAck(void) const
bool
Determina si el intercambio de tráfico solicitó la confirmación de al menos un mensaje en este intercambio.
HasRcvdMsgFromPeer(void) const
bool
Determina si se recibió al menos un mensaje de este intercambio en este intercambio.
IsAckPending(void) const
bool
Determina si ya hay una confirmación pendiente para enviar al par en este intercambio.
IsConnectionClosed(void) const
bool
Determina si ExchangeContext tiene una WeaveConnection activa asociada.
IsInitiator(void) const
bool
Determina si el contexto es el iniciador del intercambio.
IsResponseExpected(void) const
bool
Determina si se espera una respuesta para los mensajes que se envían a través de este intercambio.
Release(void)
void
Referencia de la versión en este contexto de intercambio.
SendCommonNullMessage(void)
Envía un mensaje común::Nulo.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Enviar un mensaje de Weave en este intercambio.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Enviar un mensaje de Weave en este intercambio.
SetAckPending(bool inAckPending)
void
Establece si se debe enviar una confirmación a otro par en este intercambio.
SetAutoReleaseKey(bool autoReleaseKey)
void
Establezca si se debe liberar la clave de encriptación asociada con el intercambio cuando se libere.
SetAutoRequestAck(bool autoReqAck)
void
Establece si se debe solicitar una confirmación cada vez que se envía un mensaje.
SetConnectionClosed(bool inConnectionClosed)
void
Configura el bit de la marca kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Establece si WeaveExchangeManager no debe enviar confirmaciones para este contexto.
SetInitiator(bool inInitiator)
void
Se establece el bit de la marca kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Configura si se recibió un mensaje del par en este intercambio.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Establezca si se solicitó la confirmación del último mensaje recibido en este intercambio.
SetResponseExpected(bool inResponseExpected)
void
Configura si se espera una respuesta en este intercambio.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Establezca si se debe liberar la conexión de Weave asociada con el intercambio cuando se libera.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configura el mecanismo de retransmisión gradual y establece el intervalo de retransmisión correspondiente y el umbral de retransmisión.
ShouldAutoReleaseConnection() const
bool
Muestra si se debe liberar la conexión de Weave asociada con el intercambio cuando se libera el intercambio.
ShouldDropAck(void) const
bool
Determina si WeaveExchangeManager no debería enviar una confirmación.
StartTimerT(void)
Inicia el mecanismo de temporizador de retransmisión periódica del algoritmo de retransmisión de Trickle.
TeardownTrickleRetransmit(void)
void
Cancela los mecanismos de retransmisión de Trickle mediante la cancelación de los temporizadores periódicos en Trickle y la liberación del búfer de mensajes que contiene el mensaje de Weave.
UseEphemeralUDPPort(void) const
bool
Muestra si los mensajes salientes enviados mediante el intercambio se deben enviar desde el puerto UDP efímero local.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envía un mensaje de entrega retrasada para notificar a un nodo remitente que el mensaje enviado anteriormente tendría un retraso esperado antes de que se envíe al destinatario.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Enviar un mensaje de limitación de flujo al nodo del mismo nivel para solicitarle que limite el envío de mensajes.

Tipos públicos

@34

 @34
Properties
kSendFlag_AlreadyEncoded

Se usa para indicar que el mensaje ya está codificado.

kSendFlag_AutoRetrans

Se usa para indicar que la retransmisión automática está habilitada.

kSendFlag_DefaultMulticastSourceAddress

Se usa para indicar que se debe seleccionar la dirección IP IPv6 predeterminada cuando se envían mensajes IPv6 de multidifusión.

kSendFlag_DelaySend

Se utiliza para indicar que el envío del mensaje actual se debe retrasar.

kSendFlag_ExpectResponse

Se usa para indicar que se espera una respuesta en un tiempo de espera especificado.

kSendFlag_FromInitiator

Se usa para indicar que el mensaje actual es el iniciador del intercambio.

kSendFlag_MulticastFromLinkLocal

Alias de kSendFlag_DefaultMulticastSourceAddress obsoleto.

kSendFlag_NoAutoRequestAck

Suprime la función de confirmación de solicitud automática cuando se envía un mensaje.

kSendFlag_RequestAck

Se usa para enviar un mensaje WRM y solicitar una confirmación.

kSendFlag_RetainBuffer

Se usa para indicar que el búfer de mensajes no se debe liberar después del envío.

kSendFlag_RetransmissionTrickle

Se utiliza para indicar el requisito de retransmisiones de Trickle.

kSendFlag_ReuseMessageId

Se usa para indicar que se puede reutilizar el ID del mensaje en el encabezado del mensaje.

kSendFlag_ReuseSourceId

Se usa para indicar que se puede reutilizar el ID del nodo fuente en el encabezado del mensaje.

@35

 @35
Properties
kGetPeerDescription_MaxLength

Longitud máxima de la string (incluido el carácter NUL) que muestra GetPeerDescription().

Conexión definida

void(* ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr)

Esta función es la devolución de llamada de la aplicación que se invoca cuando se cierra una conexión de Weave existente.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] con
Un puntero al objeto WeaveConnection.
[in] conErr
El tipo WEAVE_ERROR que se informó cuando se cerró la conexión

KeyErrorFunct

void(* KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr)

Tipo de función de administración de mensajes de error clave.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] keyErr
El tipo WEAVE_ERROR que se informó en el mensaje de error clave.

Función Recibir Mensaje

void(* MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)

Esta función es la devolución de llamada de la aplicación para controlar un mensaje de Weave recibido.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] pktInfo
Un puntero al objeto IPPacketInfo.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] profileId
El identificador de perfil del mensaje recibido.
[in] msgType
El tipo de mensaje del perfil correspondiente
[in] payload
Un puntero al objeto PacketBuffer que contiene la carga útil del mensaje.

Función de tiempo de espera de respuesta

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Esta función es la devolución de llamada de la aplicación que se invoca cuando venció el tiempo de espera para la recepción de un mensaje de respuesta.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Esta función es la devolución de llamada de la aplicación que se invoca cuando caducó el tiempo de espera para la retransmisión de un mensaje enviado con anterioridad.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.

Tiempo de espera

uint32_t Timeout

Es el tipo utilizado para expresar el tiempo de espera en este ExchangeContext, en milisegundos.

WRMPAckRcvdFunct

void(* WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt)

Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe una confirmación de un mensaje de Weave que solicitó uno como parte del protocolo de mensajería confiable de Weave.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] msgCtxt
Un puntero para un objeto de contexto específico asociado con el mensaje original que se reconoce.

WRMPPausarRcvdFunct

void(* WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime)

Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe un mensaje de regulación o una entrega retrasada como parte del protocolo de mensajes confiables de Weave.

Cada uno de estos mensajes incluye un valor de tiempo (en milisegundos) que indica el momento en el que se debe detener el envío de mensajes de Weave en este ExchangeContext.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] pauseTime
Tiempo de pausa de la transmisión (en milisegundos).

WRMPSendErrorFunct

void(* WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt)

Esta función es la devolución de llamada de la aplicación que se invoca cuando se encuentra un error durante el envío de un mensaje de Weave.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] err
El tipo WEAVE_ERROR que se encontró durante el envío del mensaje
[in] msgCtxt
Un puntero para un objeto de contexto específico asociado con el mensaje original sobre el cual se informa.

Atributos públicos

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicador booleano que indica si se permiten mensajes duplicados para un intercambio determinado.

Estado de la aplicación

void * AppState

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

Desventajas

WeaveConnection * Con

[READ ONLY] Conexión de Weave asociada.

EncryptionType

uint8_t EncryptionType

Tipo de encriptación para usar cuando envías un mensaje.

ID de intercambio

uint16_t ExchangeId

[READ ONLY] ID de intercambio asignado.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[READ ONLY] Administrador de intercambio propietario.

KeyId

uint16_t KeyId

Clave de encriptación para usar cuando se envía un mensaje.

CVR

WRMPAckRcvdFunct OnAckRcvd

Devolución de llamada de la aplicación para la confirmación de recepción.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Devolución de llamada de la aplicación por mensaje de entrega retrasada recibida.

Error de OnKeyError

KeyErrorFunct OnKeyError

Esta función es la devolución de llamada de la aplicación que se invoca cuando se recibe un mensaje de error clave del par.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

Tiempo de espera de la transferencia

RetransmissionTimeoutFunct OnRetransmissionTimeout

Error de OnSendError

WRMPSendErrorFunct OnSendError

Devolución de llamada de la aplicación para indicar un error durante el envío.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Devolución de llamada de la aplicación para el mensaje de regulación recibido.

PeerAddr

IPAddress PeerAddr

[READ ONLY] Dirección IP del nodo de par.

PeerIntf

InterfaceId PeerIntf

[SOLO SOLO] Interfaz de salida que se usará cuando se envíen mensajes al par.

(Solo es significativo para UDP).

ID del par de intercambio de tráfico

uint64_t PeerNodeId

[READ ONLY] ID de nodo del nodo de intercambio de tráfico.

Puerto del par

uint16_t PeerPort

[READ ONLY] Puerto del nodo de intercambio de tráfico.

Tiempo de espera de respuesta

Timeout ResponseTimeout

Tiempo máximo de espera de respuesta (en milisegundos); 0 inhabilita el tiempo de espera de respuesta.

RetransInterval

uint32_t RetransInterval

Tiempo entre retransmisiones (en milisegundos); 0 inhabilita las retransmisiones.

Versión de mMsgProtocol

uint16_t mMsgProtocolVersion

Es la versión del protocolo de mensajes para ExchangeContext.

mWRMPConfiguración

WRMPConfig mWRMPConfig

Configuración de WRMP

Funciones públicas

Anular

void Abort(
  void
)

Anular el contexto de Exchange inmediatamente y liberar todas sus referencias

Agregar referencia

void AddRef(
  void
)

Incrementa uno de los contadores de referencia del contexto de intercambio.

AutoRequestAck

bool AutoRequestAck() const 

Muestra si se solicitará una confirmación cada vez que se envíe un mensaje.

Cancelar Trans.

void CancelRetrans(
  void
)

Cancela el mecanismo de retransmisión de Trickle.

Cerrar

void Close(
  void
)

Cierra con facilidad un contexto de intercambio.

Esta llamada disminuye el recuento de referencias y libera el intercambio cuando el recuento de referencias llega a cero.

EncodeExchHeader

WEAVE_ERROR EncodeExchHeader(
  WeaveExchangeHeader *exchangeHeader,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags
)

Codifique el encabezado de intercambio en un búfer de mensajes.

Detalles
Parámetros
[in] exchangeHeader
Un puntero al objeto de encabezado de intercambio de Weave.
[in] profileId
El identificador de perfil del mensaje de Weave que se enviará.
[in] msgType
El tipo de mensaje del perfil correspondiente
[in] msgBuf
Un puntero al PacketBuffer necesario para el mensaje de Weave.
[in] sendFlags
Las marcas establecidas por la aplicación para el mensaje de Weave que se está enviando.
Valores que se muestran
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer de mensajes no tiene suficiente espacio para codificar el encabezado de intercambio.
WEAVE_NO_ERROR
Si la codificación del mensaje se realizó correctamente.

ObtenerAutoReleaseKey

bool GetAutoReleaseKey() const 

Muestra si la clave de encriptación asociada con el intercambio debe liberarse cuando se libera el intercambio.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Obtén el tiempo de espera de retransmisión actual.

Puede ser el tiempo de espera inicial o la retransmisión activa según si el ExchangeContext tiene un intercambio de mensajes activo en intercambio con su par.

Detalles
Qué muestra
el tiempo de retransmisión actual.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Construye una string que describe el nodo de intercambio de tráfico y la dirección o información de conexión asociada.

Detalles
Parámetros
[in] buf
Un puntero para un búfer en el que se debe escribir la string. El búfer suministrado debe ser al menos tan grande como kGetPeerDescription_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
Tamaño del búfer al que apunta un búfer.

ControladorTrickleMessage

void HandleTrickleMessage(
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo
)

Controla los mensajes engañosos en el contexto de intercambio.

Detalles
Parámetros
[in] pktInfo
Un puntero al objeto IPPacketInfo.
[in] msgInfo
Un puntero para la estructura de información del mensaje de Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Determina si el intercambio de tráfico solicitó la confirmación de al menos un mensaje en este intercambio.

Detalles
Qué muestra
Muestra &33;true' si se solicita la confirmación; de lo contrario, 'false'

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Determina si se recibió al menos un mensaje de este intercambio en este intercambio.

Detalles
Qué muestra
Devuelve 'true' si el mensaje se recibió, de otra forma 'falso'

Está pendiente

bool IsAckPending(
  void
) const 

Determina si ya hay una confirmación pendiente para enviar al par en este intercambio.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determina si ExchangeContext tiene una WeaveConnection activa asociada.

Detalles
Qué muestra
Muestra 'true' si la conexión está cerrada, de lo contrario 'false'

IsInitiator

bool IsInitiator(
  void
) const 

Determina si el contexto es el iniciador del intercambio.

Detalles
Qué muestra
Muestra 'true' si es el iniciador, de otra forma 'falso'

Se espera una respuesta

bool IsResponseExpected(
  void
) const 

Determina si se espera una respuesta para los mensajes que se envían a través de este intercambio.

Detalles
Qué muestra
Muestra 'true' si la respuesta es esperada, de lo contrario 'false'

Lanzar

void Release(
  void
)

Referencia de la versión en este contexto de intercambio.

Si el recuento baja a uno, cierra el contexto, restablece todas las devoluciones de llamada de la aplicación y detén todos los temporizadores.

EnviarCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Envía un mensaje común::Nulo.

Detalles
Valores que se muestran
WEAVE_ERROR_NO_MEMORY
Si no hay PacketBuffers disponibles.
WEAVE_NO_ERROR
Si el método es correcto o el error no es crítico
other
Otro error crítico que muestra SendMessage()

Enviar mensaje

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgPayload,
  uint16_t sendFlags,
  void *msgCtxt
)

Enviar un mensaje de Weave en este intercambio.

Detalles
Parámetros
[in] profileId
El identificador de perfil del mensaje de Weave que se enviará.
[in] msgType
El tipo de mensaje del perfil correspondiente
[in] msgBuf
Un puntero al objeto PacketBuffer que contiene el mensaje de Weave.
[in] sendFlags
Las marcas establecidas por la aplicación para el mensaje de Weave que se está enviando.
[in] msgCtxt
Un puntero para un objeto de contexto específico de la aplicación que se asociará con el mensaje que se envía.
Valores que se muestran
WEAVE_ERROR_INVALID_ARGUMENT
si se pasara un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si se limita este contexto de intercambio cuando se usa el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si la operación de envío no coincide con la versión del protocolo de mensajes de Weave que se admite. Por ejemplo, este error se genera si la semántica de Weave Reliable Messaging se intenta cuando la versión de protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto está asociado con una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto de intercambio es incorrecto.
WEAVE_NO_ERROR
Si la capa de Weave envió correctamente el mensaje a la capa de red.

Enviar mensaje

WEAVE_ERROR SendMessage(
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *msgBuf,
  uint16_t sendFlags,
  WeaveMessageInfo *msgInfo,
  void *msgCtxt
)

Enviar un mensaje de Weave en este intercambio.

Detalles
Parámetros
[in] profileId
El identificador de perfil del mensaje de Weave que se enviará.
[in] msgType
El tipo de mensaje del perfil correspondiente
[in] msgBuf
Un puntero al objeto PacketBuffer que contiene el mensaje de Weave.
[in] sendFlags
Las marcas establecidas por la aplicación para el mensaje de Weave que se está enviando.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] msgCtxt
Un puntero para un objeto de contexto específico de la aplicación que se asociará con el mensaje que se envía.
Valores que se muestran
WEAVE_ERROR_INVALID_ARGUMENT
si se pasara un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si se limita este contexto de intercambio cuando se usa el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si la operación de envío no coincide con la versión del protocolo de mensajes de Weave que se admite. Por ejemplo, este error se genera si la semántica de Weave Reliable Messaging se intenta cuando la versión de protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto está asociado con una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto de intercambio es incorrecto.
WEAVE_NO_ERROR
Si la capa de Weave envió correctamente el mensaje a la capa de red.

SetAckPendiente

void SetAckPending(
  bool inAckPending
)

Establece si se debe enviar una confirmación a otro par en este intercambio.

Detalles
Parámetros
[in] inAckPending
Un valor booleano que indica si (verdadero) o no (falso) se debe enviar una confirmación de recepción en respuesta a un mensaje recibido.

ConfigurarAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Establezca si se debe liberar la clave de encriptación asociada con el intercambio cuando se libere.

Detalles
Parámetros
[in] autoReleaseKey
Verdadero si la clave de encriptación de mensajes se debe liberar automáticamente.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Establece si se debe solicitar una confirmación cada vez que se envía un mensaje.

Detalles
Parámetros
[in] autoReqAck
Un valor booleano que indica si se debe solicitar o no una confirmación cada vez que se envía un mensaje

Se estableció conexión

void SetConnectionClosed(
  bool inConnectionClosed
)

Configura el bit de la marca kFlagConnectionClosed.

Esta marca se establece cuando se cierra una WeaveConnection asociada con un ExchangeContext.

Detalles
Parámetros
[in] inConnectionClosed
Un valor booleano que indica si (verdadero) o no (falso) se asoció el contexto con una conexión.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Establece si WeaveExchangeManager no debe enviar confirmaciones para este contexto.

Solo para uso interno.

Detalles
Parámetros
[in] inDropAck
Un valor booleano que indica si (verdadero) o no (falso) no se deben enviar las confirmaciones para el intercambio.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Se establece el bit de la marca kFlagInitiator.

El nodo que inicia un intercambio establece esta marca.

Detalles
Parámetros
[in] inInitiator
Un valor booleano que indica si (verdadero) o no (falso) el contexto es el iniciador del intercambio.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Configura si se recibió un mensaje del par en este intercambio.

Detalles
Parámetros
[in] inMsgRcvdFromPeer
Un valor booleano que indica si se recibió (o verdadero) un mensaje (falso) en este contexto de intercambio.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Establezca si se solicitó la confirmación del último mensaje recibido en este intercambio.

Detalles
Parámetros
[in] inPeerRequestedAck
Un valor booleano que indica si (verdadero) se envió o no la confirmación (falso) en el último mensaje recibido.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Configura si se espera una respuesta en este intercambio.

Detalles
Parámetros
[in] inResponseExpected
Un valor booleano que indica si se espera una respuesta en este intercambio (verdadero o no).

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Establezca si se debe liberar la conexión de Weave asociada con el intercambio cuando se libera.

Detalles
Parámetros
[in] autoReleaseCon
Verdadero si la conexión de Weave se debe liberar automáticamente.

ConfigurarTrickleRetransmit

WEAVE_ERROR SetupTrickleRetransmit(
  uint32_t retransInterval,
  uint8_t threshold,
  uint32_t timeout
)

Configura el mecanismo de retransmisión gradual y establece el intervalo de retransmisión correspondiente y el umbral de retransmisión.

Detalles
Parámetros
[in] retransInterval
El intervalo de retransmisión del algoritmo de retransmisión de Trickle.
[in] threshold
La cantidad máxima de veces que se retransmite un mensaje.
[in] timeout
El tiempo máximo que se debe esperar antes de cancelar el temporizador de retransmisión de Trickle.
Qué muestra
WEAVE_NO_ERROR si la configuración de Trickle se realizó correctamente, de lo contrario, un INET_ERROR se asignó a un WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Muestra si se debe liberar la conexión de Weave asociada con el intercambio cuando se libera el intercambio.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determina si WeaveExchangeManager no debería enviar una confirmación.

Solo para uso interno.

Tiempo de inicio

WEAVE_ERROR StartTimerT(
  void
)

Inicia el mecanismo de temporizador de retransmisión periódica del algoritmo de retransmisión de Trickle.

Detalles
Qué muestra
WEAVE_NO_ERROR si se ejecuta correctamente, de lo contrario, se genera un INET_ERROR en un WEAVE_ERROR.

Retransmitido de Teardown

void TeardownTrickleRetransmit(
  void
)

Cancela los mecanismos de retransmisión de Trickle mediante la cancelación de los temporizadores periódicos en Trickle y la liberación del búfer de mensajes que contiene el mensaje de Weave.

UsarEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Muestra si los mensajes salientes enviados mediante el intercambio se deben enviar desde el puerto UDP efímero local.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Envía un mensaje de entrega retrasada para notificar a un nodo remitente que el mensaje enviado anteriormente tendría un retraso esperado antes de que se envíe al destinatario.

Una de las posibles causas de que se retrasen los mensajes antes de que se entreguen es cuando el nodo final del destinatario está somnoliento. Es posible que este mensaje se genere mediante un nodo intermedio adecuado en la ruta de envío que tenga los conocimientos suficientes del destinatario para deducir sobre la entrega retrasada. Una vez que recibía este mensaje, el remitente volvía a ajustar sus temporizadores de retransmisión para los mensajes que recuperan confirmaciones.

Detalles
Parámetros
[in] pauseTimeMillis
El tiempo (en milisegundos) en el que se espera que se retrase el mensaje enviado anteriormente antes de su entrega.
[in] delayedNodeId
El identificador del nodo del par con el que se retrasaría la entrega de mensajes.
Valores que se muestran
WEAVE_ERROR_INVALID_ARGUMENT
si se pasara un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si la operación de envío no coincide con la versión del protocolo de mensajes de Weave que se admite. Por ejemplo, este error se genera si la semántica de Weave Reliable Messaging se intenta cuando la versión de protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto está asociado con una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto de intercambio es incorrecto.
WEAVE_NO_ERROR
Si la capa de Weave envió correctamente el mensaje a la capa de red.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Enviar un mensaje de limitación de flujo al nodo del mismo nivel para solicitarle que limite el envío de mensajes.

Detalles
Parámetros
[in] pauseTimeMillis
La hora (en milisegundos) en la que se espera que el destinatario limite su envío
Valores que se muestran
WEAVE_ERROR_INVALID_ARGUMENT
Si se pasó un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Si se limita este contexto de intercambio cuando se usa el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si la operación de envío específica no coincide con la versión del protocolo de mensajes de Weave que se admite, Por ejemplo, este error se genera si la semántica de Weave Reliable Messaging se intenta cuando la versión de protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
Si el contexto se asoció a una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
Si el estado del contexto de intercambio es incorrecto.
WEAVE_NO_ERROR
Si la capa de Weave envió el mensaje correctamente a la capa de red.