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

nl::Weave::WeaveMessageLayer

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

É a definição da classe WeaveMessageLayer, que gerencia a comunicação com outros nós do Weave.

Resumo

Ele emprega um dos vários endpoints InetLayer para estabelecer um canal de comunicação com outros nós do Weave.

Construtores e destrutores

WeaveMessageLayer(void)
O construtor da camada de mensagem do Weave.

Tipos públicos

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Essa função é o callback da camada superior para relatar um erro durante o processamento de uma conexão TCP de entrada.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Esta função é invocada para remover um callback.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Essa função é o callback da camada superior para lidar com uma conexão TCP de entrada.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Essa função é o callback do aplicativo para informar a mudança da atividade da camada da mensagem.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Essa função é o callback da camada superior que é invocado ao receber uma mensagem do Weave por UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Essa função é o callback da camada superior invocado ao encontrar um erro.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
tipo enumerado
O estado de WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Esta função é o callback da camada superior que é invocado ao receber um pacote em túnel sobre um túnel UDP local.

Atributos públicos

AppState
void *
Um ponteiro para um objeto de estado específico do aplicativo.
ExchangeMgr
[SOMENTE LEITURA] O objeto WeaveExchangeManager associado.
FabricState
[SOMENTE LEITURA] O objeto WeaveFabricState associado.
IncomingConIdleTimeout
uint32_t
Tempo limite de inatividade padrão (em milissegundos) para conexões de entrada.
Inet
InetLayer *
[SOMENTE LEITURA] O objeto InetLayer associado.
IsListening
bool
[SOMENTE LEITURA] Verdadeiro se estiver detectando conexões/mensagens recebidas. Caso contrário, é falso.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[SOMENTE LEITURA] O objeto WeaveSecurityManager associado.
State
uint8_t
[SOMENTE LEITURA] O estado do objeto WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Interna e somente para depuração: quando definida, WeaveMessageLayer descarta a mensagem e retorna.

Funções públicas

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Feche todos os endpoints TCP e UDP abertos.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Crie um WeaveConnectionTunnel acoplando duas WeaveConnections especificadas.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodificar um cabeçalho de camada do Weave Message de uma mensagem recebida do Weave.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Codifique um cabeçalho WeaveMessageLayer em um PackageBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Codifique um cabeçalho da camada de mensagem do Weave em um PackageBuffer.
EphemeralUDPPortEnabled(void) const
bool
Verifique se as trocas de UDP Weave iniciadas localmente devem ser enviadas de uma porta de origem UDP temporária.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Descubra o número de WeaveConnections em uso e o tamanho do pool.
IPv4ListenEnabled(void) const
bool
Verifique se a WeaveMessageLayer está configurada para detectar as comunicações de entrada por IPv4.
IPv6ListenEnabled(void) const
bool
Verifique se a WeaveMessageLayer está configurada para detectar as comunicações de entrada por IPv4.
Init(InitContext *context)
Inicialize o objeto da camada de mensagens do Weave.
IsBoundToLocalIPv4Address(void) const
bool
Verifique se a WeaveMessageLayer está vinculada a um endereço IPv4 local.
IsBoundToLocalIPv6Address(void) const
bool
Verifique se a WeaveMessageLayer está vinculada a um endereço IPv6 local.
IsMessageLayerActive(void)
bool
NewConnection(void)
Crie um novo objeto WeaveConnection a partir de um pool.
NewConnectionTunnel(void)
Crie um novo objeto WeaveConnectionTunnel de um pool.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Atualize os endpoints InetLayer com base no estado atual das interfaces de rede do sistema.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Função para enviar um pacote encapsulado por um túnel UDP local.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Defina um gerenciador de aplicativo que será chamado sempre que a atividade da camada da mensagem mudar.
SetTCPListenEnabled(bool val)
void
Ative ou desative a detecção de conexões TCP de entrada na WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Ative ou desative a detecção de mensagens UDP de entrada no WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
Encerre o WeaveMessageLayer.
TCPListenEnabled(void) const
bool
Verifique se a WeaveMessageLayer está configurada para detectar as conexões TCP de entrada.
UDPListenEnabled(void) const
bool
Verifique se a WeaveMessageLayer está configurada para detectar mensagens UDP de entrada.
UnsecuredListenEnabled(void) const
bool
Ative ou desative a inicialização de trocas de UDP Weave de uma porta de origem UDP temporária.

