O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

nl::Weave::ExchangeContext

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

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

Resumo

Ela define os métodos para codificar e comunicar mensagens do Weave em um ExchangeContext em vários mecanismos de transporte, por exemplo, TCP, UDP ou mensagens confiáveis do Weave.

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
}
tipo enumerado
@35{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
tipo enumerado
ConnectionClosedFunct)(ExchangeContext *ec, WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando uma conexão existente do Weave é encerrada.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo de função de tratamento de mensagens de erro de chave.
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 processar 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 que será invocado quando o tempo limite para a retransmissão de uma mensagem enviada expirar.
Timeout typedef
uint32_t
Tipo usado para expressar o tempo limite nesse 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 a solicitou como parte do protocolo de mensagem confiável do Weave.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando uma mensagem de limitação ou mensagem de entrega atrasada é recebida como parte do protocolo de mensagem confiável do Weave.
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 booleano que indica se mensagens duplicadas são permitidas em uma troca específica.
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] Código da troca atribuído.
ExchangeMgr
[SOMENTE LEITURA] Proprietário do Exchange.
KeyId
uint16_t
Chave de criptografia que deve ser usada ao enviar uma mensagem.
OnAckRcvd
Chamada de retorno do aplicativo para 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 uma mensagem de erro importante é recebida do terminal.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback de aplicativo com erro durante o envio.
OnThrottleRcvd
Callback de aplicativo da mensagem Throttle recebida.
PeerAddr
IPAddress
[SOMENTE LEITURA] Endereço IP do nó de peering.
PeerIntf
InterfaceId
[SOMENTE LEITURA] A interface de saída a ser usada ao enviar mensagens para o par.
PeerNodeId
uint64_t
[SOMENTE LEITURA] ID do nó 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
Versão do protocolo de mensagem para ExchangeContext.
mWRMPConfig
Configuração do WRMP.

Funções públicas

Abort(void)
void
Cancela imediatamente o contexto do Exchange e libera todas as referências a ele.
AddRef(void)
void
Incremente o contador de referência para o contexto da troca.
AutoRequestAck() const
bool
Retorna se uma confirmação será solicitada sempre que uma mensagem for enviada.
CancelRetrans(void)
void
Cancele o mecanismo de retransmissão do Trickle.
Close(void)
void
Fechar um contexto de troca
EncodeExchHeader(WeaveExchangeHeader *exchangeHeader, uint32_t profileId, uint8_t msgType, PacketBuffer *msgBuf, uint16_t sendFlags)
Codifique o cabeçalho de troca em um buffer de mensagem.
GetAutoReleaseKey() const
bool
Retorne se a chave de criptografia associada à troca será liberada quando a troca for liberada.
GetCurrentRetransmitTimeout(void)
uint32_t
Define o tempo limite de retransmissão atual.
GetPeerDescription(char *buf, uint32_t bufSize) const
void
Cria 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
Processar mensagens de texto dentro do contexto da troca.
HasPeerRequestedAck(void) const
bool
Determine se o pared solicitou a confirmação de pelo menos uma mensagem nesta troca.
HasRcvdMsgFromPeer(void) const
bool
Determine se pelo menos uma mensagem foi recebida desta troca do par.
IsAckPending(void) const
bool
Determine se já existe uma confirmação pendente para ser enviada ao peer nessa troca.
IsConnectionClosed(void) const
bool
Determine se o ExchangeContext tem um WeaveConnection ativo associado.
IsInitiator(void) const
bool
Determine se o contexto é o iniciador da troca.
IsResponseExpected(void) const
bool
Determine se uma resposta é esperada para mensagens enviadas por essa troca.
Release(void)
void
Referência da versão a esse contexto de troca.
SendCommonNullMessage(void)
Envie 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 peering nessa troca.
SetAutoReleaseKey(bool autoReleaseKey)
void
Defina se a chave de criptografia associada à troca será liberada quando a troca for liberada.
SetAutoRequestAck(bool autoReqAck)
void
Definir se uma confirmação precisa ser solicitada sempre que uma mensagem for enviada.
SetConnectionClosed(bool inConnectionClosed)
void
Defina a 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
Defina a bit de sinalização kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Define se uma mensagem foi recebida do terminal nessa troca.
SetPeerRequestedAck(bool inPeerRequestedAck)
void
Define 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 Weave associada à troca será liberada quando a troca for liberada.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configure o mecanismo de retransmissão de transmissão com o intervalo de retransmissão correspondente e o limite de retransmissão.
ShouldAutoReleaseConnection() const
bool
Retorne se a conexão Weave associada à troca será liberada quando a troca for liberada.
ShouldDropAck(void) const
bool
Determine se o WeaveExchangeManager não deve enviar uma confirmação.
StartTimerT(void)
Inicie o algoritmo de retransmissão periódico do algoritmo do Trickle.
TeardownTrickleRetransmit(void)
void
Para eliminar o mecanismo de retransmissão Trickle, cancele os temporizadores periódicos no Trickle e libere o buffer da mensagem com a mensagem Weave.
UseEphemeralUDPPort(void) const
bool
Retorne se as mensagens de saída enviadas pela troca precisam ser enviadas da porta UDP temporária local.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Enviar uma mensagem de entrega atrasada para notificar um nó do remetente de que a mensagem enviada anteriormente sofreria um atraso esperado antes de ser entregue ao destinatário.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Envie uma mensagem Throttle Flow ao nó de peering solicitando que ele 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 padrão do IPv6 deve ser usada ao enviar mensagens de 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 para 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 de mensagens não deve ser liberado depois do envio.

