nl::Weave::ExchangeContext

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

Esta classe representa uma conversa em andamento (ExchangeContext) entre dois ou mais nós.

Resumo

Ela define métodos para codificar e comunicar mensagens do Weave em um ExchangeContext por vários mecanismos de transporte, por exemplo, TCP, UDP ou 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(*
Essa função é o callback do aplicativo a ser invocado quando uma conexão do Weave existente for encerrada.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo de função principal de tratamento de mensagens de erro.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Essa função é o callback do aplicativo para lidar com uma mensagem do Weave recebida.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando o tempo limite para o recebimento de uma mensagem de resposta expirar.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando o tempo limite para retransmissão de uma mensagem enviada anteriormente tiver expirado.
Timeout typedef
uint32_t
Tipo usado para expressar o tempo limite neste ExchangeContext, em milissegundos.
WRMPAckRcvdFunct)(ExchangeContext *ec, void *msgCtxt) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando uma confirmação é recebida para uma mensagem do Weave que solicitou uma como parte do protocolo de mensagens confiáveis do Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Essa função é o callback do aplicativo para invocar quando uma mensagem Throttle ou uma mensagem de entrega atrasada for recebida como parte do Weave Reliable Messaging Protocol.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando um erro é encontrado durante o envio de uma mensagem do Weave.

Atributos públicos

AllowDuplicateMsgs
bool
Indicador boleano que indica se mensagens duplicadas são permitidas para uma determinada troca.
AppState
void *
Ponteiro para o objeto de estado específico do aplicativo.
Con
[SOMENTE LEITURA] Conexão do Weave associada.
EncryptionType
uint8_t
Tipo de criptografia a ser usado ao enviar uma mensagem.
ExchangeId
uint16_t
[SOMENTE LEITURA] ID de troca atribuído.
ExchangeMgr
[SOMENTE LEITURA] Gerente de troca proprietário.
KeyId
uint16_t
Chave de criptografia a ser usada ao enviar uma mensagem.
OnAckRcvd
Callback do aplicativo para a confirmação recebida.
OnConnectionClosed
OnDDRcvd
Chamada de retorno do aplicativo para a mensagem de entrega atrasada recebida.
OnKeyError
Essa função é o callback do aplicativo a ser invocado quando a mensagem de erro de chave é recebida do peering.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Chamada de retorno do aplicativo para erro durante o envio.
OnThrottleRcvd
Callback do aplicativo para a mensagem do Throttle recebida.
PeerAddr
IPAddress
[SOMENTE LEITURA] Endereço IP do nó de peering.
PeerIntf
InterfaceId
[SOMENTE LEITURA] Interface de saída a ser usada ao enviar mensagens para o ponto.
PeerNodeId
uint64_t
[SOMENTE LEITURA] ID do nó de peering.
PeerPort
uint16_t
[SOMENTE LEITURA] Porta do nó de peering.
ResponseTimeout
Tempo máximo de espera pela resposta (em milissegundos). "0" desativa o tempo limite de resposta.
RetransInterval
uint32_t
Tempo entre retransmissões (em milissegundos) "0" desativa as retransmissões.
mMsgProtocolVersion
uint16_t
A versão do protocolo de mensagem do ExchangeContext.
mWRMPConfig
Configuração do WRMP.

Funções públicas

