nl::Weave::WeaveMessageLayer

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

La definizione della classe WeaveMessageLayer, che gestisce la comunicazione con altri nodi Weave.

Riepilogo

Utilizza uno dei diversi endpoint InetLayer per stabilire un canale di comunicazione con altri nodi Weave.

Costruttori e distruttori

WeaveMessageLayer(void)
Il costruttore del livello Messaggio Weave.

Tipi pubblici

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) typedef
void(*
Questa funzione è il callback di livello superiore per segnalare un errore durante la gestione di una connessione TCP in arrivo.
CallbackRemovedFunct)(void *listenerState) typedef
void(*
Questa funzione viene richiamata per rimuovere un callback.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) typedef
void(*
Questa funzione è il callback di livello superiore per la gestione di una connessione TCP in entrata.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Questa funzione è il callback dell'applicazione per la segnalazione della modifica dell'attività del livello di messaggio.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback di livello superiore che viene invocato al ricevimento di un messaggio Weave tramite UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) typedef
void(*
Questa funzione è il callback di livello superiore invocato in caso di errore.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Lo stato di WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback di livello superiore che viene invocato al ricevimento di un pacchetto in tunnel su un tunnel UDP locale.

Attributi pubblici

AppState
void *
Un puntatore a un oggetto stato specifico dell'applicazione.
ExchangeMgr
[SOLO LETTURA] L'oggetto WeaveExchangeManager associato.
FabricState
[SOLO LETTURA] L'oggetto WeaveFabricState associato.
IncomingConIdleTimeout
uint32_t
Timeout di inattività predefinito (in millisecondi) per le connessioni in entrata.
Inet
InetLayer *
[SOLO LETTURA] L'oggetto Inetlayer associato.
IsListening
bool
[SOLO LETTURA] True se è in ascolto per connessioni/messaggi in arrivo, false in caso contrario.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[SOLO LETTURA] L'oggetto WeaveSecurityManager associato.
State
uint8_t
[SOLO LETTURA] Lo stato dell'oggetto WeaveMessageLayer.
SystemLayer
mDropMessage
bool
Interno e solo per debug; se impostato, WeaveMessageLayer elimina il messaggio e restituisce.

Funzioni pubbliche

ClearUnsecuredConnectionListener(ConnectionReceiveFunct oldOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved)
CloseEndpoints(void)
Chiudi tutti gli endpoint TCP e UDP aperti.
CreateTunnel(WeaveConnectionTunnel **tunPtr, WeaveConnection & conOne, WeaveConnection & conTwo, uint32_t inactivityTimeoutMS)
Crea un WeaveConnectionTunnel accoppiando due WeaveConnection specificati.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica un'intestazione del livello del messaggio Weave da un messaggio Weave ricevuto.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Codifica un'intestazione WeaveMessageLayer in un PacketBuffer.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Codifica un'intestazione del livello di messaggio Weave in un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Controlla se le sessioni UDP Weave avviate localmente devono essere inviate da una porta di origine UDP temporanea.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Ottieni il numero di WeaveConnections in uso e le dimensioni del pool.
IPv4ListenEnabled(void) const
bool
Verifica se WeaveMessageLayer è configurato per ascoltare le comunicazioni in entrata tramite IPv4.
IPv6ListenEnabled(void) const
bool
Verifica se WeaveMessageLayer è configurato per ascoltare le comunicazioni in entrata tramite IPv4.
Init(InitContext *context)
Inizializza l'oggetto del livello Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Verifica se WeaveMessageLayer è associato a un indirizzo IPv4 locale.
IsBoundToLocalIPv6Address(void) const
bool
Verifica se WeaveMessageLayer è associato a un indirizzo IPv6 locale.
IsMessageLayerActive(void)
bool
NewConnection(void)
Crea un nuovo oggetto WeaveConnection da un pool.
NewConnectionTunnel(void)
Crea un nuovo oggetto WeaveConnectionTunnel da un pool.
ReEncodeMessage(PacketBuffer *buf)
RefreshEndpoints(void)
Aggiorna gli endpoint InetLayer in base allo stato attuale delle interfacce di rete del sistema.
ResendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.
ResendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.
ResendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId interfaceId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo averlo codificato.
SendMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo la codifica.
SendMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntfId, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo averlo codificato.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funzione per inviare un pacchetto in tunnel tramite un tunnel UDP locale.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Imposta un gestore dell'applicazione che verrà chiamato ogni volta che cambia l'attività del livello di messaggi.
SetTCPListenEnabled(bool val)
void
Attiva o disattiva l'ascolto delle connessioni TCP in entrata in WeaveMessageLayer.
SetUDPListenEnabled(bool val)
void
Attiva o disattiva l'ascolto dei messaggi UDP in arrivo in WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per ascoltare le connessioni TCP in entrata.
UDPListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per ascoltare i messaggi UDP in entrata.
UnsecuredListenEnabled(void) const
bool
Attiva o disattiva l'avvio di scambi UDP Weave da una porta di origine UDP temporanea.

Funzioni statiche pubbliche

GetMaxWeavePayloadSize(const PacketBuffer *msgBuf, bool isUDP, uint32_t udpMTU)
uint32_t
Ottieni la dimensione massima del payload Weave per una configurazione del messaggio e il PacketBuffer fornito.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Costruisce una stringa che descrive un nodo peer e le relative informazioni su indirizzo/connessione.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Costruisce una stringa che descrive un nodo peer in base alle informazioni associate a un messaggio ricevuto dal peer.

Corsi

nl::Weave::WeaveMessageLayer::InitContext

La definizione della classe InitContext.

Tipi pubblici

AcceptErrorFunct

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

Questa funzione è il callback di livello superiore per segnalare un errore durante la gestione di una connessione TCP in arrivo.

Dettagli
Parametri
[in] msgLayer
Un puntatore all'oggetto WeaveMessageLayer.
[in] err
WEAVE_ERROR rilevato durante la gestione di una connessione TCP in entrata.

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Questa funzione viene richiamata per rimuovere un callback.

Dettagli
Parametri
[in] listenerState
Un puntatore all'oggetto stato dell'applicazione.

ConnectionReceiveFunct

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

Questa funzione è il callback di livello superiore per la gestione di una connessione TCP in arrivo.

Dettagli
Parametri
[in] msgLayer
Un puntatore all'oggetto WeaveMessageLayer.
[in] con
Un puntatore all'oggetto WeaveConnection.

MessageLayerActivityChangeHandlerFunct

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

Questa funzione è il callback dell'applicazione per la segnalazione della modifica dell'attività del livello di messaggio.

Il livello di messaggio è considerato attivo se esiste almeno una richiesta di sincronizzazione del contatore di messaggi aperto o in attesa.

Dettagli
Parametri
[in] messageLayerIsActive
Un valore booleano che indica se il livello di messaggio è attivo o meno.

MessageReceiveFunct

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

Questa funzione è il callback di livello superiore che viene invocato al ricevimento di un messaggio Weave tramite UDP.

Dettagli
Parametri
[in] msgLayer
Un puntatore all'oggetto WeaveMessageLayer.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] payload
Puntatore al messaggio PacketBuffer contenente il pacchetto in tunnel ricevuto.

ReceiveErrorFunct

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

Questa funzione è il callback di livello superiore richiamato quando si verifica un errore.

Dettagli
Parametri
[in] msgLayer
Un puntatore all'oggetto WeaveMessageLayer.
[in] err
WEAVE_ERROR riscontrato durante la ricezione dei dati.
[in] pktInfo
Un puntatore di sola lettura all'oggetto IPPacketInfo.

Stato

 State

Lo stato di WeaveMessageLayer.

Proprietà
kState_Initialized

Stato quando WeaveMessageLayer viene inizializzato.

kState_Initializing

Indica quando WeaveMessageLayer è in fase di inizializzazione.

kState_NotInitialized

Stato quando WeaveMessageLayer non viene inizializzato.

TunneledMsgReceiveFunct

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

Questa funzione è il callback di livello superiore che viene invocato al ricevimento di un pacchetto in tunnel su un tunnel UDP locale.

Dettagli
Parametri
[in] msgLayer
Un puntatore all'oggetto WeaveMessageLayer.
[in] payload
Puntatore al messaggio PacketBuffer contenente il pacchetto in tunnel ricevuto.

Attributi pubblici

AppState

void * AppState

Un puntatore a un oggetto stato specifico dell'applicazione.

ExchangeMgr

WeaveExchangeManager * ExchangeMgr

[SOLO LETTURA] L'oggetto WeaveExchangeManager associato.

FabricState

WeaveFabricState * FabricState

[SOLO LETTURA] L'oggetto WeaveFabricState associato.

IncomingConIdleTimeout

uint32_t IncomingConIdleTimeout

Timeout di inattività predefinito (in millisecondi) per le connessioni in entrata.

Inet

InetLayer * Inet

[SOLO LETTURA] L'oggetto InetLayer associato.

IsListening

bool IsListening

[SOLO LETTURA] True se si ascoltano connessioni/messaggi in arrivo, falso negli altri casi.

OnAcceptError

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

SecurityMgr

WeaveSecurityManager * SecurityMgr

[SOLO LETTURA] L'oggetto WeaveSecurityManager associato.

Stato

uint8_t State

[SOLO LETTURA] Lo stato dell'oggetto WeaveMessageLayer.

SystemLayer

System::Layer * SystemLayer

mDropMessage

bool mDropMessage

Interno e solo per il debug. Se impostato, WeaveMessageLayer elimina il messaggio e restituisce.

Funzioni pubbliche

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

CloseEndpoints

WEAVE_ERROR CloseEndpoints(
  void
)

Chiudi tutti gli endpoint TCP e UDP aperti.

Interrompi quindi tutti gli oggetti WeaveConnection aperti e tutti gli oggetti WeaveConnectionTunnel aperti.

Vedi anche:
Shutdown().

CreateTunnel

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

Crea un WeaveConnectionTunnel accoppiando due WeaveConnection specificati.

Al termine della creazione, gli endpoint TCP corrispondenti agli oggetti WeaveConnection del componente vengono trasferiti a WeaveConnectionTunnel, altrimenti le connessioni Weave vengono chiuse.

Dettagli
Parametri
[out] tunPtr
Un puntatore a un puntatore di un oggetto WeaveConnectionTunnel.
[in] conOne
Un riferimento al primo oggetto WeaveConnection.
[in] conTwo
Un riferimento al secondo oggetto WeaveConnection.
[in] inactivityTimeoutMS
Il tempo massimo in millisecondi durante il quale il tunnel di connessione Weave potrebbe essere inattivo.
Valori restituiti
WEAVE_NO_ERROR
al termine della creazione di WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se gli oggetti WeaveConnection del componente WeaveConnectionTunnel non sono nello stato corretto.
WEAVE_ERROR_NO_MEMORY
se non è possibile creare un nuovo oggetto WeaveConnectionTunnel.

DecodeHeader

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

Decodifica l'intestazione di un livello messaggio Weave da un messaggio Weave ricevuto.

Dettagli
Parametri
[in] msgBuf
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave.
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo che riceverà informazioni sul messaggio.
[out] payloadStart
Un puntatore a un puntatore alla posizione nel buffer del messaggio al termine della decodifica.
Valori restituiti
WEAVE_NO_ERROR
Al termine della decodifica dell'intestazione del messaggio.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Se il buffer del messaggio passato ha una lunghezza non valida.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Se la versione del formato dell'intestazione del messaggio Weave non è supportata.

EncodeMessage

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

Codifica un'intestazione WeaveMessageLayer in un PacketBuffer.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo contenente informazioni sul messaggio da codificare.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene il messaggio Weave.
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] maxLen
La lunghezza massima del messaggio Weave codificato.
[in] reserve
Lo spazio riservato prima del payload per contenere l'intestazione del messaggio Weave.
Valori restituiti
WEAVE_NO_ERROR
al termine della codifica del messaggio.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se la versione del formato dell'intestazione del messaggio Weave non è supportata.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
se la lunghezza del payload nel buffer del messaggio è pari a zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
se il tipo di crittografia nell'intestazione del messaggio non è supportato.
WEAVE_ERROR_MESSAGE_TOO_LONG
se il messaggio codificato è più lungo del massimo richiesto.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se non c'è spazio sufficiente prima o dopo il payload del messaggio.
other
Errori generati dall'oggetto stato della struttura durante il recupero dello stato della sessione.

