nl::Weave::ExchangeContext

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

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

Resumen

Define 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 debe invocar cuando se cierra una conexión de Weave existente.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo de función clave de manejo de mensajes de error.
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 manejar 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 debe invocar 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 debe invocar cuando venció el tiempo de espera para la retransmisión de un mensaje enviado anteriormente.
Timeout typedef
uint32_t
Tipo que se usa 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 debe invocar cuando se recibe una confirmación de un mensaje de Weave que solicitó una 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 debe invocar cuando se recibe un mensaje de regulación o de entrega retrasada como parte del protocolo de mensajería confiable 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 debe invocar cuando se encuentra un error durante el envío de un mensaje de Weave.

Atributos públicos

AllowDuplicateMsgs
bool
Indicador booleano de si se permiten mensajes duplicados para un intercambio determinado.
AppState
void *
Es el puntero al objeto de estado específico de la aplicación.
Con
[SOLO LECTURA] Conexión de Weave asociada.
EncryptionType
uint8_t
Tipo de encriptación para usar cuando se envía un mensaje.
ExchangeId
uint16_t
[SOLO LECTURA] ID de intercambio asignado.
ExchangeMgr
[SOLO LECTURA] Ser propietario de un administrador de intercambios
KeyId
uint16_t
Clave de encriptación para usar cuando se envía un mensaje.
OnAckRcvd
Es la devolución de llamada de la aplicación para la confirmación recibida.
OnConnectionClosed
OnDDRcvd
Es la devolución de llamada de la aplicación para el mensaje de entrega retrasada recibida.
OnKeyError
Esta función es la devolución de llamada de la aplicación que se debe invocar cuando se recibe un mensaje de error clave del par.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Es la devolución de llamada de la aplicación para el error durante el envío.
OnThrottleRcvd
Es la devolución de llamada de la aplicación para el mensaje Throttle recibido.
PeerAddr
IPAddress
[SOLO LECTURA] Dirección IP del nodo de intercambio de tráfico.
PeerIntf
InterfaceId
[SOLO LECTURA] Es la interfaz de salida que se usa cuando se envían mensajes al par.
PeerNodeId
uint64_t
[SOLO LECTURA] ID de nodo del nodo de intercambio de tráfico.
PeerPort
uint16_t
[SOLO LECTURA] Puerto del nodo de intercambio de tráfico.
ResponseTimeout
Tiempo máximo de espera de una 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
Versión del protocolo de mensajes para ExchangeContext.
mWRMPConfig
configuración de WRMP.

Funciones públicas

Abort(void)
void
Anular el contexto de Exchange de inmediato y liberar todas las referencias a él
AddRef(void)
void
Aumentar el contador de referencias para el contexto de intercambio en uno
AutoRequestAck() const
bool
Muestra si se solicitará una confirmación cada vez que se envíe un mensaje.
CancelRetrans(void)
void
Cancelar el mecanismo de retransmisión de Trickle.
Close(void)
void
Cierra elegantemente un contexto de intercambio.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifica el encabezado del intercambio en un búfer de mensajes.
GetAutoReleaseKey() const
bool
Muestra si la clave de encriptación asociada con el intercambio se debe liberar cuando se libere el intercambio.
GetCurrentRetransmitTimeout(void)
uint32_t
Obtiene el tiempo de espera de retransmisión actual.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Construye una cadena que describe el nodo de intercambio de tráfico y su dirección o información de conexión asociada.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Manejar el mensaje de goteo dentro del contexto de intercambio
HasPeerRequestedAck(void) const
bool
Determina si un par solicitó una confirmación para al menos un mensaje en este intercambio.
HasRcvdMsgFromPeer(void) const
bool
Determina si se recibió al menos un mensaje de un intercambio de tráfico.
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 enviados a través de este intercambio.
Release(void)
void
Divulgar la referencia a este contexto de intercambio.
SendCommonNullMessage(void)
Envía un mensaje de Common::Null.
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
Se establece si se debe enviar una confirmación de recepción al par en este intercambio.
SetAutoReleaseKey(bool autoReleaseKey)
void
Establece si la clave de encriptación asociada con el intercambio se debe liberar cuando se libere el intercambio.
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
Establece el bit de la marca kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Establece si se recibió un mensaje del par en este intercambio.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Se establece si se solicitó una confirmación en el último mensaje recibido en este intercambio.
SetResponseExpected(bool inResponseExpected)
void
Establece si se espera una respuesta en este intercambio.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Establece si la conexión de Weave asociada con el intercambio debe liberarse cuando se libere el intercambio.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configura el mecanismo de retransmisión por goteo configurando el intervalo de retransmisión y el umbral de retransmisión correspondientes.
ShouldAutoReleaseConnection() const
bool
Muestra si la conexión de Weave asociada con el intercambio debe liberarse cuando se libere el intercambio.
ShouldDropAck(void) const
bool
Determina si WeaveExchangeManager no debe enviar una confirmación.
StartTimerT(void)
Iniciar el mecanismo del temporizador de retransmisión periódica del algoritmo de retransmisión de Trickle.
TeardownTrickleRetransmit(void)
void
Elimina el mecanismo de retransmisión de Trickle cancelando los temporizadores periódicos dentro de Trickle y liberando el búfer de mensajes que contiene el mensaje de Weave.
UseEphemeralUDPPort(void) const
bool
Muestra si los mensajes salientes enviados a través del intercambio deben enviarse desde el puerto UDP efímero local.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envía un mensaje de entrega demorada para notificar a un nodo del remitente que el mensaje enviado previamente experimentaría una demora esperada antes de entregarse al destinatario.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envía un mensaje de flujo de regulación al nodo par solicitándole que limite su envío de mensajes.