Funções estáticas públicas

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Recebe o tamanho máximo do payload do Weave para uma configuração de mensagem e o PackageBuffer fornecido.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Cria uma string que descreve um nó de peering e as informações de endereço / conexão associadas.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Cria uma string que descreve um nó de peering com base nas informações associadas a uma mensagem recebida do peering.

Classes

nl::Weave::WeaveMessageLayer::InitContext

É a definição da classe InitContext.

Tipos públicos

AcceptErrorFunct

void(* AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err)

Essa função é o callback da camada superior para relatar um erro durante o processamento de uma conexão TCP de entrada.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] err
O WEAVE_ERROR encontrado ao processar uma conexão TCP de entrada.

CallbackCallbackFunct

void(* CallbackRemovedFunct)(void *listenerState)

Esta função é invocada para remover um callback.

Detalhes
Parâmetros
[in] listenerState
Um ponteiro para o objeto de estado do app.

ConnectionReceiveFunct

void(* ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con)

Essa função é o callback da camada superior para lidar com uma conexão TCP de entrada.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] con
Um ponteiro para o objeto WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Essa função é o callback do aplicativo para informar a mudança da atividade da camada da mensagem.

A camada de mensagens é considerada ativa quando há pelo menos uma troca aberta ou uma solicitação pendente de sincronização de contador de mensagens.

Detalhes
Parâmetros
[in] messageLayerIsActive
Um valor booleano indicando se a camada de mensagens está ativa ou não.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload)

Essa função é o callback da camada superior que é invocado ao receber uma mensagem do Weave por UDP.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Mensagem do ponteiro para PackageBuffer que contém o pacote em túnel recebido.

FunErrorFunct

void(* ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo)

Essa função é o callback da camada superior invocado ao encontrar um erro.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] err
O WEAVE_ERROR encontrado ao receber dados.
[in] pktInfo
Um ponteiro somente leitura para o objeto IPPacketInfo.

Estado

 State

O estado de WeaveMessageLayer.

Propriedades
kState_Initialized

Estado quando a WeaveMessageLayer é inicializada.

kState_Initializing

Estado quando a WeaveMessageLayer está em processo de inicialização.

kState_NotInitialized

Estado quando a WeaveMessageLayer não é inicializada.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload)

Esta função é o callback da camada superior que é invocado ao receber um pacote em túnel sobre um túnel UDP local.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] payload
Mensagem do ponteiro para PackageBuffer que contém o pacote em túnel recebido.

Atributos públicos

Estado do app

void * AppState

Um ponteiro para um objeto de estado específico do aplicativo.

Troca de câmbio

WeaveExchangeManager * ExchangeMgr

[SOMENTE LEITURA] O objeto WeaveExchangeManager associado.

Fabricado

WeaveFabricState * FabricState

[SOMENTE LEITURA] O objeto WeaveFabricState associado.

RecebimentoIdIdleTimeout

uint32_t IncomingConIdleTimeout

Tempo limite de inatividade padrão (em milissegundos) para conexões de entrada.

Inet

InetLayer * Inet

[SOMENTE LEITURA] O objeto InetLayer associado.

Ouvir

bool IsListening

[SOMENTE LEITURA] Verdadeiro se estiver detectando conexões/mensagens recebidas. Caso contrário, é falso.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

Gerente de segurança

WeaveSecurityManager * SecurityMgr

[SOMENTE LEITURA] O objeto WeaveSecurityManager associado.

Estado

uint8_t State