Abort(void)
void
Cancele o contexto do Exchange imediatamente e libere todas as referências a ele.
AddRef(void)
void
Incremente o contador de referência para o contexto de troca em um.
AutoRequestAck() const
bool
Retorna se uma confirmação será solicitada sempre que uma mensagem for enviada.
CancelRetrans(void)
void
Cancelar o mecanismo de retransmissão do Trickle.
Close(void)
void
Feche adequadamente um contexto de troca.
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifique o cabeçalho da troca em um buffer de mensagem.
GetAutoReleaseKey() const
bool
Retorna se a chave de criptografia associada à troca precisa ser liberada quando a troca for liberada.
GetCurrentRetransmitTimeout(void)
uint32_t
Acessa o tempo limite de retransmissão atual.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Constrói uma string que descreve o nó de peering e as informações de endereço / conexão associadas.
HandleTrickleMessage(const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo)
void
Gerencie a mensagem do truque no contexto da troca.
HasPeerRequestedAck(void) const
bool
Determine se o colega solicitou a confirmação para pelo menos uma mensagem nesta troca.
HasRcvdMsgFromPeer(void) const
bool
Determine se pelo menos uma mensagem foi recebida nesta troca do ponto.
IsAckPending(void) const
bool
Determine se já existe uma confirmação pendente a ser enviada ao par nesta troca.
IsConnectionClosed(void) const
bool
Determine se o ExchangeContext tem uma WeaveConnection ativa associada.
IsInitiator(void) const
bool
Determine se o contexto é o iniciador da troca.
IsResponseExpected(void) const
bool
Determine se uma resposta é esperada para as mensagens enviadas nessa troca.
Release(void)
void
Referência de lançamento para este contexto de troca.
SendCommonNullMessage(void)
Enviar uma mensagem Common::Null.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgPayload, uint16_t sendFlags, void *msgCtxt)
Envie uma mensagem do Weave nesta troca.
SendMessage(uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags, WeaveMessageInfo *msgInfo, void *msgCtxt)
Envie uma mensagem do Weave nesta troca.
SetAckPending(bool inAckPending)
void
Defina se uma confirmação precisa ser enviada de volta ao par nesta troca.
SetAutoReleaseKey(bool autoReleaseKey)
void
Defina se a chave de criptografia associada à troca será liberada quando ela for liberada.
SetAutoRequestAck(bool autoReqAck)
void
Defina se uma confirmação precisa ser solicitada sempre que uma mensagem é enviada.
SetConnectionClosed(bool inConnectionClosed)
void
Define o bit de sinalização kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Defina se o WeaveExchangeManager não deve enviar confirmações para esse contexto.
SetInitiator(bool inInitiator)
void
Define o bit de flag kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Defina se uma mensagem foi recebida do par nesta troca.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Defina se uma confirmação foi solicitada na última mensagem recebida nesta troca.
SetResponseExpected(bool inResponseExpected)
void
Defina se uma resposta é esperada nesta troca.
SetShouldAutoReleaseConnection(bool autoReleaseCon)
void
Defina se a conexão do Weave associada à troca será liberada quando ela for liberada.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configure o mecanismo de retransmissão de gotejamento definindo o intervalo e o limite de retransmissão correspondentes.
ShouldAutoReleaseConnection() const
bool
Retorna se a conexão do Weave associada à troca será liberada quando a troca for liberada.
ShouldDropAck(void) const
bool
Determine se o WeaveExchangeManager não enviará uma confirmação.
StartTimerT(void)
Inicie o mecanismo de timer de retransmissão periódica do algoritmo de retransmissão do Trickle.
TeardownTrickleRetransmit(void)
void
Elimine o mecanismo de retransmissão do Trickle cancelando os timers periódicos dentro dele e liberando o buffer de mensagens que contém a mensagem do Weave.
UseEphemeralUDPPort(void) const
bool
Retorna se as mensagens de saída enviadas pela troca precisam ser enviadas da porta UDP local temporária.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envie uma mensagem de entrega atrasada para notificar um nó remetente que a mensagem enviada anteriormente passaria por um atraso esperado antes da entrega ao destinatário.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envie uma mensagem "Acelerar fluxo" ao nó de peering solicitando que limite o envio de mensagens.

Tipos públicos

@34

 @34
Propriedades
kSendFlag_AlreadyEncoded

Usado para indicar que a mensagem já está codificada.

kSendFlag_AutoRetrans

Usado para indicar que a retransmissão automática está ativada.

kSendFlag_DefaultMulticastSourceAddress

Usado para indicar que a seleção de endereço de origem IPv6 padrão deve ser usada ao enviar mensagens multicast IPv6.

kSendFlag_DelaySend

Usado para indicar que o envio da mensagem atual precisa ser atrasado.

kSendFlag_ExpectResponse

Usado para indicar que uma resposta é esperada dentro de um tempo limite especificado.

kSendFlag_FromInitiator

Usado para indicar que a mensagem atual é o iniciador da troca.

kSendFlag_MulticastFromLinkLocal

Alias descontinuado de kSendFlag_DefaultMulticastSourceAddress.

kSendFlag_NoAutoRequestAck

Suprimir o recurso de confirmação de solicitação automática ao enviar uma mensagem.

kSendFlag_RequestAck

Usado para enviar uma mensagem WRM solicitando uma confirmação.

kSendFlag_RetainBuffer