Tipos públicos

@34

 @34
Propiedades
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 utiliza para indicar que se debe seleccionar la dirección de origen IPv6 predeterminada cuando se envían mensajes de multidifusión IPv6.

kSendFlag_DelaySend

Se usa para indicar que debe retrasarse el envío del mensaje actual.

kSendFlag_ExpectResponse

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

kSendFlag_FromInitiator

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

kSendFlag_MulticastFromLinkLocal

Alias obsoleto para kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Elimina la función de confirmación de recepción de solicitudes automáticas al enviar un mensaje.

kSendFlag_RequestAck

Se usa para enviar un mensaje WRM que solicita una confirmación.

kSendFlag_RetainBuffer

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

kSendFlag_RetransmissionTrickle

Se usa para indicar el requisito de retransmisiones por Trickle.

kSendFlag_ReuseMessageId

Se usa para indicar que se puede volver a usar el ID del mensaje en el encabezado del mensaje.

kSendFlag_ReuseSourceId

Se usa para indicar que se puede volver a usar el ID de nodo fuente en el encabezado del mensaje.

@35

 @35
Propiedades
kGetPeerDescription_MaxLength

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

ConnectionClosedFunct

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

Esta función es la devolución de llamada de la aplicación que se debe invocar 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 clave de manejo de mensajes de error.

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.

MessageReceiveFunct

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 manejar 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 PackageBuffer que contiene la carga útil del mensaje.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Esta función es la devolución de llamada de la aplicación que se debe invocar 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 debe invocar cuando venció el tiempo de espera para la retransmisión de un mensaje enviado anteriormente.

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

Tiempo de espera

uint32_t Timeout

Tipo que se usa 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 debe invocar cuando se recibe una confirmación de un mensaje de Weave que solicitó una 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 algún objeto de contexto específico asociado con el mensaje original que se confirma.

WRMPPauseRcvdFunct

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

Esta función es la devolución de llamada de la aplicación que se debe invocar cuando se recibe un mensaje de regulación o de entrega retrasada como parte del protocolo de mensajería confiable de Weave.

Cada uno de estos mensajes va acompañado de un valor de tiempo (en milisegundos) que indica el tiempo que se debe pausar el envío de mensajes de Weave en este ExchangeContext.

Detalles
Parámetros
[in] ec
Un puntero al objeto ExchangeContext.
[in] pauseTime
Tiempo para pausar 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 debe invocar 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 algún objeto de contexto específico asociado con el mensaje original sobre el que se informa.

Atributos públicos

AllowDuplicateMsgs

bool AllowDuplicateMsgs

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

AppState

void * AppState

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

Desventaja

WeaveConnection * Con

[SOLO LECTURA] Conexión de Weave asociada.

EncryptionType

uint8_t EncryptionType

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

ExchangeId

uint16_t ExchangeId

[SOLO LECTURA] ID de intercambio asignado.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO LECTURA] Ser propietario de un administrador de intercambios

KeyId

uint16_t KeyId

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

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Es la devolución de llamada de la aplicación para la confirmación recibida.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Es la devolución de llamada de la aplicación para el mensaje de entrega retrasada recibida.

OnKeyError

KeyErrorFunct OnKeyError

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

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Es la devolución de llamada de la aplicación para el error durante el envío.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Es la devolución de llamada de la aplicación para el mensaje Throttle recibido.

