nl::Weave::ExchangeContext

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

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

Resumo

Ele 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 Trust 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 retorno de chamada do aplicativo a ser invocado quando uma conexão do Weave for encerrada.
KeyErrorFunct)(ExchangeContext *ec, WEAVE_ERROR keyErr) typedef
void(*
Tipo da função de tratamento de mensagens de erro importantes.
MessageReceiveFunct)(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload) typedef
void(*
Essa função é o retorno de chamada do aplicativo para lidar com uma mensagem Weave recebida.
ResponseTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Essa função é o callback do aplicativo a ser invocado quando o tempo limite do recebimento de uma mensagem de resposta tiver expirado.
RetransmissionTimeoutFunct)(ExchangeContext *ec) typedef
void(*
Esta função é o retorno de chamada do aplicativo a ser invocado quando o tempo limite para a retransmissão de uma mensagem enviada anteriormente expirar.
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 retorno de chamada do aplicativo a ser invocado quando uma confirmação é recebida para uma mensagem do Weave que solicitou uma como parte do protocolo Weave Continuous Messaging.
WRMPPauseRcvdFunct)(ExchangeContext *ec, uint32_t pauseTime) typedef
void(*
Essa função é o retorno de chamada do aplicativo a ser invocado quando uma mensagem de limitação ou entrega atrasada é recebida como parte do protocolo de mensagens confiáveis do Weave.
WRMPSendErrorFunct)(ExchangeContext *ec, WEAVE_ERROR err, void *msgCtxt) typedef
void(*
Essa função é o retorno de chamada do aplicativo a ser invocado quando um erro for encontrado ao enviar uma mensagem do Weave.

Atributos públicos

AllowDuplicateMsgs
bool
Indicador booleano que mostra se mensagens duplicadas são permitidas em 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 da troca atribuído.
ExchangeMgr
[SOMENTE LEITURA] Proprietário do gerenciador de troca.
KeyId
uint16_t
Chave de criptografia a ser usada ao enviar uma mensagem.
OnAckRcvd
Callback do aplicativo para confirmação recebida.
OnConnectionClosed
OnDDRcvd
Callback 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 principal for recebida do peering.
OnMessageReceived
OnResponseTimeout
OnRetransmissionTimeout
OnSendError
Callback do aplicativo para erro durante o envio.
OnThrottleRcvd
Callback do aplicativo para a mensagem 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ó do 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 da resposta.
RetransInterval
uint32_t
Tempo entre as retransmissões (em milissegundos); 0 desativa as retransmissões.
mMsgProtocolVersion
uint16_t
Versão do protocolo de mensagens para o 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 da troca em um.
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
Encerre 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
Retorne 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
Processe a mensagem do truque no contexto de troca.
HasPeerRequestedAck(void) const
bool
Determine se o peering solicitou confirmação para pelo menos uma mensagem nesta troca.
HasRcvdMsgFromPeer(void) const
bool
Determine se pelo menos uma mensagem foi recebida nesta troca do peering.
IsAckPending(void) const
bool
Determine se já há uma confirmação pendente a ser enviada ao peering nesta troca.
IsConnectionClosed(void) const
bool
Determine se ExchangeContext tem um WeaveConnection ativo associado.
IsInitiator(void) const
bool
Determine se o contexto é o iniciador da troca.
IsResponseExpected(void) const
bool
Determine se é esperada uma resposta para as mensagens enviadas por essa troca.
Release(void)
void
Referência de lançamento 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 semelhante nesta troca.
SetAutoReleaseKey(bool autoReleaseKey)
void
Defina se a chave de criptografia associada à troca precisa ser liberada quando a troca for liberada.
SetAutoRequestAck(bool autoReqAck)
void
Definir se uma confirmação deve ser solicitada sempre que uma mensagem é enviada.
SetConnectionClosed(bool inConnectionClosed)
void
Defina o bit de sinalização kFlagConnectionClosed.
SetDropAck(bool inDropAck)
void
Defina se o WeaveExchangeManager não deve enviar confirmações para este contexto.
SetInitiator(bool inInitiator)
void
Defina o bit de sinalização kFlagInitiator.
SetMsgRcvdFromPeer(bool inMsgRcvdFromPeer)
void
Defina se uma mensagem foi recebida do peering 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 Weave associada à troca precisa ser liberada quando a troca for liberada.
SetupTrickleRetransmit(uint32_t retransInterval, uint8_t threshold, uint32_t timeout)
Configure o mecanismo de retransmissão de retransmissão definindo o intervalo de retransmissão correspondente e o limite de retransmissão.
ShouldAutoReleaseConnection() const
bool
Retorne se a conexão do Weave associada à troca precisa ser liberada quando a troca for liberada.
ShouldDropAck(void) const
bool
Determine se o WeaveExchangeManager não deve enviar uma confirmação.
StartTimerT(void)
Inicia o mecanismo de timer do algoritmo de retransmissão periódica do Trickle.
TeardownTrickleRetransmit(void)
void
Eliminar o mecanismo de retransmissão do Trickle cancelando os timers periódicos no Trickle e liberando o buffer de mensagem que contém a mensagem do Weave.
UseEphemeralUDPPort(void) const
bool
Retorne se as mensagens enviadas pela troca precisam ser enviadas pela porta UDP temporária local.
WRMPFlushAcks(void)
WRMPSendDelayedDelivery(uint32_t PauseTimeMillis, uint64_t DelayedNodeId)
Envie uma mensagem de entrega atrasada para notificar um nó do remetente de que a mensagem enviada anteriormente pode passar por um atraso esperado antes de ser entregue ao destinatário.
WRMPSendThrottleFlow(uint32_t PauseTimeMillis)
Enviar uma mensagem de fluxo de limite para o 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 do 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 adiado.

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

Suprima 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 após o envio.

kSendFlag_RetransmissionTrickle

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

kSendFlag_ReuseMessageId

Usado para indicar que o ID 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

Comprimento 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 retorno de chamada do aplicativo a ser invocado quando uma conexão do Weave 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 informado quando a conexão foi encerrada.

KeyErrorFunct

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

Tipo da função de tratamento de mensagens de erro importantes.

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 retorno de chamada do aplicativo para lidar com uma mensagem 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 do recebimento de uma mensagem de resposta tiver expirado.

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

RetransmissionTimeoutFunct

void(* RetransmissionTimeoutFunct)(ExchangeContext *ec)

Esta função é o retorno de chamada do aplicativo a ser invocado quando o tempo limite para a retransmissão de uma mensagem enviada anteriormente expirar.

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 retorno de chamada do aplicativo a ser invocado quando uma confirmação é recebida para uma mensagem do Weave que solicitou uma como parte do protocolo Weave Continuous Messaging.

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 retorno de chamada do aplicativo a ser invocado quando uma mensagem de limitação ou entrega atrasada é recebida como parte do protocolo de mensagens confiáveis do Weave.

Cada uma dessas mensagens é acompanhada de um valor de tempo (em milissegundos) que indica o momento para pausar o envio de mensagens do Weave no 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 retorno de chamada do aplicativo a ser invocado quando um erro for encontrado ao enviar 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 informada.

Atributos públicos

AllowDuplicateMsgs

bool AllowDuplicateMsgs

Indicador booleano que mostra se mensagens duplicadas são permitidas em 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 da troca atribuído.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOMENTE LEITURA] Proprietário do gerenciador de troca.