Usado para indicar que o buffer da mensagem não deve ser liberado após o envio.

kSendFlag_RetransmissionTrickle

Usado para indicar a necessidade de retransmissões do Trickle.

kSendFlag_ReuseMessageId

Usado para indicar que o ID da mensagem no cabeçalho pode ser reutilizado.

kSendFlag_ReuseSourceId

Usado para indicar que o ID do nó de origem no cabeçalho da mensagem pode ser reutilizado.

@35

 @35
Propriedades
kGetPeerDescription_MaxLength

Tamanho máximo da string (incluindo o caractere NUL) retornado por GetPeerDescription().

ConnectionClosedFunct

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

Essa função é o callback do aplicativo a ser invocado quando uma conexão do Weave existente for encerrada.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] conErr
O tipo WEAVE_ERROR que foi relatado quando a conexão foi encerrada.

KeyErrorFunct

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

Tipo de função principal de tratamento de mensagens de erro.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] keyErr
O tipo WEAVE_ERROR que foi relatado na mensagem de erro da chave.

MessageReceiveFunct

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

Essa função é o callback do aplicativo para lidar com uma mensagem do Weave recebida.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] pktInfo
Um ponteiro para o objeto IPPacketInfo.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] profileId
O identificador do perfil da mensagem recebida.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém o payload da mensagem.

ResponseTimeoutFunct

void(* ResponseTimeoutFunct)(ExchangeContext *ec)

Essa função é o callback do aplicativo a ser invocado quando o tempo limite para o recebimento de uma mensagem de resposta expirar.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Essa função é o callback do aplicativo a ser invocado quando o tempo limite para retransmissão de uma mensagem enviada anteriormente tiver expirado.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.

Tempo limite

uint32_t Timeout

Tipo usado para expressar o tempo limite neste ExchangeContext, em milissegundos.

WRMPAckRcvdFunct

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

Essa função é o callback do aplicativo a ser invocado quando uma confirmação é recebida para uma mensagem do Weave que solicitou uma como parte do protocolo de mensagens confiáveis do Weave.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] msgCtxt
Um ponteiro para algum objeto de contexto específico associado à mensagem original que está sendo confirmada.

WRMPPauseRcvdFunct

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

Essa função é o callback do aplicativo para invocar quando uma mensagem Throttle ou uma mensagem de entrega atrasada for recebida como parte do Weave Reliable Messaging Protocol.

Cada uma dessas mensagens é acompanhada de um valor de tempo (em milissegundos) que significa o tempo para pausar o envio de mensagens do Weave neste ExchangeContext.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] pauseTime
Tempo para pausar a transmissão (em milissegundos).

WRMPSendErrorFunct

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

Essa função é o callback do aplicativo a ser invocado quando um erro é encontrado durante o envio de uma mensagem do Weave.

Detalhes
Parâmetros
[in] ec
Um ponteiro para o objeto ExchangeContext.
[in] err
O tipo WEAVE_ERROR encontrado durante o envio da mensagem.
[in] msgCtxt
Um ponteiro para algum objeto de contexto específico associado à mensagem original que está sendo relatada.

Atributos públicos

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicador boleano que indica se mensagens duplicadas são permitidas para uma determinada troca.

AppState

void * AppState

Ponteiro para o objeto de estado específico do aplicativo.

Desvantagem

WeaveConnection * Con

[SOMENTE LEITURA] Conexão do Weave associada.

EncryptionType

uint8_t EncryptionType

Tipo de criptografia a ser usado ao enviar uma mensagem.

ExchangeId

uint16_t ExchangeId

[SOMENTE LEITURA] ID de troca atribuído.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOMENTE LEITURA] Gerente de troca proprietário.

KeyId

uint16_t KeyId

Chave de criptografia a ser usada ao enviar uma mensagem.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback do aplicativo para a confirmação recebida.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Chamada de retorno do aplicativo para a mensagem de entrega atrasada recebida.

OnKeyError

KeyErrorFunct OnKeyError

Essa função é o callback do aplicativo a ser invocado quando a mensagem de erro de chave é recebida do peering.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Chamada de retorno do aplicativo para erro durante o envio.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback do aplicativo para a mensagem do Throttle recebida.

PeerAddr

IPAddress PeerAddr

[SOMENTE LEITURA] Endereço IP do nó de peering.

PeerIntf

InterfaceId PeerIntf