PeerAddr

IPAddress PeerAddr

[SOLO LECTURA] Dirección IP del nodo de intercambio de tráfico.

PeerIntf

InterfaceId PeerIntf

[SOLO LECTURA] Es la interfaz de salida que se usa cuando se envían mensajes al par.

(Solo es significativo para UDP).

PeerNodeId

uint64_t PeerNodeId

[SOLO LECTURA] ID de nodo del nodo de intercambio de tráfico.

PeerPort

uint16_t PeerPort

[SOLO LECTURA] Puerto del nodo de intercambio de tráfico.

ResponseTimeout

Timeout ResponseTimeout

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

RetransInterval

uint32_t RetransInterval

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

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Versión del protocolo de mensajes para ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

configuración de WRMP.

Funciones públicas

Anular

void Abort(
  void
)

Anular el contexto de Exchange de inmediato y liberar todas las referencias a él

AddRef

void AddRef(
  void
)

Aumentar el contador de referencias para el contexto de intercambio en uno

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

void CancelRetrans(
  void
)

Cancelar el mecanismo de retransmisión de Trickle.

Cerrar

void Close(
  void
)

Cierra elegantemente un contexto de intercambio.

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

EncodeExchHeader

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

Codifica el encabezado del intercambio en un búfer de mensajes.

