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 de manejo 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 debe invocar cuando ha caducado 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 invocará cuando haya vencido el tiempo de espera para la retransmisión de un mensaje enviado anteriormente.
Timeout typedef
uint32_t
Es el 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 lo solicitó 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 un mensaje 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
[READ ONLY] Conexión asociada de Weave.
EncryptionType
uint8_t
Es el tipo de encriptación que se usará cuando se envíe un mensaje.
ExchangeId
uint16_t
[SOLO LECTURA] ID de intercambio asignado.
ExchangeMgr
[SOLO DE LECTURA] Es propietario de un administrador de intercambio.
KeyId
uint16_t
Es la clave de encriptación que se debe usar cuando se envía un mensaje.
OnAckRcvd
Devolución de llamada de la aplicación para la confirmación recibida.
OnConnectionClosed
OnDDRcvd
Devolución de llamada de la solicitud para el mensaje de entrega retrasada que se recibió.
OnKeyError
Esta función es la devolución de llamada de la aplicación que se invocará cuando se haya recibido un mensaje de error clave del par.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Devolución de llamada de la aplicación para el error durante el envío.
OnThrottleRcvd
Devolución de llamada de la aplicación para el mensaje de límite recibido.
PeerAddr
IPAddress
[SOLO LECTURA] Dirección IP del nodo de intercambio de tráfico.
PeerIntf
InterfaceId
[SOLO LECTURA] Interfaz saliente que se usará cuando se envíen mensajes al par.
PeerNodeId
uint64_t
[SOLO LECTURA] ID del nodo del par.
PeerPort
uint16_t
[READ ONLY] Puerto del nodo de intercambio de tráfico
ResponseTimeout
Tiempo máximo de espera de la respuesta (en milisegundos); 0 inhabilita el tiempo de espera de respuesta.
RetransInterval
uint32_t
Tiempo entre retransmisiones (en milisegundos); 0 las inhabilita.
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 de inmediato y liberar todas las referencias a él
AddRef(void)
void
Aumenta el contador de referencia para el contexto de intercambio en uno.
AutoRequestAck() const
bool
Muestra si se solicitará una confirmación de recepción cada vez que se envía un mensaje.
CancelRetrans(void)
void
Cancela el mecanismo de retransmisión de goteo.
Close(void)
void
Cerrar 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 debe liberarse cuando se libera 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 par y su dirección / información de conexión asociada.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Maneja el mensaje de goteo dentro del contexto de intercambio.
HasPeerRequestedAck(void) const
bool
Determina si el par solicitó confirmación de recepción para al menos un mensaje en este intercambio.
HasRcvdMsgFromPeer(void) const
bool
Determina si se recibió al menos un mensaje del intercambio de tráfico en este intercambio.
IsAckPending(void) const
bool
Determina si ya hay una confirmación pendiente de envío 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
Libera la referencia a este contexto de intercambio.
SendCommonNullMessage(void)
Envía un mensaje Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Envía un mensaje de Weave en este intercambio.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Envía un mensaje de Weave en este intercambio.
SetAckPending(bool inAckPending)
void
Se establece si se debe enviar una confirmación de vuelta al par en este intercambio.
SetAutoReleaseKey(bool autoReleaseKey)
void
Establece si la clave de encriptación asociada con el intercambio debe liberarse cuando se libere el intercambio.
SetAutoRequestAck(bool autoReqAck)
void
Establece si se debe solicitar una confirmación de recepción cada vez que se envía un mensaje.
SetConnectionClosed(bool inConnectionClosed)
void
Establece el bit de 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 de 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)
Para configurar el mecanismo de retransmisión de goteo, establece 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 este se libera.
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 goteo
TeardownTrickleRetransmit(void)
void
Para eliminar el mecanismo de retransmisión de goteo, cancela los temporizadores periódicos dentro de goteo y libera 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 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 de remitente que el mensaje enviado anteriormente experimentaría una demora esperada antes de entregarse al destinatario.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envía un mensaje de Throttle Flow al nodo del par para solicitar que limite el 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 usar la selección de dirección IPv6 predeterminada de origen cuando se envían mensajes de multidifusión IPv6.

kSendFlag_DelaySend

Se utiliza para indicar que se debe retrasar 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

El alias para kSendFlag_DefaultMulticastSourceAddress dejó de estar disponible.

kSendFlag_NoAutoRequestAck

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

kSendFlag_RequestAck

Se usa para enviar un mensaje de WRM en el que se solicita una confirmación de recepción.

kSendFlag_RetainBuffer

Se utiliza 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 de gotas.

kSendFlag_ReuseMessageId

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

kSendFlag_ReuseSourceId

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