[SOMENTE LEITURA] Interface de saída a ser usada ao enviar mensagens para o ponto.

Significativo somente para UDP.

PeerNodeId

uint64_t PeerNodeId

[SOMENTE LEITURA] ID do nó de peering.

PeerPort

uint16_t PeerPort

[SOMENTE LEITURA] Porta do nó de peering.

ResponseTimeout

Timeout ResponseTimeout

Tempo máximo de espera pela resposta (em milissegundos). "0" desativa o tempo limite de resposta.

RetransInterval

uint32_t RetransInterval

Tempo entre retransmissões (em milissegundos) "0" desativa as retransmissões.

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

A versão do protocolo de mensagem do ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Configuração do WRMP.

Funções públicas

Cancelar

void Abort(
  void
)

Cancele o contexto do Exchange imediatamente e libere todas as referências a ele.

AddRef

void AddRef(
  void
)

Incremente o contador de referência para o contexto de troca em um.

AutoRequestAck

bool AutoRequestAck() const 

Retorna se uma confirmação será solicitada sempre que uma mensagem for enviada.

CancelRetrans

void CancelRetrans(
  void
)

Cancelar o mecanismo de retransmissão do Trickle.

Fechar

void Close(
  void
)

Feche adequadamente um contexto de troca.

Essa chamada diminui a contagem de referência e libera a troca quando a contagem de referência chega a zero.

EncodeExchHeader

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

Codifique o cabeçalho da troca em um buffer de mensagem.

Detalhes
Parâmetros
[in] exchangeHeader
Um ponteiro para o objeto de cabeçalho do Weave Exchange.
[in] profileId
O identificador do perfil da mensagem do Weave a ser enviada.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] msgBuf
Um ponteiro para o PackageBuffer necessário para a mensagem do Weave.
[in] sendFlags
Sinalizadores definidos pelo aplicativo para a mensagem do Weave que está sendo enviada.
Valores de retorno
WEAVE_ERROR_BUFFER_TOO_SMALL
Se o buffer de mensagem não tiver espaço suficiente para codificar o cabeçalho da troca.
WEAVE_NO_ERROR
Se a codificação da mensagem tiver sido bem-sucedida.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

Retorna se a chave de criptografia associada à troca precisa ser liberada quando a troca for liberada.

GetCurrentRetransmitTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Acessa o tempo limite de retransmissão atual.

Pode ser o tempo limite de retransmissão inicial ou ativo, dependendo se o ExchangeContext tem uma troca de mensagens ativa com o par.

Detalhes
Retornos
o horário de retransmissão atual.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Constrói uma string que descreve o nó de peering e as informações de endereço / conexão associadas.

Detalhes
Parâmetros
[in] buf
Um ponteiro para um buffer em que a string precisa ser gravada. O buffer fornecido deve ter pelo menos o tamanho kGetPeerDescription_MaxLength. Se for fornecido um buffer menor, a string será truncada para caber. A saída vai incluir um caractere de encerramento NUL em todos os casos.
[in] bufSize
O tamanho do buffer apontado por buf.

HandleTrickleMessage

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

Gerencie a mensagem do truque no contexto da troca.

Detalhes
Parâmetros
[in] pktInfo
Um ponteiro para o objeto IPPacketInfo.
[in] msgInfo
Um ponteiro para a estrutura de informações da mensagem do Weave.

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Determine se o colega solicitou a confirmação para pelo menos uma mensagem nesta troca.

Detalhes
Retornos
Retorna "true" se a confirmação for solicitada, caso contrário, será "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Determine se pelo menos uma mensagem foi recebida nesta troca do ponto.

Detalhes
Retornos
Retorna "true" se a mensagem foi recebida; caso contrário, será "false".

IsAckPending

bool IsAckPending(
  void
) const 

Determine se já existe uma confirmação pendente a ser enviada ao par nesta troca.

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determine se o ExchangeContext tem uma WeaveConnection ativa associada.

Detalhes
Retornos
Retorna "true" se a conexão estiver encerrada. Caso contrário, será "false".

IsInitiator

bool IsInitiator(
  void
) const 

Determine se o contexto é o iniciador da troca.

Detalhes
Retornos
Retorna "true" se ele foi o iniciador, ou 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Determine se uma resposta é esperada para as mensagens enviadas nessa troca.