kSendFlag_RetransmissionTrickle

Usado para indicar o requisito de retransmissões para o Trickle.

kSendFlag_ReuseMessageId

Usado para indicar que o ID da mensagem no cabeçalho da mensagem 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().

FunClosedFunct

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

Essa função é o callback do aplicativo a ser invocado quando uma conexão existente do Weave é 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 informado quando a conexão foi encerrada.

KeyErrorFunct

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

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

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

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 processar 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 que será invocado quando o tempo limite para a retransmissão de uma mensagem enviada expirar.

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

Tempo limite

uint32_t Timeout

Tipo usado para expressar o tempo limite nesse 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 a solicitou como parte do protocolo de mensagem confiável 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 a ser invocado quando uma mensagem de limitação ou mensagem de entrega atrasada é recebida como parte do protocolo de mensagem confiável do Weave.

Cada uma dessas mensagens é acompanhada de um valor de tempo (em milissegundos), que significa a hora de 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 de WEAVE_ERROR que foi encontrado durante o envio da mensagem.
[in] msgCtxt
Um ponteiro para algum objeto de contexto específico associado à mensagem original que está sendo informada.

Atributos públicos

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicador booleano que indica se mensagens duplicadas são permitidas em uma troca específica.

Estado do aplicativo

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.

Código da troca

uint16_t ExchangeId

[SOMENTE LEITURA] Código da troca atribuído.

Troca Exchange

WeaveExchangeManager * ExchangeMgr

[SOMENTE LEITURA] Proprietário do Exchange.

KeyId

uint16_t KeyId

Chave de criptografia que deve ser usada ao enviar uma mensagem.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Chamada de retorno do aplicativo para 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 uma mensagem de erro importante é recebida do terminal.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Callback de aplicativo com erro durante o envio.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback de aplicativo da mensagem Throttle recebida.

Peering

IPAddress PeerAddr

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

PeeringIntf

InterfaceId PeerIntf

[SOMENTE LEITURA] A interface de saída a ser usada ao enviar mensagens para o par.

Só é importante para UDP.

ID de peering

uint64_t PeerNodeId

[SOMENTE LEITURA] ID do nó do nó de peering.

Porta de peering

uint16_t PeerPort

[SOMENTE LEITURA] Porta do nó de peering.

Tempo limite de resposta

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

Versão do protocolo de mensagem para ExchangeContext.

mWRMPConfig

WRMPConfig mWRMPConfig

Configuração do WRMP.

Funções públicas

Cancelar

void Abort(
  void
)

Cancela imediatamente o contexto do Exchange e libera todas as referências a ele.

Adicionar referência

void AddRef(
  void
)

Incremente o contador de referência para o contexto da troca.

AutoRequestAck

bool AutoRequestAck() const 

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

CancelarRetrans

void CancelRetrans(
  void
)

Cancele o mecanismo de retransmissão do Trickle.

Fechar

void Close(
  void
)

Fechar 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 de 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 de 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
Sinalizações definidas pelo aplicativo para a mensagem do Weave 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 foi bem-sucedida.

GetAutoReleaseKey

bool GetAutoReleaseKey() const 

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

GetCurrentRebroadcastTimeout

uint32_t GetCurrentRetransmitTimeout(
  void
)

Define o tempo limite de retransmissão atual.