@35

 @35
Propiedades
kGetPeerDescription_MaxLength

Longitud máxima de una 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 para el objeto ExchangeContext.
[in] con
Un puntero para el 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 manejo de mensajes de error clave.

Detalles
Parámetros
[in] ec
Un puntero para el objeto ExchangeContext.
[in] keyErr
El tipo WEAVE_ERROR que se informó en el mensaje de error de 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 controlar un mensaje de Weave recibido.

Detalles
Parámetros
[in] ec
Un puntero para el objeto ExchangeContext.
[in] pktInfo
Un puntero para el objeto IPPacketInfo.
[in] msgInfo
Un puntero para el 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.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Esta función es la devolución de llamada de la aplicación que se debe invocar cuando ha caducado el tiempo de espera para la recepción de un mensaje de respuesta.

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

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Esta función es la devolución de llamada de la aplicación que se invocará cuando haya vencido el tiempo de espera para la retransmisión de un mensaje enviado anteriormente.

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

Tiempo de espera

uint32_t Timeout

Es el 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 lo solicitó como parte del protocolo de mensajería confiable de Weave.

Detalles
Parámetros
[in] ec
Un puntero para el objeto ExchangeContext.
[in] msgCtxt
Un puntero para algún objeto de contexto específico asociado con la confirmación del mensaje original.

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 un mensaje de entrega retrasada como parte del protocolo de mensajería confiable de Weave.

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

Detalles
Parámetros
[in] ec
Un puntero para el 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 para el 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.

Desventajas

WeaveConnection * Con

[READ ONLY] Conexión asociada de Weave.

EncryptionType

uint8_t EncryptionType

Es el tipo de encriptación que se usará cuando se envíe un mensaje.

ExchangeId

uint16_t ExchangeId

[SOLO LECTURA] ID de intercambio asignado.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO DE LECTURA] Es propietario de un administrador de intercambio.

KeyId

uint16_t KeyId

Es la clave de encriptación que se debe usar cuando se envía un mensaje.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

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

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Devolución de llamada de la solicitud para el mensaje de entrega retrasada que se recibió.

OnKeyError

KeyErrorFunct OnKeyError

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

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

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

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Devolución de llamada de la aplicación para el mensaje de límite recibido.

PeerAddr

IPAddress PeerAddr

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

PeerIntf

InterfaceId PeerIntf

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

(solo es relevante para UDP).

PeerNodeId

uint64_t PeerNodeId

[SOLO LECTURA] ID del nodo del par.

PeerPort

uint16_t PeerPort

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

ResponseTimeout

Timeout ResponseTimeout

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

RetransInterval

uint32_t RetransInterval

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

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Es la 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
)

Aumenta el contador de referencia para el contexto de intercambio en uno.

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

void CancelRetrans(
  void
)

Cancela el mecanismo de retransmisión de goteo.

Cerrar

void Close(
  void
)

Cerrar 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 para el PacketBuffer necesario para el mensaje de Weave.
[in] sendFlags
Marcas establecidas por la aplicación para el mensaje de Weave que se envía.
Valores que se muestran
WEAVE_ERROR_BUFFER_TOO_SMALL
Si el búfer de mensajes no tiene suficiente espacio para codificar el encabezado del intercambio.
WEAVE_NO_ERROR
Si la codificación del mensaje fue exitosa.

GetAutoReleaseKey

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
)

Obtiene el tiempo de espera de retransmisión actual.

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

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

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Construye una cadena que describe el nodo par y su dirección / 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 proporcionado debe ser al menos tan grande como kGetPeerDescription_MaxLength. Si se proporciona un búfer más pequeño, la cadena se truncará para que quepa. El resultado incluirá un carácter de finalización NUL en todos los casos.
[in] bufSize
Tamaño del búfer al que apunta buf.

HandleTrickleMessage

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

Maneja el mensaje de goteo dentro del contexto de intercambio.

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

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

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

Detalles
Qué muestra
Muestra el valor "true" si se solicita la confirmación de la llamada, de lo contrario, muestra "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

Detalles
Qué muestra
Muestra el valor "true" si se recibe un mensaje y, de lo contrario, es "false".

IsAckPending

bool IsAckPending(
  void
) const 

Determina si ya hay una confirmación pendiente de envío al par en este intercambio.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determina si ExchangeContext tiene una WeaveConnection activa asociada.

Detalles
Qué muestra
Muestra el valor "true" si se cierra la conexión; de lo contrario, muestra "false".

IsInitiator

bool IsInitiator(
  void
) const 

Determina si el contexto es el iniciador del intercambio.

Detalles
Qué muestra
Muestra el valor 'true' si es el iniciador, de lo contrario, 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

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