Detalhes
Retornos
Retorna "true" se a resposta for esperada. Caso contrário, "false".

Versão

void Release(
  void
)

Referência de lançamento para este contexto de troca.

Se a contagem for reduzida a um, feche o contexto, redefina todos os callbacks do aplicativo e interrompa todos os timers.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Enviar uma mensagem Common::Null.

Detalhes
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Se não houver PackageBuffers disponíveis.
WEAVE_NO_ERROR
Se o método foi bem-sucedido ou o erro não era crítico.
other
Outro erro crítico retornado por SendMessage().

SendMessage

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

Envie uma mensagem do Weave nesta troca.

Detalhes
Parâmetros
[in] profileId
O identificador do perfil da mensagem do Weave a ser enviada.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] msgBuf
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave.
[in] sendFlags
Sinalizadores definidos pelo aplicativo para a mensagem do Weave que está sendo enviada.
[in] msgCtxt
Um ponteiro para um objeto de contexto específico do aplicativo a ser associado à mensagem enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi passado para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca tiver sido limitado ao usar o protocolo de mensagens confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver uma incompatibilidade na operação de envio específica e na versão suportada do protocolo de mensagens do Weave. Por exemplo, esse erro será gerado se houver uma tentativa de semântica da mensagem confiável do Weave quando a versão do protocolo de mensagens do Weave for V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que foi encerrada.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave enviar com êxito a mensagem para a camada da rede.

SendMessage

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

Envie uma mensagem do Weave nesta troca.

Detalhes
Parâmetros
[in] profileId
O identificador do perfil da mensagem do Weave a ser enviada.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] msgBuf
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave.
[in] sendFlags
Sinalizadores definidos pelo aplicativo para a mensagem do Weave que está sendo enviada.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] msgCtxt
Um ponteiro para um objeto de contexto específico do aplicativo a ser associado à mensagem enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi passado para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca tiver sido limitado ao usar o protocolo de mensagens confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver uma incompatibilidade na operação de envio específica e na versão suportada do protocolo de mensagens do Weave. Por exemplo, esse erro será gerado se houver uma tentativa de semântica da mensagem confiável do Weave quando a versão do protocolo de mensagens do Weave for V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que foi encerrada.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave enviar com êxito a mensagem para a camada da rede.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Defina se uma confirmação precisa ser enviada de volta ao par nesta troca.

Detalhes
Parâmetros
[in] inAckPending
Um Booleano que indica se (verdadeiro) ou não (falso) uma confirmação deve ser enviada de volta em resposta a uma mensagem recebida.

SetAutoReleaseKey

void SetAutoReleaseKey(
  bool autoReleaseKey
)

Defina se a chave de criptografia associada à troca será liberada quando ela for liberada.

Detalhes
Parâmetros
[in] autoReleaseKey
Verdadeiro se a chave de criptografia de mensagens precisar ser liberada automaticamente.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Defina se uma confirmação precisa ser solicitada sempre que uma mensagem é enviada.

Detalhes
Parâmetros
[in] autoReqAck
Um Booleano que indica se uma confirmação deve ou não ser solicitada sempre que uma mensagem for enviada.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Define o bit de sinalização kFlagConnectionClosed.

Essa sinalização é definida quando um WeaveConnection associado a um ExchangeContext é fechado.

Detalhes
Parâmetros
[in] inConnectionClosed
Um booleano que indica se (verdadeiro) ou não (falso) o contexto foi associado a uma conexão.

SetDropAck

void SetDropAck(
  bool inDropAck
)

Defina se o WeaveExchangeManager não deve enviar confirmações para esse contexto.

Apenas para uso interno, de depuração.

Detalhes
Parâmetros
[in] inDropAck
Um booleano que indica se (verdadeiro) ou não (falso) as confirmações não serão enviadas para a troca.

SetInitiator

void SetInitiator(
  bool inInitiator
)

Define o bit de flag kFlagInitiator.

Essa flag é definida pelo nó que inicia uma troca.

Detalhes
Parâmetros
[in] inInitiator
Um booleano que indica se (verdadeiro) ou não (falso) o contexto é o iniciador da troca.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Defina se uma mensagem foi recebida do par nesta troca.

Detalhes
Parâmetros
[in] inMsgRcvdFromPeer
Um booleano que indica se (verdadeiro) ou não (falso) uma mensagem foi recebida do ponto no contexto de troca.

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

