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 pontos de extremidade InetLayer para estabelecer um canal de comunicação com outros nós do Weave.

Construtores e destrutores

WeaveMessageLayer(void)
O construtor da camada Weave Message.

Tipos públicos

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Essa função é o callback de camada superior para relatar um erro durante o processamento de uma conexão TCP de entrada.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Essa função é invocada para remover um callback.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Essa função é o callback de 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 mudanças na atividade da camada de mensagens.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Essa função é o callback de camada superior que é invocado ao receber uma mensagem Weave por UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Essa função é o callback de camada superior invocado ao encontrar um erro.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
O estado da WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Essa função é o callback de camada superior que é invocado ao receber um pacote encapsulado em 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, será 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
Interno e somente para depuração. Quando definido, 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)
Cria um WeaveConnectionTunnel ao unir dois WeaveConnections especificados.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodificar um cabeçalho de camada de mensagem do Weave recebida de uma mensagem do Weave recebida.
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)
Codifica um cabeçalho de camada de mensagem Weave em um PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Verifique se as trocas do Weave UDP iniciadas localmente precisam ser enviadas de uma porta de origem UDP temporária.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Mostra o número de WeaveConnections em uso e o tamanho do pool.
IPv4ListenEnabled(void) const
bool
Verifique se WeaveMessageLayer está configurado para detectar comunicações de entrada por IPv4.
IPv6ListenEnabled(void) const
bool
Verifique se WeaveMessageLayer está configurado para detectar comunicações de entrada por IPv4.
Init(InitContext *context)
Inicialize o objeto da camada Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Verifique se WeaveMessageLayer está vinculado a um endereço IPv4 local.
IsBoundToLocalIPv6Address(void) const
bool
Verifique se WeaveMessageLayer está vinculado a um endereço IPv6 local.
IsMessageLayerActive(void)
bool
NewConnection(void)
Crie um novo objeto WeaveConnection de um pool.
NewConnectionTunnel(void)
Crie um novo objeto WeaveConnectionTunnel para um pool.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Atualizar os endpoints InetLayer com base no estado atual das interfaces de rede do sistema.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.
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 manipulador de aplicativos que será chamado sempre que a atividade da camada de mensagem mudar.
SetTCPListenEnabled(bool val)
void
Ativar ou desativar a detecção de conexões TCP de entrada na WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Ativar ou desativar a detecção de mensagens UDP recebidas na WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
Encerre a WeaveMessageLayer.
TCPListenEnabled(void) const
bool
Verifica se WeaveMessageLayer está configurado para detectar conexões TCP de entrada.
UDPListenEnabled(void) const
bool
Verifique se WeaveMessageLayer está configurado para detectar mensagens UDP recebidas.
UnsecuredListenEnabled(void) const
bool
Ative ou desative a inicialização de trocas UDP do 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
Extrai 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
Constrói 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
Constrói uma string que descreve um nó de peering com base nas informações associadas a uma mensagem recebida do ponto.

Aulas

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 de 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 manipular uma conexão TCP de entrada.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

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

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

ConnectionReceiveFunct

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

Essa função é o callback de 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 mudanças na atividade da camada de mensagens.

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

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

MessageReceiveFunct

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

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

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Ponteiro para a mensagem PackageBuffer que contém o pacote encapsulado recebido.

ReceiveErrorFunct

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

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

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

Estado

 State

O estado da WeaveMessageLayer.

Propriedades
kState_Initialized

Indica o estado em que a WeaveMessageLayer é inicializada.

kState_Initializing

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

kState_NotInitialized

Indica quando a WeaveMessageLayer não é inicializada.

TunneledMsgReceiveFunct

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

Essa função é o callback de camada superior que é invocado ao receber um pacote encapsulado em um túnel UDP local.

Detalhes
Parâmetros
[in] msgLayer
Um ponteiro para o objeto WeaveMessageLayer.
[in] payload
Ponteiro para a mensagem PackageBuffer que contém o pacote encapsulado recebido.

Atributos públicos

AppState

void * AppState

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

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOMENTE LEITURA] O objeto WeaveExchangeManager associado.

FabricState

WeaveFabricState * FabricState

[SOMENTE LEITURA] O objeto WeaveFabricState associado.

IncomingConIdleTimeout

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.

IsListening

bool IsListening

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

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[SOMENTE LEITURA] O objeto WeaveSecurityManager associado.