[SOMENTE LEITURA] O estado do objeto WeaveMessageLayer.

Camada do sistema

System::Layer * SystemLayer

Mensagem móvel

bool mDropMessage

Interna e somente para depuração: quando definida, WeaveMessageLayer descarta a mensagem e retorna.

Funções públicas

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

Fechar Endpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Feche todos os endpoints TCP e UDP abertos.

Cancele os WeaveConnections abertos e encerre todos os objetos WeaveConnectionTunnel abertos.

Veja também:
Shutdown().

Criar túnel

WEAVE_ERROR CreateTunnel(
  WeaveConnectionTunnel **tunPtr,
  WeaveConnection & conOne,
  WeaveConnection & conTwo,
  uint32_t inactivityTimeoutMS
)

Crie um WeaveConnectionTunnel acoplando duas WeaveConnections especificadas.

Se a criação for bem-sucedida, os TCPEndPoints correspondentes aos objetos WeaveConnection do componente serão entregues ao WeaveConnectionTunnel. Caso contrário, os WeaveConnections serão fechados.

Detalhes
Parâmetros
[out] tunPtr
Um ponteiro para ponteiro de um objeto WeaveConnectionTunnel.
[in] conOne
Uma referência ao primeiro objeto WeaveConnection.
[in] conTwo
Uma referência ao segundo objeto WeaveConnection.
[in] inactivityTimeoutMS
O tempo máximo em milissegundos em que o túnel de conexão do Weave pode estar inativo.
Valores de retorno
WEAVE_NO_ERROR
sobre a criação do WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se o objeto WeaveConnection do componente WeaveConnectionTunnel não está no estado correto.
WEAVE_ERROR_NO_MEMORY
se não for possível criar um novo objeto WeaveConnectionTunnel.

DecodeHeader

WEAVE_ERROR DecodeHeader(
  PacketBuffer *msgBuf,
  WeaveMessageInfo *msgInfo,
  uint8_t **payloadStart
)

Decodificar um cabeçalho de camada do Weave Message de uma mensagem recebida do Weave.

Detalhes
Parâmetros
[in] msgBuf
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que receberá informações sobre a mensagem.
[out] payloadStart
Um ponteiro para um ponteiro para a posição no buffer de mensagens após a conclusão da decodificação.
Valores de retorno
WEAVE_NO_ERROR
Após a decodificação do cabeçalho da mensagem.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Se o buffer de mensagem transmitido tiver um comprimento inválido.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Se a versão do formato do cabeçalho de mensagem do Weave não for compatível.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf,
  WeaveConnection *con,
  uint16_t maxLen,
  uint16_t reserve
)

Codifique um cabeçalho WeaveMessageLayer em um PackageBuffer.

Detalhes
Parâmetros
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que contém informações sobre a mensagem a ser codificada.
[in] msgBuf
Um ponteiro para o objeto PackageBuffer que armazenaria a mensagem Weave.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] maxLen
É o tamanho máximo da mensagem codificada do Weave.
[in] reserve
O espaço reservado antes do payload para manter o cabeçalho da mensagem do Weave.
Valores de retorno
WEAVE_NO_ERROR
sobre a codificação bem-sucedida da mensagem.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se a versão do formato do cabeçalho de mensagem do Weave não for compatível.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
se o comprimento do payload no buffer de mensagens for zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
se não houver suporte para o tipo de criptografia no cabeçalho da mensagem.
WEAVE_ERROR_MESSAGE_TOO_LONG
se a mensagem codificada for maior que o máximo solicitado.
WEAVE_ERROR_BUFFER_TOO_SMALL
se não houver espaço suficiente antes ou depois do payload da mensagem.
other
erros gerados pelo objeto de estado do tecido ao buscar o estado da sessão.

EncodeMessage

WEAVE_ERROR EncodeMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *payload
)

Codifique um cabeçalho da camada de mensagem do Weave em um PackageBuffer.