Defina se uma confirmação foi solicitada na última mensagem recebida nesta troca.

Detalhes
Parâmetros
[in] inPeerRequestedAck
Um booleano que indica se (verdadeiro) ou não (falso) uma confirmação foi solicitada na última mensagem recebida.

SetResponseExpected

void SetResponseExpected(
  bool inResponseExpected
)

Defina se uma resposta é esperada nesta troca.

Detalhes
Parâmetros
[in] inResponseExpected
Um booleano que indica se (verdadeiro) ou não (falso) uma resposta é esperada nessa troca.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

Defina se a conexão do Weave associada à troca será liberada quando ela for liberada.

Detalhes
Parâmetros
[in] autoReleaseCon
Verdadeiro se a conexão do Weave for liberada automaticamente.

SetupTrickleRetransmit

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

Configure o mecanismo de retransmissão de gotejamento definindo o intervalo e o limite de retransmissão correspondentes.

Detalhes
Parâmetros
[in] retransInterval
O intervalo de retransmissão do algoritmo do Trickle.
[in] threshold
O número máximo de vezes que uma mensagem é retransmitida.
[in] timeout
O tempo máximo de espera antes de cancelar o timer de retransmissão do Trickle.
Retornos
WEAVE_NO_ERROR se a configuração do Trickle tiver sido bem-sucedida. Caso contrário, um INET_ERROR mapeado para um WEAVE_ERROR.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

Retorna se a conexão do Weave associada à troca será liberada quando a troca for liberada.

ShouldDropAck

bool ShouldDropAck(
  void
) const 

Determine se o WeaveExchangeManager não enviará uma confirmação.

Apenas para uso interno, de depuração.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Inicie o mecanismo de timer de retransmissão periódica do algoritmo de retransmissão do Trickle.

Detalhes
Retornos
WEAVE_NO_ERROR se for bem-sucedido, caso contrário, um INET_ERROR mapeado para um WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

Elimine o mecanismo de retransmissão do Trickle cancelando os timers periódicos dentro dele e liberando o buffer de mensagens que contém a mensagem do Weave.

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

Retorna se as mensagens de saída enviadas pela troca precisam ser enviadas da porta UDP local temporária.

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Envie uma mensagem de entrega atrasada para notificar um nó remetente que a mensagem enviada anteriormente passaria por um atraso esperado antes da entrega ao destinatário.

Uma das possíveis causas de atraso nas mensagens antes de serem entregues é quando o nó final do destinatário está inativo. Essa mensagem pode ser gerada por um nó intermediário adequado no caminho de envio que tenha conhecimento suficiente do destinatário para inferir sobre a entrega atrasada. Ao receber essa mensagem, o remetente reajusta os timers de retransmissão para as mensagens que buscam confirmações de retorno.

Detalhes
Parâmetros
[in] pauseTimeMillis
O tempo (em milissegundos) que a mensagem enviada anteriormente deve ser atrasada antes de ser entregue.
[in] delayedNodeId
O identificador de nó do nó de mesmo nível para o qual a entrega da mensagem seria atrasada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi passado para essa API SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver uma incompatibilidade na operação de envio específica e na versão suportada do protocolo de mensagens do Weave. Por exemplo, esse erro será gerado se houver uma tentativa de semântica da mensagem confiável do Weave quando a versão do protocolo de mensagens do Weave for V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que foi encerrada.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave enviar com êxito a mensagem para a camada da rede.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Envie uma mensagem "Acelerar fluxo" ao nó de peering solicitando que limite o envio de mensagens.

Detalhes
Parâmetros
[in] pauseTimeMillis
O tempo (em milissegundos) que o destinatário deve limitar o envio.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
Se um argumento inválido foi passado para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Se esse contexto de troca foi limitado ao usar o protocolo de mensagens confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Se houver uma incompatibilidade na operação de envio específica e na versão do protocolo de mensagens do Weave compatível. Por exemplo, esse erro será gerado se houver uma tentativa de semântica da mensagem confiável do Weave quando a versão do protocolo de mensagens do Weave for V1.
WEAVE_ERROR_NOT_CONNECTED
Se o contexto estava associado a uma conexão que foi encerrada.
WEAVE_ERROR_INCORRECT_STATE
Se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
Se a camada Weave enviou com sucesso a mensagem para a camada da rede.