EncodeMessage

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

Codifica un'intestazione di livello Weave Message in un PacketBuffer.

Dettagli
Parametri
[in] destAddr
L'indirizzo IP di destinazione.
[in] destPort
La porta di destinazione.
[in] sendIntId
L'interfaccia su cui inviare il messaggio Weave.
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo.
[in] payload
Un puntatore all'oggetto PacketBuffer che contiene il messaggio Weave.
Valori restituiti
WEAVE_NO_ERROR
al termine della codifica del messaggio Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se la versione di Weave Message non è supportata.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
se la lunghezza del payload nel buffer del messaggio è pari a zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
se il tipo di crittografia non è supportato.
WEAVE_ERROR_MESSAGE_TOO_LONG
se il messaggio codificato è più lungo del massimo richiesto.
WEAVE_ERROR_BUFFER_TOO_SMALL
Se non c'è spazio sufficiente prima o dopo il payload del messaggio.
other
Errori generati dall'oggetto stato della struttura durante il recupero dello stato della sessione.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

Controlla se le sessioni UDP Weave avviate localmente devono essere inviate da una porta di origine UDP temporanea.

GetConnectionPoolStats

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

Ottieni il numero di WeaveConnections in uso e le dimensioni del pool.

Dettagli
Parametri
[out] aOutInUse
Riferimento a size_t, in cui è memorizzato il numero di connessioni in uso.

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