KeyId

uint16_t KeyId

Chave de criptografia a ser usada ao enviar uma mensagem.

OnAckRcvd

WRMPAckRcvdFunct OnAckRcvd

Callback do aplicativo para confirmação recebida.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnDDRcvd

WRMPPauseRcvdFunct OnDDRcvd

Callback 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 principal for recebida do peering.

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnResponseTimeout

ResponseTimeoutFunct OnResponseTimeout

OnRetransmissionTimeout

RetransmissionTimeoutFunct OnRetransmissionTimeout

OnSendError

WRMPSendErrorFunct OnSendError

Callback do aplicativo para erro durante o envio.

OnThrottleRcvd

WRMPPauseRcvdFunct OnThrottleRcvd

Callback do aplicativo para a mensagem 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.

Isso só é significativo para UDP.

PeerNodeId

uint64_t PeerNodeId

[SOMENTE LEITURA] ID do nó do 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 da resposta.

RetransInterval

uint32_t RetransInterval

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

mMsgProtocolVersion

uint16_t mMsgProtocolVersion

Versão do protocolo de mensagens para o 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 da troca em um.

AutoRequestAck

bool AutoRequestAck() const 

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

CancelRetrans

void CancelRetrans(
  void
)

Cancele o mecanismo de retransmissão do Trickle.