Detalhes
Parâmetros
[in] destAddr
O endereço IP de destino.
[in] destPort
A porta de destino.
[in] sendIntId
A interface para a qual enviar a mensagem do Weave.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PackageBuffer que armazenaria a mensagem Weave.
Valores de retorno
WEAVE_NO_ERROR
sobre a codificação bem-sucedida da mensagem do Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se a versão do Weave Message não for compatível.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
se o comprimento do payload no buffer de mensagens for zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
se o tipo de criptografia não for compatível.
WEAVE_ERROR_MESSAGE_TOO_LONG
se a mensagem codificada for maior que o máximo solicitado.
WEAVE_ERROR_BUFFER_TOO_SMALL
se não houver espaço suficiente antes ou depois do payload da mensagem.
other
erros gerados pelo objeto de estado do tecido ao buscar o estado da sessão.

Porta_UDP efêmero ativado

bool EphemeralUDPPortEnabled(
  void
) const 

Verifique se as trocas de UDP Weave iniciadas localmente devem ser enviadas de uma porta de origem UDP temporária.

GetConnectionPoolStats

void GetConnectionPoolStats(
  nl::Weave::System::Stats::count_t & aOutInUse
) const 

Descubra o número de WeaveConnections em uso e o tamanho do pool.

Detalhes
Parâmetros
[out] aOutInUse
Referência a size_t, em que o número de conexões em uso é armazenado.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Verifique se a WeaveMessageLayer está configurada para detectar as comunicações de entrada por IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Verifique se a WeaveMessageLayer está configurada para detectar as comunicações de entrada por IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inicialize o objeto da camada de mensagens do Weave.

Detalhes
Parâmetros
[in] context
Um ponteiro para o objeto InitContext.
Valores de retorno
WEAVE_NO_ERROR
em uma inicialização bem-sucedida.
WEAVE_ERROR_INVALID_ARGUMENT
se o objeto InitContext transmitido for NULL.
WEAVE_ERROR_INCORRECT_STATE
se o estado do objeto WeaveMessageLayer está incorreto.
other
erros gerados pela camada inferior do Inet durante a criação do endpoint.

Endereço IsBoundToLocalIPv4

bool IsBoundToLocalIPv4Address(
  void
) const 

Verifique se a WeaveMessageLayer está vinculada a um endereço IPv4 local.

Endereço IsBoundToLocalIPv6

bool IsBoundToLocalIPv6Address(
  void
) const 

Verifique se a WeaveMessageLayer está vinculada a um endereço IPv6 local.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

Nova conexão

WeaveConnection * NewConnection(
  void
)

Crie um novo objeto WeaveConnection a partir de um pool.

Detalhes
Retorna
Um ponteiro para o objeto WeaveConnection recém-criado, se bem-sucedido. Caso contrário, é NULL.

Túnel da nova conexão

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crie um novo objeto WeaveConnectionTunnel de um pool.

Detalhes
Retorna
Um ponteiro para o objeto WeaveConnectionTunnel recém-criado, caso contrário, será NULL.

ReCodificação de mensagens

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

Atualizar endpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Atualize os endpoints InetLayer com base no estado atual das interfaces de rede do sistema.

Detalhes
Valores de retorno
WEAVE_NO_ERROR
sobre a atualização dos endpoints.
InetLayer
erros com base nas chamadas para criar endpoints TCP/UDP.

Reenviar mensagem

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.

Detalhes
Parâmetros
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Reenviar mensagem

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.

Detalhes
Parâmetros
[in] destAddr
O endereço IP de destino.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Reenviar mensagem

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.

Detalhes
Parâmetros
[in] destAddr
O endereço IP de destino.
[in] destPort
A porta de destino.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Reenviar mensagem

WEAVE_ERROR ResendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId interfaceId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Reenviar uma mensagem do Weave codificada usando o endpoint UDP Inetlayer subjacente.