Controlla se WeaveMessageLayer è configurato per rimanere in ascolto delle comunicazioni in entrata su IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

Verifica se WeaveMessageLayer è configurato per ascoltare le comunicazioni in entrata tramite IPv4.

Inizializzazione

WEAVE_ERROR Init(
  InitContext *context
)

Inizializza l'oggetto del livello Weave Message.

Dettagli
Parametri
[in] context
Un puntatore all'oggetto InitContext.
Valori restituiti
WEAVE_NO_ERROR
al termine dell'inizializzazione.
WEAVE_ERROR_INVALID_ARGUMENT
se l'oggetto InitContext passato è NULL.
WEAVE_ERROR_INCORRECT_STATE
se lo stato dell'oggetto WeaveMessageLayer non è corretto.
other
errori generati dal livello Inet inferiore durante la creazione dell'endpoint.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Verifica se WeaveMessageLayer è associato a un indirizzo IPv4 locale.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Verifica se WeaveMessageLayer è associato a un indirizzo IPv6 locale.

IsMessageLayerActive

bool IsMessageLayerActive(
  void
)

NewConnection

WeaveConnection * NewConnection(
  void
)

Crea un nuovo oggetto WeaveConnection da un pool.

Dettagli
Restituisce
Un puntatore all'oggetto WeaveConnection appena creato se l'operazione è andata a buon fine, altrimenti NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crea un nuovo oggetto WeaveConnectionTunnel da un pool.