Fechar

void Close(
  void
)

Encerre um contexto de troca.

Essa chamada diminui a contagem de referência e libera a troca quando ela 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 de perfil da mensagem 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 Weave.
[in] sendFlags
Sinalizações definidas pelo aplicativo para a mensagem 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 

Retorne 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.

Esse tempo pode ser o tempo limite inicial ou de retransmissão ativa dependendo do fato de ExchangeContext ter uma troca de mensagens ativa com seu peering.

Detalhes
Retorna
e o tempo 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 no qual a string precisa ser gravada. O buffer fornecido deve ter pelo menos o tamanho de kGetPeerDescription_MaxLength. Se um buffer menor for fornecido, a string será truncada para caber. A saída incluirá um caractere de encerramento NUL em todos os casos.
[in] bufSize
O tamanho do buffer apontado pelo buf.

HandleTrickleMessage

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

Processe a mensagem do truque no contexto de 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 peering solicitou confirmação para pelo menos uma mensagem nesta troca.

Detalhes
Retorna
Retorna "true" se a confirmação for solicitada. Caso contrário, retorna "false".

HasRcvdMsgFromPeer

bool HasRcvdMsgFromPeer(
  void
) const 

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

Detalhes
Retorna
Retorna "true" se a mensagem foi recebida. Caso contrário, retorna "false".

IsAckPending

bool IsAckPending(
  void
) const 

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

IsConnectionClosed

bool IsConnectionClosed(
  void
) const 

Determine se ExchangeContext tem um WeaveConnection ativo associado.

Detalhes
Retorna
Retorna "true" se a conexão for encerrada. Caso contrário, retorna "false".

IsInitiator

bool IsInitiator(
  void
) const 

Determine se o contexto é o iniciador da troca.

Detalhes
Retorna
Retorna "true" se for o iniciador. Caso contrário, retorna "false".

IsResponseExpected

bool IsResponseExpected(
  void
) const 

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

Detalhes
Retorna
Retorna "true" se a resposta era esperada. Caso contrário, retorna "false".

Versão

void Release(
  void
)

Referência de lançamento a esse contexto de troca.

Se a contagem for até 1, feche o contexto, redefina todos os callbacks do aplicativo 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 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 de perfil da mensagem Weave a ser enviada.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] msgBuf
Um ponteiro para o objeto PacketBuffer que contém a mensagem Weave.
[in] sendFlags
Sinalizações definidas pelo aplicativo para a mensagem Weave que está sendo enviada.
[in] msgCtxt
Um ponteiro para um objeto de contexto específico do aplicativo a ser associado à mensagem que está sendo enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido tiver sido passado para essa API SubmitMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca tiver sido limitado ao usar o protocolo de mensagens confiáveis do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade entre a operação de envio específica e a versão do protocolo de mensagem do Weave compatível. Por exemplo, esse erro seria gerado se a semântica do Weave Trust Messaging estivesse sendo usada quando a versão do protocolo de mensagens do Weave fosse V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que está encerrada agora.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave tiver enviado a mensagem para a camada de 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 de perfil da mensagem Weave a ser enviada.
[in] msgType
O tipo de mensagem do perfil correspondente.
[in] msgBuf
Um ponteiro para o objeto PacketBuffer que contém a mensagem Weave.
[in] sendFlags
Sinalizações definidas pelo aplicativo para a mensagem 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 que está sendo enviada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido tiver sido passado para essa API SubmitMessage.
WEAVE_ERROR_SEND_THROTTLED
se esse contexto de troca tiver sido limitado ao usar o protocolo de mensagens confiáveis do Weave.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade entre a operação de envio específica e a versão do protocolo de mensagem do Weave compatível. Por exemplo, esse erro seria gerado se a semântica do Weave Trust Messaging estivesse sendo usada quando a versão do protocolo de mensagens do Weave fosse V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que está encerrada agora.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave tiver enviado a mensagem para a camada de rede.

SetAckPending

void SetAckPending(
  bool inAckPending
)