Pode ser o tempo limite de retransmissão inicial ou ativo com base no fato de o ExchangeContext ter uma troca de mensagens ativa com o par.

Detalhes
Retorna
a hora de retransmissão atual.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  uint32_t bufSize
) const 

Cria 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 ser pelo menos tão grande quanto o kGetPeerDescription_MaxLength. Se um buffer menor for fornecido, a string será truncada. A saída 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
)

Processar mensagens de texto dentro do contexto da troca.

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

HasPeerRequestedAck

bool HasPeerRequestedAck(
  void
) const 

Determine se o pared solicitou a confirmação de pelo menos uma mensagem nesta troca.

Detalhes
Retorna
Retorna 'true' se o reconhecimento for solicitado, caso contrário, 'false'.

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

Determine se pelo menos uma mensagem foi recebida desta troca do par.

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

IsAckPendente

bool IsAckPending(
  void
) const 

Determine se já existe uma confirmação pendente para ser enviada ao peer nessa troca.

IsConnectionClosed.

bool IsConnectionClosed(
  void
) const 

Determine se o ExchangeContext tem um WeaveConnection ativo associado.

Detalhes
Retorna
Retorna 'true' se a conexão for fechada, caso contrário, 'false'.

Iniciador

bool IsInitiator(
  void
) const 

Determine se o contexto é o iniciador da troca.

Detalhes
Retorna
Retorna 'true' se for o iniciador, caso contrário, 'false'.

IsResponseExpected

bool IsResponseExpected(
  void
) const 

Determine se uma resposta é esperada para mensagens enviadas por essa troca.

Detalhes
Retorna
Retorna 'true' se a resposta for esperada, ou 'false'.

Versão

void Release(
  void
)

Referência da versão a esse contexto de troca.

Se a contagem for baixa para um, feche o contexto, redefina todos os callbacks de aplicativos e interrompa todos os timers.

SendCommonNullMessage

WEAVE_ERROR SendCommonNullMessage(
  void
)

Envie uma mensagem Common::Null.

Detalhes
Valores de retorno
WEAVE_ERROR_NO_MEMORY
Se não houver PacotesBuffers disponíveis.
WEAVE_NO_ERROR
Se o método foi concluído ou o erro não foi crítico.
other
Outro erro crítico retornado por SendMessage().

Mensagem de envio

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 de 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
Sinalizações definidas pelo aplicativo para a mensagem do Weave sendo enviada.
[in] msgCtxt
Um ponteiro para um objeto de contexto específico do aplicativo a ser associado com a mensagem que está sendo enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi transmitido para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca foi limitado ao usar o protocolo de mensagem confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade na operação de envio específica e na versão do protocolo de mensagem do Weave compatível. Por exemplo, o erro será gerado se a tentativa de semântica de mensagens confiáveis do Weave ocorrer 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 de troca estiver incorreto.
WEAVE_NO_ERROR
se a camada Weave tiver enviado a mensagem para a camada de rede.

Mensagem de envio

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 de 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
Sinalizações definidas pelo aplicativo para a mensagem do Weave 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 com a mensagem que está sendo enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi transmitido para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca foi limitado ao usar o protocolo de mensagem confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade na operação de envio específica e na versão do protocolo de mensagem do Weave compatível. Por exemplo, o erro será gerado se a tentativa de semântica de mensagens confiáveis do Weave ocorrer 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 de troca estiver incorreto.
WEAVE_NO_ERROR
se a camada Weave tiver enviado a mensagem para a camada de rede.

SetAckPendente

void SetAckPending(
  bool inAckPending
)

Defina se uma confirmação precisa ser enviada de volta ao peering nessa troca.

Detalhes
Parâmetros
[in] inAckPending
Um booleano indicando se (verdadeiro) ou não (falso) deve ser enviado de volta em resposta a uma mensagem recebida.

Chave de liberação automática

void SetAutoReleaseKey(
  bool autoReleaseKey
)

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

Detalhes
Parâmetros
[in] autoReleaseKey
"True" se a chave de criptografia de mensagens for liberada automaticamente.

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Definir se uma confirmação precisa ser solicitada sempre que uma mensagem for enviada.

Detalhes
Parâmetros
[in] autoReqAck
Um booleano indicando se uma confirmação precisa ser solicitada sempre que uma mensagem é enviada.

SetConnectionClosed.

void SetConnectionClosed(
  bool inConnectionClosed
)