Dettagli
Restituisce
un puntatore all'oggetto WeaveConnectionTunnel appena creato in caso di operazione riuscita, altrimenti NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Aggiorna gli endpoint InetLayer in base allo stato attuale delle interfacce di rete del sistema.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
al termine dell'aggiornamento degli endpoint.
InetLayer
basati su chiamate alla creazione di endpoint TCP/UDP.

ResendMessage

WEAVE_ERROR ResendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.

Dettagli
Parametri
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

ResendMessage

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

Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.

Dettagli
Parametri
[in] destAddr
L'indirizzo IP di destinazione.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

ResendMessage

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

Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.

Dettagli
Parametri
[in] destAddr
L'indirizzo IP di destinazione.
[in] destPort
La porta di destinazione.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

ResendMessage

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

Invia di nuovo un messaggio Weave codificato utilizzando l'endpoint UDP Inetlayer sottostante.

Nota:se l'indirizzo di destinazione non è stato fornito, prova a determinarlo dall'identificatore del nodo nell'intestazione del messaggio. Errore se non è possibile eseguire questa operazione. -Se l'indirizzo di destinazione è un indirizzo fabric per la struttura locale e il chiamante non ha specificato l'ID nodo di destinazione, estrailo dall'indirizzo di destinazione.

Dettagli
Parametri
[in] aDestAddr
L'indirizzo IP di destinazione.
[in] destPort
La porta di destinazione.
[in] interfaceId
L'interfaccia su cui inviare il messaggio Weave.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo averlo codificato.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo contenente informazioni sul messaggio da inviare.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