Defina se uma confirmação precisa ser enviada de volta ao semelhante 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 precisa ser liberada quando a troca for liberada.

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

SetAutoRequestAck

void SetAutoRequestAck(
  bool autoReqAck
)

Definir se uma confirmação deve 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 é enviada.

SetConnectionClosed

void SetConnectionClosed(
  bool inConnectionClosed
)

Defina o bit de sinalização kFlagConnectionClosed.

Essa sinalização é definida quando uma WeaveConnection associada a um ExchangeContext é fechada.

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 este contexto.

Para uso interno, somente para depuração.

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

SetInitiator

void SetInitiator(
  bool inInitiator
)

Defina o bit de sinalização kFlagInitiator.

Essa sinalização é 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 peering nesta troca.

Detalhes
Parâmetros
[in] inMsgRcvdFromPeer
Um booleano que indica se (verdadeiro) ou não (falso) uma mensagem foi recebida do peering neste 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 nesta troca.

SetShouldAutoReleaseConnection

void SetShouldAutoReleaseConnection(
  bool autoReleaseCon
)

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

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

SetupTrickleRetransmit

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

Configure o mecanismo de retransmissão de retransmissão definindo 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 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.
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.

ShouldAutoReleaseConnection

bool ShouldAutoReleaseConnection() const 

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

ShouldDropAck

bool ShouldDropAck(
  void
) const 

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

Para uso interno, somente para depuração.

StartTimerT

WEAVE_ERROR StartTimerT(
  void
)

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

Detalhes
Retorna
WEAVE_NO_ERROR em caso de êxito, caso contrário, INET_ERROR mapeado em WEAVE_ERROR.

TeardownTrickleRetransmit

void TeardownTrickleRetransmit(
  void
)

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

UseEphemeralUDPPort

bool UseEphemeralUDPPort(
  void
) const 

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

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ó do remetente de que a mensagem enviada anteriormente pode passar por um atraso esperado antes de ser entregue ao destinatário.

Uma das possíveis causas para o atraso das mensagens antes de serem entregues é quando o nó final do destinatário está com sono. Essa mensagem pode ter sido gerada por um nó intermediário adequado no caminho de envio com conhecimento suficiente do destinatário para inferir sobre o atraso na entrega. Ao receber essa mensagem, o remetente ajustava novamente os timers de retransmissão para mensagens que buscam confirmações.

Detalhes
Parâmetros
[in] pauseTimeMillis
O tempo (em milissegundos) que se espera que a mensagem enviada anteriormente seja entregue.
[in] delayedNodeId
O identificador do nó do peering para o qual a entrega da mensagem seria atrasada.
Valores de retorno
WEAVE_ERROR_INVALID_ARGUMENT
se um argumento inválido tiver sido passado para essa API SubmitMessage.
WEAVE_ERROR_WRONG_MSG_VERSION_FOR_EXCHANGE
se houver incompatibilidade entre a operação de envio específica e a versão do protocolo de mensagem do Weave compatível. Por exemplo, esse erro seria gerado se a semântica do Weave Trust Messaging estivesse sendo usada quando a versão do protocolo de mensagens do Weave fosse V1.
WEAVE_ERROR_NOT_CONNECTED
se o contexto estava associado a uma conexão que está encerrada agora.
WEAVE_ERROR_INCORRECT_STATE
se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
se a camada do Weave tiver enviado a mensagem para a camada de rede.

WRMPSendThrottleFlow

WEAVE_ERROR WRMPSendThrottleFlow(
  uint32_t PauseTimeMillis
)

Enviar uma mensagem de fluxo de limite para o nó de peering solicitando que ele 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 tiver sido passado para essa API SubmitMessage.
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 não houver correspondência entre a operação de envio específica e a versão do protocolo de mensagem Weave compatível. Por exemplo, esse erro seria gerado se a semântica do Weave Trust Messaging estivesse sendo usada quando a versão do protocolo de mensagens do Weave fosse V1.
WEAVE_ERROR_NOT_CONNECTED
Se o contexto estava associado a uma conexão que está encerrada agora.
WEAVE_ERROR_INCORRECT_STATE
Se o estado do contexto da troca estiver incorreto.
WEAVE_NO_ERROR
Se a camada do Weave enviar a mensagem com êxito para a camada de rede.