Observação:se o endereço de destino não tiver sido fornecido, tente determiná-lo no identificador de nós no cabeçalho da mensagem. Falha se não for possível fazer isso. - Se o endereço de destino for um endereço de tecido para o tecido local e o autor da chamada não tiver especificado o ID de nó de destino, extraia-o do endereço de destino.

Detalhes
Parâmetros
[in] aDestAddr
O endereço IP de destino.
[in] destPort
A porta de destino.
[in] interfaceId
A interface para a qual enviar a mensagem do Weave.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Mensagem de envio

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.

Detalhes
Parâmetros
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que contém informações sobre a mensagem a ser enviada.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Mensagem de envio

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.

Observação:a porta de destino usada é WEAVE_PORT. - Se o endereço de destino não tiver sido fornecido, tente determiná-lo no identificador de nós no cabeçalho da mensagem. Falha se não for possível fazer isso.

- Se o endereço de destino for um endereço de tecido para o tecido local e o autor da chamada não tiver especificado o ID de nó de destino, extraia-o do endereço de destino.

Detalhes
Parâmetros
[in] destAddr
O endereço IP de destino.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que contém informações sobre a mensagem a ser enviada.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

Mensagem de envio

WEAVE_ERROR SendMessage(
  const IPAddress & destAddr,
  uint16_t destPort,
  InterfaceId sendIntfId,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Depois de codificar, envie uma mensagem do Weave usando o endpoint UDP Inetlayer subjacente.

Observação: se o endereço de destino não tiver sido fornecido, tente determiná-lo no identificador de nós no cabeçalho da mensagem. Falha se não for possível fazer isso. - Se o endereço de destino for um endereço de tecido para o tecido local e o autor da chamada não tiver especificado o ID de nó de destino, extraia-o do endereço de destino.

Detalhes
Parâmetros
[in] aDestAddr
O endereço IP de destino.
[in] destPort
A porta de destino.
[in] sendIntfId
A interface para a qual enviar a mensagem do Weave.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que contém informações sobre a mensagem a ser enviada.
[in] payload
Um ponteiro para o objeto PackageBuffer que contém a mensagem do Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
WEAVE_ERROR_INVALID_ADDRESS
se o destAddr não for especificado ou não puder ser determinado a partir do ID do nó de destino.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

SendUDPTunneledMessage

WEAVE_ERROR SendUDPTunneledMessage(
  const IPAddress & destAddr,
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Função para enviar um pacote encapsulado por um túnel UDP local.

Envie uma mensagem de dados IPv6 em túnel por UDP.

Detalhes
Parâmetros
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo.
[in] destAddr
Endereço IP de destino do túnel UDP.
[in] msgBuf
Um ponteiro para o objeto PackageBuffer que contém o pacote a ser enviado.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
WEAVE_ERROR_INVALID_ADDRESS
se o destAddr não for especificado ou não puder ser determinado a partir do ID do nó de destino.
errors
gerados pelo endpoint UDP de camada inferior do Inet durante o envio.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Defina um gerenciador de aplicativo que será chamado sempre que a atividade da camada da mensagem mudar.

Especificamente, o aplicativo será notificado sempre que:

  • o número de mudanças nas trocas abertas.
  • o número de solicitações pendentes de sincronização de mensagens de mensagem muda de zero a pelo menos um e de volta a zero. O gerenciador é veiculado como um sinal geral que indica se há conversas do Weave em andamento ou se há respostas pendentes. O gerenciador precisa ser definido após a inicialização de WeaveMessageLayer. Desativar a WeaveMessageLayer limpa o gerenciador atual.

Detalhes
Parâmetros
[in] messageLayerActivityChangeHandler
Um ponteiro para uma função a ser chamada sempre que a atividade da camada de mensagens mudar.
Valores de retorno
None.

Definir TCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Ative ou desative a detecção de conexões TCP de entrada na WeaveMessageLayer.

OBSERVAÇÃO: é preciso chamar RefreshEndpoints() depois que o estado de detecção TCP mudar.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Ative ou desative a detecção de mensagens UDP de entrada no WeaveMessageLayer.

OBSERVAÇÃO: é necessário chamar RefreshEndpoints() depois que o estado de detecção UDP é alterado.

SetUnsecuredConnectionListener

WEAVE_ERROR SetUnsecuredConnectionListener(
  ConnectionReceiveFunct newOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved,
  bool force,
  void *listenerState
)

Desligamento

WEAVE_ERROR Shutdown(
  void
)

Encerre o WeaveMessageLayer.

Feche todos os endpoints de camada Inet abertos e redefina todos os callbacks, camadas e variáveis de membro de camada superior. Uma chamada para Shutdown() encerra o objeto WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Verifique se a WeaveMessageLayer está configurada para detectar as conexões TCP de entrada.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Verifique se a WeaveMessageLayer está configurada para detectar mensagens UDP de entrada.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Ative ou desative a inicialização de trocas de UDP Weave de uma porta de origem UDP temporária.

OBSERVAÇÃO: RefreshEndpoints() precisa ser chamado depois que o estado de porta temporário for alterado. Verifique se a escuta não segura está ativada.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

O construtor da camada de mensagem do Weave.

Funções estáticas públicas

GetMaxWeavePayloadSize

uint32_t GetMaxWeavePayloadSize(
  const PacketBuffer *msgBuf,
  bool isUDP,
  uint32_t udpMTU
)

Recebe o tamanho máximo do payload do Weave para uma configuração de mensagem e o PackageBuffer fornecido.

O tamanho máximo de payload retornado não excederá o espaço disponível para um payload no PackageBuffer fornecido.

Se a mensagem for UDP, o tamanho máximo de payload retornado não resultará em uma mensagem do Weave que não ultrapasse a MTU UDP especificada.

Por fim, o tamanho máximo de payload retornado não resultará em uma mensagem do Weave que transbordará no tamanho máximo da mensagem do Weave.

Detalhes
Parâmetros
[in] msgBuf
Um ponteiro para o PackageBuffer no qual o payload da mensagem será gravado.
[in] isUDP
Verdadeiro se a mensagem for uma mensagem UDP.
[in] udpMTU
O tamanho da MTU UDP. Ignorado se isUDP for falso.
Retorna
o tamanho máximo de payload do Weave.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  uint64_t nodeId,
  const IPAddress *addr,
  uint16_t port,
  InterfaceId interfaceId,
  const WeaveConnection *con
)

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

A string gerada tem o seguinte formato:

 ([]:%, con )

Detalhes
Parâmetros
[in] buf
Um ponteiro para um buffer em que a string precisa ser gravada. O buffer fornecido precisa ser pelo menos tão grande quanto kWeavePeerDescription_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 por buf.
[in] nodeId
O ID do nó a ser impresso.
[in] addr
Um ponteiro para um endereço IP a ser exibido. ou NULL, caso nenhum endereço IP seja exibido.
[in] port
Um número de porta IP a ser impresso. Nenhum número de porta será exibido se o modificador for NULL.
[in] interfaceId
Um InterfaceId que identifica a interface a ser impressa. A string de saída conterá o nome da interface, conforme conhecido pela pilha de rede subjacente. Nenhum nome de interface será impresso se interfaceId for INET_NULL_INTERFACEID ou se o aderente for NULL.
[in] con
Um ponteiro para um objeto WeaveConnection cujo ID de geração de registros será impresso, ou NULL se nenhum ID de conexão for exibido.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize,
  const WeaveMessageInfo *msgInfo
)

Cria uma string que descreve um nó de peering com base nas informações associadas a uma mensagem recebida do peering.

Detalhes
Parâmetros
[in] buf
Um ponteiro para um buffer em que a string precisa ser gravada. O buffer fornecido precisa ser pelo menos tão grande quanto kWeavePeerDescription_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 por buf.
[in] msgInfo
Um ponteiro para uma estrutura WeaveMessageInfo que contém informações sobre a mensagem.