Defina a bit de sinalização kFlagConnectionClosed.

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

Detalhes
Parâmetros
[in] inConnectionClosed
Um booleano indicando se (true) ou não (false) 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.

Somente para uso interno de depuração.

Detalhes
Parâmetros
[in] inDropAck
Um booleano indicando se (true) ou não (false) as confirmações não devem ser enviadas para a troca.

Iniciador

void SetInitiator(
  bool inInitiator
)

Defina a bit de sinalização kFlagInitiator.

Essa sinalização é definida pelo nó que inicia a troca.

Detalhes
Parâmetros
[in] inInitiator
Um booleano indicando se (true) ou não (false) o contexto é o iniciador da troca.

SetMsgRcvdFromPeer

void SetMsgRcvdFromPeer(
  bool inMsgRcvdFromPeer
)

Define se uma mensagem foi recebida do terminal nessa troca.

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

SetPeerRequestedAck

void SetPeerRequestedAck(
  bool inPeerRequestedAck
)

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

Detalhes
Parâmetros
[in] inPeerRequestedAck
Um booleano indicando 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 valor booleano que indica se (verdadeiro) ou não (falso) é uma resposta esperada nesta troca.

SetShouldAutoReleaseConnection (link em inglês)

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

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

SetupTrickleRebroadcast

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

Configure o mecanismo de retransmissão de transmissão com o intervalo de retransmissão correspondente e o limite de retransmissão.

Detalhes
Parâmetros
[in] retransInterval
O intervalo de retransmissão do algoritmo de retransmissão 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.
Retorna
WEAVE_NO_ERROR se a configuração do Trickle tiver sido bem-sucedida, caso contrário, um INET_ERROR mapeado em um WEAVE_ERROR.

DeveAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

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

MustDropAck

bool ShouldDropAck(
  void
) const 

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

Somente para uso interno de depuração.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

Inicie o algoritmo de retransmissão periódico do algoritmo do Trickle.

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

TeardownTrickleRebroadcast (em inglês)

void TeardownTrickleRetransmit(
  void
)

Para eliminar o mecanismo de retransmissão Trickle, cancele os temporizadores periódicos no Trickle e libere o buffer da mensagem com a mensagem Weave.

UsePortEUDPemeral

bool UseEphemeralUDPPort(
  void
) const 

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

WRMPFlushAcks

WEAVE_ERROR WRMPFlushAcks(
  void
)

WRMPSendDelayedDelivery

WEAVE_ERROR WRMPSendDelayedDelivery(
  uint32_t PauseTimeMillis,
  uint64_t DelayedNodeId
)

Enviar uma mensagem de entrega atrasada para notificar um nó do remetente de que a mensagem enviada anteriormente sofreria um atraso esperado antes de ser entregue ao destinatário.

Uma das possíveis causas do atraso nas mensagens antes da entrega é 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 tem conhecimento suficiente do destinatário para inferir sobre a entrega atrasada. Ao receber essa mensagem, o remetente reajusta os temporizadores de retransmissão de mensagens que buscam reconhecimentos.

Detalhes
Parâmetros
[in] pauseTimeMillis
É o tempo (em milissegundos) de atraso previsto para a mensagem enviada antes de ela ser entregue.
[in] delayedNodeId
O identificador do nó do peering que receberá a entrega principal.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido foi transmitido para essa API SendMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade na operação de envio específica e na versão do protocolo de mensagem do Weave compatível. Por exemplo, o erro será gerado se a tentativa de semântica de mensagens confiáveis do Weave ocorrer 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 de troca estiver incorreto.
WEAVE_NO_ERROR
se a camada Weave tiver enviado a mensagem para a camada de rede.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Envie uma mensagem Throttle Flow ao nó de peering solicitando que ele limite o envio de mensagens.

Detalhes
Parâmetros
[in] pauseTimeMillis
É o tempo (em milissegundos) em que o destinatário limita o envio.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
Se um argumento inválido foi transmitido para essa API SendMessage.
WEAVE_ERROR_SEND_THROTTLED
Se esse contexto de troca for limitado ao usar o protocolo de mensagens confiável do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
Se houver incompatibilidade na operação de envio específica e na versão do protocolo de mensagem do Weave compatível. Por exemplo, o erro será gerado se a tentativa de semântica de mensagens confiáveis do Weave ocorrer 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 de troca estiver incorreto.
WEAVE_NO_ERROR
Se a camada Weave enviou a mensagem para a camada de rede.