SendMessage

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

Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo averlo codificato.

Nota: la porta di destinazione utilizzata è WEAVE_PORT. - Se l'indirizzo di destinazione non è stato fornito, prova a determinarlo dall'identificatore del nodo nell'intestazione del messaggio. Errore se non è possibile eseguire questa operazione.

- Se l'indirizzo di destinazione è un indirizzo del fabric per il fabric locale e l'utente che ha chiamato non ha specificato l'ID del nodo di destinazione, estrailo dall'indirizzo di destinazione.

Dettagli
Parametri
[in] destAddr
L'indirizzo IP di destinazione.
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo contenente informazioni sul messaggio da inviare.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

SendMessage

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

Invia un messaggio Weave utilizzando l'endpoint UDP Inetlayer sottostante dopo averlo codificato.

Nota:se l'indirizzo di destinazione non è stato fornito, prova a determinarlo dall'identificatore del nodo nell'intestazione del messaggio. Errore se non è possibile eseguire questa operazione. - Se l'indirizzo di destinazione è un indirizzo del fabric per il fabric locale e l'utente che ha chiamato non ha specificato l'ID del nodo di destinazione, estrailo dall'indirizzo di destinazione.

Dettagli
Parametri
[in] aDestAddr
L'indirizzo IP di destinazione.
[in] destPort
La porta di destinazione.
[in] sendIntfId
L'interfaccia su cui inviare il messaggio Weave.
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo contenente informazioni sul messaggio da inviare.
[in] payload
Un puntatore all'oggetto PacketBuffer contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
WEAVE_ERROR_INVALID_ADDRESS
se destAddr non è specificato o non può essere determinato dall'ID nodo di destinazione.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

SendUDPTunneledMessage

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

Funzione per inviare un pacchetto in tunnel tramite un tunnel UDP locale.

Invia un messaggio di dati IPv6 in tunnel tramite UDP.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo.
[in] destAddr
Indirizzo IP della destinazione del tunnel UDP.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer contenente il pacchetto da inviare.
Valori restituiti
WEAVE_NO_ERROR
sull'invio corretto del messaggio al livello di rete.
WEAVE_ERROR_INVALID_ADDRESS
se destAddr non è specificato o non può essere determinato dall'ID nodo di destinazione.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Imposta un gestore dell'applicazione che verrà chiamato ogni volta che cambia l'attività del livello di messaggi.

Nello specifico, l'applicazione riceverà una notifica ogni volta che:

  • il numero di scambi aperti cambia.
  • il numero di richieste di sincronizzazione dei contatori dei messaggi in attesa passa da zero ad almeno uno e viceversa. L'handler viene visualizzato come indicatore generale che indica se sono in corso conversazioni Weave o se sono presenti risposte in attesa. L'handler deve essere impostato dopo l'inizializzazione di WeaveMessageLayer; l'arresto di WeaveMessageLayer comporta l'eliminazione dell'handler corrente.

Dettagli
Parametri
[in] messageLayerActivityChangeHandler
Un puntatore a una funzione da chiamare ogni volta che cambia l'attività del livello di messaggio.
Valori restituiti
None.

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

Attiva o disattiva l'ascolto delle connessioni TCP in entrata in WeaveMessageLayer.