Estado

uint8_t State

[SOMENTE LEITURA] O estado do objeto WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Interno e somente para depuração. Quando definido, WeaveMessageLayer descarta a mensagem e retorna.

Funções públicas

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Feche todos os endpoints TCP e UDP abertos.

Em seguida, cancele todos os WeaveConnections abertos e encerre todos os objetos WeaveConnectionTunnel.

Consulte também:
Shutdown().

CreateTunnel

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

Cria um WeaveConnectionTunnel ao unir dois WeaveConnections especificados.

Na criação, os TCPEndPoints correspondentes aos objetos WeaveConnection do componente são entregues ao WeaveConnectionTunnel. Caso contrário, os WeaveConnections são fechados.

Detalhes
Parâmetros
[out] tunPtr
Um ponteiro para um 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 que o túnel de conexão Weave pode ficar inativo.
Valores de retorno
WEAVE_NO_ERROR
na criação do WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se os objetos WeaveConnection do componente do WeaveConnectionTunnel não estiverem no estado correto.
WEAVE_ERROR_NO_MEMORY
se um novo objeto WeaveConnectionTunnel não puder ser criado.

DecodeHeader

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

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

Detalhes
Parâmetros
[in] msgBuf
Um ponteiro para o objeto PacketBuffer que contém a mensagem Weave.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo que receberá informações sobre a mensagem.
[out] payloadStart
Um ponteiro para a posição no buffer de mensagem 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 passado tiver um tamanho inválido.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Se a versão do formato do cabeçalho Weave Message 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 PacketBuffer que conteria a mensagem Weave.
[in] con
Um ponteiro para o objeto WeaveConnection.
[in] maxLen
O tamanho máximo da mensagem Weave codificada.
[in] reserve
O espaço reservado antes do payload para conter o cabeçalho da mensagem Weave.
Valores de retorno
WEAVE_NO_ERROR
na codificação da mensagem.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se a versão do formato do cabeçalho 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 no cabeçalho da mensagem 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 da malha ao buscar o estado da sessão.

EncodeMessage

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

Codifica um cabeçalho de camada de mensagem Weave em um PacketBuffer.

Detalhes
Parâmetros
[in] destAddr
O endereço IP de destino.
[in] destPort
A porta de destino.
[in] sendIntId
A interface na qual enviar a mensagem Weave.
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PacketBuffer que conteria a mensagem Weave.
Valores de retorno
WEAVE_NO_ERROR
na codificação da mensagem 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
caso o tipo de criptografia não seja 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 da malha ao buscar o estado da sessão.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

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

GetConnectionPoolStats

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

Mostra 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 WeaveMessageLayer está configurado para detectar comunicações de entrada por IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

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

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inicialize o objeto da camada Weave Message.

Detalhes
Parâmetros
[in] context
Um ponteiro para o objeto InitContext.
Valores de retorno
WEAVE_NO_ERROR
após a inicialização.
WEAVE_ERROR_INVALID_ARGUMENT
se o objeto InitContext passado for NULL.
WEAVE_ERROR_INCORRECT_STATE
se o estado do objeto WeaveMessageLayer estiver incorreto.
other
erros gerados da camada Inet inferior durante a criação do endpoint.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

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

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

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

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Crie um novo objeto WeaveConnection de um pool.

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

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crie um novo objeto WeaveConnectionTunnel para um pool.

Detalhes
Retorna
um ponteiro para o objeto WeaveConnectionTunnel recém-criado se for bem-sucedido. Caso contrário, será NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

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

Detalhes
Valores de retorno
WEAVE_NO_ERROR
na atualização dos endpoints.
InetLayer
com base em chamadas para criar endpoints TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.

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

ResendMessage

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

Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP 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 PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

ResendMessage

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

Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP 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 PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

ResendMessage

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

Reenvie uma mensagem Weave codificada usando o endpoint Inetlayer UDP subjacente.

Observação:se o endereço de destino não tiver sido fornecido, tente determiná-lo pelo identificador de nó no cabeçalho da mensagem. Falha se isso não puder ser feito. -Se o endereço de destino for um endereço de malha para a malha local e o autor da chamada não tiver especificado o ID do 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 na qual enviar a mensagem Weave.
[in] msgInfo
Um ponteiro para o objeto WeaveMessageInfo.
[in] payload
Um ponteiro para o objeto PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.

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 PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