Detalles
Qué muestra
Muestra el valor "true" si la respuesta es esperada; de lo contrario, muestra "false".

Lanzamiento

void Release(
  void
)

Libera la referencia a este contexto de intercambio.

Si la cuenta disminuye 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 Common::Null.

Detalles
Valores que se muestran
WEAVE_ERROR_NO_MEMORY
Si no hay PacketBuffers disponibles.
WEAVE_NO_ERROR
Si el método tuvo éxito o el error no fue 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
)

Envía 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
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 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 limitó este contexto de intercambio cuando se usó el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si hay una discrepancia en la operación de envío específica y la versión del protocolo de mensajes de Weave que es compatible. Por ejemplo, este error se generaría si se intenta aplicar la semántica de Weave Reliable Messaging cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estuviera asociado a una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto del 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
)

Envía 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
Marcas establecidas por la aplicación para el mensaje de Weave que se envía.
[in] msgInfo
Un puntero para el 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 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 limitó este contexto de intercambio cuando se usó el protocolo de mensajería confiable de Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si hay una discrepancia en la operación de envío específica y la versión del protocolo de mensajes de Weave que es compatible. Por ejemplo, este error se generaría si se intenta aplicar la semántica de Weave Reliable Messaging cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estuviera asociado a una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto del 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 vuelta 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 devolver en respuesta a un mensaje recibido.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Establece si la clave de encriptación asociada con el intercambio debe liberarse 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 de recepción cada vez que se envía un mensaje.

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

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Establece el bit de 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 (verdadero) o no (falso) el contexto estaba asociado con una conexión.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Establece si WeaveExchangeManager no debe enviar confirmaciones para este contexto.

Solo para uso interno de depuración.

Detalles
Parámetros
[in] inDropAck
Es 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
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 de este intercambio.

Detalles
Parámetros
[in] inMsgRcvdFromPeer
Un valor booleano que indica si (verdadero) o no (falso) se recibió 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 (verdadero) o no (falso) se solicitó una confirmación en el último mensaje recibido.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Establece si se espera una respuesta en este intercambio.

Detalles
Parámetros
[in] inResponseExpected
Un valor booleano que indica si (verdadero) o no (falso) se espera una respuesta 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 se debe liberar automáticamente la conexión de Weave.

SetupTrickleRetransmit

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

Para configurar el mecanismo de retransmisión de goteo, establece 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 goteo.
[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 goteo.
Qué 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 este se libera.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determina si WeaveExchangeManager no debe enviar una confirmación.

Solo para uso interno de depuración.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

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

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

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Para eliminar el mecanismo de retransmisión de goteo, cancela los temporizadores periódicos dentro de goteo y libera 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 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 de remitente que el mensaje enviado anteriormente 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 este mensaje lo genere un nodo intermedio adecuado en la ruta de envío que tenga suficiente conocimiento del destinatario como para inferir la entrega retrasada. Después de recibir este mensaje, el remitente reajusta sus temporizadores de retransmisión para los mensajes que buscan confirmar recepción.

Detalles
Parámetros
[in] pauseTimeMillis
Es el tiempo (en milisegundos) en el que se espera que el mensaje enviado anteriormente se retrase antes de entregarse.
[in] delayedNodeId
El identificador de nodo del nodo de intercambio de tráfico al que se retrasaría la entrega del mensaje.
Valores que se muestran
WEAVE_ERROR_INVALID_ARGUMENT
si se pasó un argumento no válido a esta API de SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
si hay una discrepancia en la operación de envío específica y la versión del protocolo de mensajes de Weave que es compatible. Por ejemplo, este error se generaría si se intenta aplicar la semántica de Weave Reliable Messaging cuando la versión del protocolo de mensajes de Weave es V1.
WEAVE_ERROR_NOT_CONNECTED
si el contexto estuviera asociado a una conexión que ahora está cerrada.
WEAVE_ERROR_INCORRECT_STATE
si el estado del contexto del 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 Throttle Flow al nodo del par para solicitar que limite el envío de mensajes.

Detalles
Parámetros
[in] pauseTimeMillis
Es el tiempo (en milisegundos) en que se espera que el destinatario limite el 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 este contexto de intercambio se limitó cuando se usó el protocolo de mensajería confiable de Weave
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Si hay una discrepancia en la operación de envío específica y la versión del protocolo de mensajes de Weave que es compatible. Por ejemplo, este error se generaría si se intenta aplicar la semántica de Weave Reliable Messaging 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 del intercambio es incorrecto.
WEAVE_NO_ERROR
Si la capa de Weave envió correctamente el mensaje a la capa de red.