Detalles
Parámetros
[in] exchangeHeader
Un puntero al objeto de encabezado de Weave Exchange.
[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 PackageBuffer que se necesita para el mensaje de Weave.
[in] sendFlags
Marcas establecidas por la aplicación para el mensaje de Weave que se envía.
Valores de retorno
WEAVE_ERROR_BUFFER_TOO_SMALL
Se muestra si el búfer del mensaje no tiene espacio suficiente para codificar el encabezado del intercambio.
WEAVE_NO_ERROR
Si la codificación del mensaje se realizó correctamente.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

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

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Obtiene el tiempo de espera de retransmisión actual.

Sería el tiempo de espera inicial o el tiempo de espera de retransmisión activo en función de si ExchangeContext tiene un intercambio de mensajes activo con su intercambio de tráfico.

Detalles
Resultado que se muestra
la hora actual de retransmisión.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Construye una cadena que describe el nodo de intercambio de tráfico y su 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 cadena. El búfer proporcionado 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 finalización NUL en todos los casos.
[in] bufSize
El tamaño del búfer al que apunta el buf.

HandleTrickleMessage

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

Manejar el mensaje de goteo dentro del contexto de intercambio

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

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Determina si un par solicitó una confirmación para al menos un mensaje en este intercambio.

Detalles
Resultado que se muestra
Muestra "true" si se solicita una confirmación, de lo contrario, es “false”.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Determina si se recibió al menos un mensaje de un intercambio de tráfico.

Detalles
Resultado que se muestra
Muestra "true" si se recibió el mensaje, de lo contrario, se define como "false".

IsAckPending

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
Resultado que se muestra
Muestra "true" si la conexión está cerrada, de lo contrario, el valor es "false".

IsInitiator

bool IsInitiator(
  void
) const 

Determina si el contexto es el iniciador del intercambio.

Detalles
Resultado que se muestra
Muestra "true" si es el iniciador, de lo contrario, dice 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Determina si se espera una respuesta para los mensajes enviados a través de este intercambio.

Detalles
Resultado que se muestra
Muestra "true" si se espera una respuesta, de lo contrario, es “false”.

Lanzamiento

void Release(
  void
)

Divulgar la referencia a este contexto de intercambio.

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

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Envía un mensaje de Common::Null.

Detalles
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Si no hay PackageBuffers disponibles.
WEAVE_NO_ERROR
Si el método tuvo éxito o si el error no era crítico.
other
Otro error crítico que muestra SendMessage().

SendMessage

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 packageBuffer que contiene el mensaje de Weave.
[in] sendFlags
Marcas establecidas por la aplicación para el mensaje de Weave que se envía.
[in] msgCtxt
Un puntero a un objeto de contexto específico de la aplicación que se asociará con el mensaje que se envía.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
si se pasa un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si este contexto de intercambio se limitó al utilizar el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si hay una discrepancia entre la operación de envío específica y la versión compatible del protocolo de mensajes de Weave. Por ejemplo, este error se generaría si se intentan realizar semánticas de mensajes confiables de Weave cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estaba 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.

SendMessage

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 packageBuffer que contiene el mensaje de Weave.
[in] sendFlags
Marcas establecidas por la aplicación para el mensaje de Weave que se envía.
[in] msgInfo
Un puntero al objeto WeaveMessageInfo.
[in] msgCtxt
Un puntero a un objeto de contexto específico de la aplicación que se asociará con el mensaje que se envía.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
si se pasa un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
si este contexto de intercambio se limitó al utilizar el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si hay una discrepancia entre la operación de envío específica y la versión compatible del protocolo de mensajes de Weave. Por ejemplo, este error se generaría si se intentan realizar semánticas de mensajes confiables de Weave cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estaba 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.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Se establece si se debe enviar una confirmación de recepción al par en este intercambio.

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

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

Detalles
Parámetros
[in] autoReleaseKey
Es verdadero si la clave de encriptación del mensaje debe liberarse 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.

SetConnectionClosed

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
Es un valor booleano que indica si el contexto se asoció (verdadero) o no (falso).

SetDropAck

void SetDropAck(
  bool inDropAck
)

Establece si WeaveExchangeManager no debe enviar confirmaciones para este contexto.

Solo para uso interno, depuración.

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

SetInitiator

void SetInitiator(
  bool inInitiator
)

Establece el bit de la marca kFlagInitiator.

El nodo que inicia un intercambio establece esta marca.

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

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

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

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

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Se establece si se solicitó una confirmación en el último mensaje recibido en este intercambio.

Detalles
Parámetros
[in] inPeerRequestedAck
Un valor booleano que indica si se solicitó una confirmación de recepción en el último mensaje recibido (true) o no (falso).

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Establece si se espera una respuesta en este intercambio.

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

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Establece si la conexión de Weave asociada con el intercambio debe liberarse cuando se libere el intercambio.

Detalles
Parámetros
[in] autoReleaseCon
Es verdadero si la conexión de Weave debe liberarse automáticamente.

SetupTrickleRetransmit

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

Configura el mecanismo de retransmisión por goteo configurando el intervalo de retransmisión y el umbral de retransmisión correspondientes.

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 de espera antes de cancelar el temporizador de retransmisión de Trickle.
Resultado que se muestra
WEAVE_NO_ERROR si la configuración de Trickle se realizó correctamente, de lo contrario, se asignó un INET_ERROR a un WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

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

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determina si WeaveExchangeManager no debe enviar una confirmación.

Solo para uso interno, depuración.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

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

Detalles
Resultado que se muestra
WEAVE_NO_ERROR si se ejecuta correctamente, de lo contrario, se asigna un INET_ERROR a un WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Elimina el mecanismo de retransmisión de Trickle cancelando los temporizadores periódicos dentro de Trickle y liberando el búfer de mensajes que contiene el mensaje de Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Muestra si los mensajes salientes enviados a través del intercambio deben enviarse 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 demorada para notificar a un nodo del remitente que el mensaje enviado previamente experimentaría una demora esperada antes de entregarse al destinatario.

Una de las posibles causas de que los mensajes se retrasen antes de entregarse es cuando el nodo final del destinatario está inactivo. Es posible que un nodo intermedio adecuado en la ruta de envío genere este mensaje con suficiente conocimiento del destinatario como para inferir la demora en la entrega. Al recibir este mensaje, el remitente reajusta sus temporizadores de retransmisión para los mensajes que buscan confirmar mensajes.

Detalles
Parámetros
[in] pauseTimeMillis
Es el tiempo (en milisegundos) en que se prevé que el mensaje enviado anteriormente se retrase antes de entregarse.
[in] delayedNodeId
El identificador del nodo del par al que se retrasaría la entrega de mensajes.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
si se pasa un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si hay una discrepancia entre la operación de envío específica y la versión compatible del protocolo de mensajes de Weave. Por ejemplo, este error se generaría si se intentan realizar semánticas de mensajes confiables de Weave cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estaba 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
)

Envía un mensaje de flujo de regulación al nodo par solicitándole que limite su envío de mensajes.

Detalles
Parámetros
[in] pauseTimeMillis
Es el tiempo (en milisegundos) en que se espera que el destinatario limite su envío.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
Si se pasa un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Si este contexto de intercambio se limitó al usar el protocolo de mensajería confiable de Weave
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si hay una discrepancia entre la operación de envío específica y la versión del protocolo de mensajes de Weave que se admite. Por ejemplo, este error se generaría si se intentan realizar semánticas de mensajes confiables de Weave cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
Si el contexto estaba asociado con una conexión que ahora está cerrada
WEAVE_ERROR_INCORRECT_STATE
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.