SendMessage

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

Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.

Observação:a porta de destino usada é WEAVE_PORT. -Se o endereço de destino não tiver sido fornecido, tente determiná-lo pelo identificador do nó no cabeçalho da mensagem. Falha se isso não puder ser feito.

-Se o endereço de destino for um endereço de malha para a malha local e o autor da chamada não tiver especificado o ID do 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 PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

SendMessage

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

Envie uma mensagem do Weave usando o endpoint Inetlayer UDP subjacente após a codificação.

Observação:se o endereço de destino não tiver sido fornecido, tente determiná-lo pelo identificador de nó no cabeçalho da mensagem. Falha se isso não puder ser feito. -Se o endereço de destino for um endereço de malha para a malha local e o autor da chamada não tiver especificado o ID do 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 na qual enviar a mensagem 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 PacketBuffer que contém a mensagem Weave codificada.
Valores de retorno
WEAVE_NO_ERROR
ao enviar a mensagem para a camada de rede.
WEAVE_ERROR_INVALID_ADDRESS
se destAddr não for especificado ou não puder ser determinado a partir do ID do nó de destino.
errors
gerados pelo endpoint UDP mais baixo da camada 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 encapsulada por UDP.

Detalhes
Parâmetros
[in] msgInfo
Um ponteiro para um objeto WeaveMessageInfo.
[in] destAddr
Endereço IP do destino do túnel UDP.
[in] msgBuf
Um ponteiro para o objeto PacketBuffer 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 destAddr não for especificado ou não puder ser determinado a partir do ID do nó de destino.
errors
gerados pelo endpoint UDP mais baixo da camada Inet durante o envio.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Defina um manipulador de aplicativos que será chamado sempre que a atividade da camada de mensagem mudar.

Especificamente, o aplicativo será notificado sempre que:

  • o número de mudanças nas trocas abertas.
  • o número de solicitações de sincronização de contador de mensagens pendentes mudará de zero para pelo menos uma e novamente zero. O manipulador é servido como um sinal geral que indica se há alguma conversa do Weave em andamento ou respostas pendentes. O gerenciador precisa ser definido após a inicialização da WeaveMessageLayer. O encerramento de 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 mensagem mudar.
Valores de retorno
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Ativar ou desativar a detecção de conexões TCP de entrada na WeaveMessageLayer.

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

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Ativar ou desativar a detecção de mensagens UDP recebidas na WeaveMessageLayer.

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

SetUnsecuredConnectionListener

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

Desligamento

WEAVE_ERROR Shutdown(
  void
)

Encerre a WeaveMessageLayer.

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

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Verifica se WeaveMessageLayer está configurado para detectar conexões TCP de entrada.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Verifique se WeaveMessageLayer está configurado para detectar mensagens UDP recebidas.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

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

OBSERVAÇÃO: é necessário chamar RefreshEndpoints() depois que o estado da porta temporária é alterado. Verifique se a escuta não segura está ativada.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

O construtor da camada Weave Message.

Funções estáticas públicas

GetMaxWeavePayloadSize

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

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

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

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

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

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 UDP.
[in] udpMTU
O tamanho da MTU UDP. Ignorado se isUDP for falso.
Retorna
o tamanho máximo do 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
)

Constrói 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 no qual a string precisa ser gravada. O buffer fornecido deve ter pelo menos o tamanho de 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 pelo buf.
[in] nodeId
O ID do nó a ser impresso.
[in] addr
Um ponteiro para um endereço IP a ser impresso; ou NULL se nenhum endereço IP precisar ser mostrado.
[in] port
Um número de porta IP a ser impresso. Nenhum número de porta será impresso se o addr for NULL.
[in] interfaceId
Um InterfaceId que identifica a interface a ser impressa. A string de saída vai conter o nome da interface, conforme conhecido pela pilha de rede. Nenhum nome de interface será impresso se interfaceId for INET_NULL_INTERFACEID ou se addr for NULL.
[in] con
Um ponteiro para um objeto WeaveConnection cujo ID de registro deve ser mostrado ou NULL se nenhum ID de conexão precisa ser mostrado.

GetPeerDescription

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

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

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 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 pelo buf.
[in] msgInfo
Um ponteiro para uma estrutura WeaveMessageInfo que contém informações sobre a mensagem.