NOTA: RefreshEndpoints() deve essere chiamato dopo la modifica dello stato di ascolto TCP.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Attiva o disattiva l'ascolto dei messaggi UDP in arrivo in WeaveMessageLayer.

NOTA: RefreshEndpoints() deve essere chiamato dopo la modifica dello stato di ascolto UDP.

SetUnsecuredConnectionListener

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

Arresto

WEAVE_ERROR Shutdown(
  void
)

Arresta WeaveMessageLayer.

Chiudi tutti gli endpoint del livello Inet aperti, reimposta tutti i callback del livello superiore, le variabili dei membri e gli oggetti. Una chiamata a Shutdown() termina l'oggetto WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Controlla se WeaveMessageLayer è configurato per ascoltare le connessioni TCP in entrata.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Verifica che WeaveMessageLayer sia configurato per ascoltare i messaggi UDP in entrata.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Attiva o disattiva l'avvio di scambi UDP Weave da una porta di origine UDP temporanea.

NOTA: RefreshEndpoints() deve essere chiamato dopo la modifica dello stato della porta temporanea. Controlla se l'ascolto non sicuro è attivo.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Il costruttore del livello Weave Message.

Funzioni statiche pubbliche

GetMaxWeavePayloadSize

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

Ottieni la dimensione massima del payload Weave per una configurazione del messaggio e il PacketBuffer fornito.

La dimensione massima del payload restituita non supererà lo spazio disponibile per un payload all'interno del PacketBuffer fornito.

Se il messaggio è UDP, la dimensione massima del payload restituita non genererà un messaggio Weave che non supererà l'MTU UDP specificato.

Infine, le dimensioni massime del payload restituite non produrranno un messaggio Weave che supererà le dimensioni massime del messaggio Weave.

Dettagli
Parametri
[in] msgBuf
Un puntatore al PacketBuffer in cui verrà scritto il payload del messaggio.
[in] isUDP
True se il messaggio è un messaggio UDP.
[in] udpMTU
La dimensione della MTU UDP. Ignorato se isUDP è false.
Restituisce
la dimensione massima del payload di Weave.

GetPeerDescription

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

Costruisce una stringa che descrive un nodo peer e le relative informazioni su indirizzo/connessione.

La stringa generata ha il seguente formato:

 ([]:%, con )

Dettagli
Parametri
[in] buf
Un puntatore a un buffer in cui deve essere scritta la stringa. Il buffer fornito deve essere almeno uguale a kWeavePeerDescription_MaxLength. Se viene specificato un buffer più piccolo, la stringa verrà troncata per adattarsi. L'output includerà in tutti i casi un carattere di terminazione NUL.
[in] bufSize
La dimensione del buffer a cui fa riferimento buf.
[in] nodeId
L'ID nodo da stampare.
[in] addr
Un puntatore a un indirizzo IP da stampare oppure NULL se non deve essere stampato alcun indirizzo IP.
[in] port
Un numero di porta IP da stampare. Se addr è NULL, non verrà stampato alcun numero di porta.
[in] interfaceId
Un InterfaceId che identifica l'interfaccia da stampare. La stringa di output conterrà il nome dell'interfaccia noto allo stack di rete sottostante. Se il nome dell'interfaccia è INET_NULL_INTERFACEID o se addr è NULL, verrà stampato.
[in] con
Un puntatore a un oggetto WeaveConnection di cui deve essere stampato l'ID di registrazione oppure NULL se non deve essere stampato alcun ID connessione.

GetPeerDescription

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

Costruisce una stringa che descrive un nodo peer in base alle informazioni associate a un messaggio ricevuto dal peer.

Dettagli
Parametri
[in] buf
Un puntatore a un buffer in cui deve essere scritta la stringa. Il buffer fornito deve essere almeno uguale a kWeavePeerDescription_MaxLength. Se viene specificato un buffer più piccolo, la stringa verrà troncata per adattarsi. L'output includerà in tutti i casi un carattere di terminazione NUL.
[in] bufSize
La dimensione del buffer puntata dal buf.
[in] msgInfo
Un puntatore a una struttura WeaveMessageInfo contenente informazioni sul messaggio.