Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

nl::Weave::WeaveMessage Layer

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

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

Riepilogo

Utilizza uno dei vari endpoint Inet Layer per stabilire un canale di comunicazione con altri nodi Weave.

Costruttori e distruttori

WeaveMessageLayer(void)
Il costruttore del livello Weave Message.

Tipi pubblici

AcceptErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err) Typedef
void(*
Questa funzione è il callback di livello più elevato per la segnalazione di un errore durante la gestione di una connessione TCP in arrivo.
CallbackRemovedFunct)(void *listenerState) Typedef
void(*
Questa funzione viene richiamata per la rimozione di un callback.
ConnectionReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveConnection *con) Typedef
void(*
Questa funzione è il callback di livello più elevato per la gestione di una connessione TCP in arrivo.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) Typedef
void(*
Questa funzione è il callback dell'applicazione per la modifica delle attività del livello messaggio.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) Typedef
void(*
Questa funzione è il callback di livello superiore che viene richiamato dopo la ricezione di un messaggio Weave su UDP.
ReceiveErrorFunct)(WeaveMessageLayer *msgLayer, WEAVE_ERROR err, const IPPacketInfo *pktInfo) Typedef
void(*
Questa funzione è il callback di livello superiore richiamato quando si verifica un errore.
State{
  kState_NotInitialized = 0,
  kState_Initializing = 1,
  kState_Initialized = 2
}
enum
Lo stato di WeaveMessage Layer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) Typedef
void(*
Questa funzione è il callback di livello più elevato che viene richiamato al ricevimento di un pacchetto Tunneled su un tunnel UDP locale.

Attributi pubblici

AppState
void *
Un puntatore a un oggetto di stato specifico dell'applicazione.
ExchangeMgr
[READ ONLY] L'oggetto WeaveExchangeManager associato.
FabricState
[READ ONLY] L'oggetto WeaveFabricState associato.
IncomingConIdleTimeout
uint32_t
Timeout di inattività predefinito (in millisecondi) per le connessioni in entrata.
Inet
InetLayer *
[READ ONLY] L'oggetto Inet Layer associato.
IsListening
bool
[READ ONLY] Vero se è in ascolto di connessioni/messaggi in arrivo, falso negli altri casi.
OnAcceptError
OnConnectionReceived
OnMessageReceived
OnReceiveError
OnUDPTunneledMessageReceived
SecurityMgr
[READ ONLY] L'oggetto WeaveSecurityManager associato.
State
uint8_t
[READ ONLY] Lo stato dell'oggetto WeaveMessage Layer.
SystemLayer
mDropMessage
bool
Per uso interno e solo per debug: se impostato, WeaveMessage Layer 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 oggetto WeaveConnectionTunnel accoppiando due WeaveConnections specificati.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica un'intestazione del livello Weave da un messaggio Weave ricevuto.
EncodeMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf, WeaveConnection *con, uint16_t maxLen, uint16_t reserve)
Codifica un'intestazione WeaveMessage Layer in un pacchetto.
EncodeMessage(const IPAddress & destAddr, uint16_t destPort, InterfaceId sendIntId, WeaveMessageInfo *msgInfo, PacketBuffer *payload)
Codificare un'intestazione del livello Weave Message in un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Controlla se gli scambi UDP Weave avviati localmente devono essere inviati da una porta di origine UDP temporanea.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Recupera il numero di WeaveConnections in uso e le dimensioni del pool.
IPv4ListenEnabled(void) const
bool
Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle comunicazioni in entrata tramite IPv4.
IPv6ListenEnabled(void) const
bool
Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle comunicazioni in entrata tramite IPv4.
Init(InitContext *context)
Inizializzare l'oggetto del livello Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Verifica che il WeaveMessage Layer sia associato a un indirizzo IPv4 locale.
IsBoundToLocalIPv6Address(void) const
bool
Verifica che il WeaveMessage Layer sia associato a un indirizzo IPv6 locale.
IsMessageLayerActive(void)
bool
NewConnection(void)
Creare 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 Inet Layer in base allo stato corrente 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 averlo codificato.
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 tunnel su un tunnel UDP locale.
SetSignalMessageLayerActivityChanged(MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler)
void
Imposta un gestore di applicazioni che verrà richiamato ogni volta che l'attività del livello messaggio cambia.
SetTCPListenEnabled(bool val)
void
Attiva o disattiva l'ascolto delle connessioni TCP in entrata in WeaveMessage Layer.
SetUDPListenEnabled(bool val)
void
Attiva o disattiva l'ascolto dei messaggi UDP in entrata in WeaveMessage Layer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle connessioni TCP in entrata.
UDPListenEnabled(void) const
bool
Controlla se WeaveMessage Layer è configurato per rimanere in ascolto dei messaggi UDP in entrata.
UnsecuredListenEnabled(void) const
bool
Attiva o disattiva l'avvio di scambi Weave UDP da una porta di origine UDP temporanea.

Funzioni pubbliche 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 pacchetto PacketBuffer fornito.
GetPeerDescription(char *buf, size_t bufSize, uint64_t nodeId, const IPAddress *addr, uint16_t port, InterfaceId interfaceId, const WeaveConnection *con)
void
Crea una stringa che descrive un nodo peer e le informazioni associate su indirizzo / connessione.
GetPeerDescription(char *buf, size_t bufSize, const WeaveMessageInfo *msgInfo)
void
Crea una stringa che descrive un nodo peer in base alle informazioni associate a un messaggio ricevuto dal peer.

Corsi

nl::Weave::WeaveMessage Layer::InitContext

La definizione della classe InitContext.

Tipi pubblici

AcceptErrorFunct

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

Questa funzione è il callback di livello più elevato per la segnalazione di un errore durante la gestione di una connessione TCP in arrivo.

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

CallbackRemovedFunct

void(* CallbackRemovedFunct)(void *listenerState)

Questa funzione viene richiamata per la rimozione di un callback.

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

ConnessioneRicevi

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

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

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

MessaggioGratuazioneAttivitàLivelloLivello

void(* MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive)

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

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

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

Messaggio RiceviFunct

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

Questa funzione è il callback di livello superiore che viene richiamato dopo la ricezione di un messaggio Weave su UDP.

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

Ricevi Errore

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 WeaveMessage Layer.
[in] err
WEAVE_ERROR rilevato durante la ricezione dei dati.
[in] pktInfo
Un puntatore di sola lettura all'oggetto IPPacketInfo.

Stato

 State

Lo stato di WeaveMessage Layer.

Proprietà
kState_Initialized

Stato all'inizializzazione dell'elemento WeaveMessage Layer.

kState_Initializing

Stato in fase di inizializzazione di WeaveMessage Layer.

kState_NotInitialized

Stato in cui l'elemento WeaveMessage Layer non è inizializzato.

TunneledMsgReceivedFunct

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

Questa funzione è il callback di livello più elevato che viene richiamato al ricevimento di un pacchetto Tunneled su un tunnel UDP locale.

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

Attributi pubblici

StatoApp

void * AppState

Un puntatore a un oggetto di stato specifico dell'applicazione.

Gestione piattaforma di scambio

WeaveExchangeManager * ExchangeMgr

[READ ONLY] L'oggetto WeaveExchangeManager associato.

StatoTessuto

WeaveFabricState * FabricState

[READ ONLY] L'oggetto WeaveFabricState associato.

TimeoutConIdlele (in arrivo)

uint32_t IncomingConIdleTimeout

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

Inet

InetLayer * Inet

[READ ONLY] L'oggetto Inet Layer associato.

Ascolto

bool IsListening

[READ ONLY] Vero se è in ascolto di connessioni/messaggi in arrivo, falso negli altri casi.

Errore

AcceptErrorFunct OnAcceptError

OnConnectionReceived

ConnectionReceiveFunct OnConnectionReceived

OnMessageReceived

MessageReceiveFunct OnMessageReceived

ErroreRicevi

ReceiveErrorFunct OnReceiveError

OnUDPTunneledMessageReceived

TunneledMsgReceiveFunct OnUDPTunneledMessageReceived

Gestione della sicurezza

WeaveSecurityManager * SecurityMgr

[READ ONLY] L'oggetto WeaveSecurityManager associato.

Stato

uint8_t State

[READ ONLY] Lo stato dell'oggetto WeaveMessage Layer.

LivelloSistema

System::Layer * SystemLayer

Messaggio mDrop

bool mDropMessage

Per uso interno e solo per debug: se impostato, WeaveMessage Layer elimina il messaggio e restituisce.

Funzioni pubbliche

ClearUnsecuredConnectionListener

WEAVE_ERROR ClearUnsecuredConnectionListener(
  ConnectionReceiveFunct oldOnUnsecuredConnectionReceived,
  CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved
)

ChiudiEndpoint

WEAVE_ERROR CloseEndpoints(
  void
)

Chiudi tutti gli endpoint TCP e UDP aperti.

Interrompi gli eventuali oggetti WeaveConnections aperti e arresta gli oggetti WeaveConnectionTunnel aperti.

Vedi anche:
Shutdown().

CreateTunnel

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

Crea un oggetto WeaveConnectionTunnel accoppiando due WeaveConnections specificati.

Se la creazione ha esito positivo, i TCPEndPoints corrispondenti agli oggetti WeaveConnection del componente vengono consegnati al WeaveConnectionTunnel, altrimenti i WeaveConnections vengono chiusi.

Dettagli
Parametri
[out] tunPtr
Un puntatore al 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, in cui il tunnel di connessione Weave potrebbe essere inattivo.
Valori restituiti
WEAVE_NO_ERROR
sulla creazione del WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se gli oggetti WeaveConnectionTunnel del WeaveConnectionTunnel non si trovano nello stato corretto.
WEAVE_ERROR_NO_MEMORY
Se non è possibile creare un nuovo oggetto WeaveConnectionTunnel.

Intestazione decodifica

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

Decodifica un'intestazione del livello Weave da un messaggio Weave ricevuto.

Dettagli
Parametri
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene 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 dei messaggi al termine della decodifica.
Valori restituiti
WEAVE_NO_ERROR
Decodifica dell'intestazione del messaggio riuscita.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Se il buffer di messaggi trasmesso ha una lunghezza non valida.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Se la versione dell'intestazione Weave Message non è supportata.

Messaggio Encode

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

Codifica un'intestazione WeaveMessage Layer in un pacchetto.

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 di Weave.
Valori restituiti
WEAVE_NO_ERROR
con una codifica riuscita 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 dei messaggi è 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 supera il limite massimo richiesto.
WEAVE_ERROR_BUFFER_TOO_SMALL
se non c'è abbastanza spazio prima o dopo il payload del messaggio.
other
Errori generati dall'oggetto di stato del tessuto durante il recupero dello stato di sessione.

Messaggio Encode

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

Codificare un'intestazione del 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
alla codifica riuscita del messaggio Weave.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se la versione del messaggio Weave non è supportata.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
se la lunghezza del payload nel buffer dei messaggi è zero.
WEAVE_ERROR_UNSUPPORTED_ENCRYPTION_TYPE
se il tipo di crittografia non è supportato.
WEAVE_ERROR_MESSAGE_TOO_LONG
se il messaggio codificato supera il limite massimo richiesto.
WEAVE_ERROR_BUFFER_TOO_SMALL
se non c'è abbastanza spazio prima o dopo il payload del messaggio.
other
Errori generati dall'oggetto di stato del tessuto durante il recupero dello stato di sessione.

TemporaneoPortPort abilitato

bool EphemeralUDPPortEnabled(
  void
) const 

Controlla se gli scambi UDP Weave avviati localmente devono essere inviati da una porta di origine UDP temporanea.

GetConnectionPoolStats

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

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

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

IPv4Ascolta

bool IPv4ListenEnabled(
  void
) const 

Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle comunicazioni in entrata tramite IPv4.

IPv6Ascolta

bool IPv6ListenEnabled(
  void
) const 

Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle comunicazioni in entrata tramite IPv4.

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inizializzare l'oggetto del livello Weave Message.

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

IndirizzoIsBoundToLocalIPv4

bool IsBoundToLocalIPv4Address(
  void
) const 

Verifica che il WeaveMessage Layer sia associato a un indirizzo IPv4 locale.

IndirizzoIsBoundToLocalIPv6

bool IsBoundToLocalIPv6Address(
  void
) const 

Verifica che il WeaveMessage Layer sia associato a un indirizzo IPv6 locale.

LivelloLivelloAttivoAttivo

bool IsMessageLayerActive(
  void
)

Nuova connessione

WeaveConnection * NewConnection(
  void
)

Creare un nuovo oggetto WeaveConnection da un pool.

Dettagli
Restituisce
un puntatore al nuovo oggetto WeaveConnection creato correttamente, altrimenti NULL.

NuovoConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crea un nuovo oggetto WeaveConnectionTunnel da un pool.

Dettagli
Restituisce
un puntatore al nuovo oggetto WeaveConnectionTunnel se creato correttamente, altrimenti NULL.

Messaggio di ricodifica

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

AggiornaEndpoint

WEAVE_ERROR RefreshEndpoints(
  void
)

Aggiorna gli endpoint Inet Layer in base allo stato corrente delle interfacce di rete del sistema.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
sull'aggiornamento riuscito degli endpoint.
InetLayer
errori basati sulle chiamate per creare endpoint TCP/UDP.

Invia di nuovo messaggio

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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Invia di nuovo messaggio

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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Invia di nuovo messaggio

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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Invia di nuovo messaggio

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 indicato, prova a determinarlo dall'identificatore di nodo nell'intestazione del messaggio. Impossibile eseguire questa operazione. -Se l'indirizzo di destinazione è un indirizzo di tessuto per il tessuto 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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Messaggio di invio

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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Messaggio di invio

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 di nodo nell'intestazione del messaggio. Impossibile eseguire questa operazione.

-Se l'indirizzo di destinazione è un indirizzo di tessuto per il tessuto locale e il chiamante non ha specificato l'ID 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
dopo aver inviato correttamente il messaggio al livello di rete.
errors
generato dall'endpoint UDP del livello Inet inferiore durante l'invio.

Messaggio di invio

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 indicato, prova a determinarlo dall'identificatore di nodo nell'intestazione del messaggio. Impossibile eseguire questa operazione. -Se l'indirizzo di destinazione è un indirizzo di tessuto per il tessuto 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] 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
dopo aver inviato correttamente il messaggio al livello di rete.
WEAVE_ERROR_INVALID_ADDRESS
se il parametro 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 tunnel su un tunnel UDP locale.

Invia un messaggio dati IPv6 con tunnel su 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 che contiene il pacchetto da inviare.
Valori restituiti
WEAVE_NO_ERROR
dopo aver inviato correttamente il messaggio al livello di rete.
WEAVE_ERROR_INVALID_ADDRESS
se il parametro 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 di applicazioni che verrà richiamato ogni volta che l'attività del livello messaggio cambia.

In particolare, la domanda di partecipazione verrà notificata ogni volta che:

  • il numero di piattaforme di scambio aperte.
  • il numero di richieste di sincronizzazione dei contatori dei messaggi in sospeso passa da zero ad almeno uno e da zero a zero. Il gestore viene utilizzato come indicatore generale che indica se sono presenti conversazioni Weave in corso o risposte in sospeso. Il gestore deve essere impostato dopo l'inizializzazione di WeaveMessage Layer. Se chiudi WeaveMessage Layer, il gestore corrente verrà cancellato.

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

SetTCPascolto abilitato

void SetTCPListenEnabled(
  bool val
)

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

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

ImpostaUDPascolto abilitato

void SetUDPListenEnabled(
  bool val
)

Attiva o disattiva l'ascolto dei messaggi UDP in entrata in WeaveMessage Layer.

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
)

Chiudi WeaveMessage Layer.

Chiudi tutti gli endpoint di livello Inet aperti, reimposta tutti i callback di livello superiore, le variabili membro e gli oggetti. Una chiamata a Shutdown() termina l'oggetto WeaveMessage Layer.

TCPHearEnabled

bool TCPListenEnabled(
  void
) const 

Verifica che il WeaveMessage Layer sia configurato per rimanere in ascolto delle connessioni TCP in entrata.

UDPascolto abilitato

bool UDPListenEnabled(
  void
) const 

Controlla se WeaveMessage Layer è configurato per rimanere in ascolto dei messaggi UDP in entrata.

Non sicuro ascoltato

bool UnsecuredListenEnabled(
  void
) const 

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

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

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Il costruttore del livello Weave Message.

Funzioni pubbliche 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 pacchetto 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à la MTU UDP specificata.

Infine, le dimensioni massime del payload restituite non generano un messaggio Weave che supera la dimensione massima 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
Le dimensioni della MTU UDP. Ignorato se isUDP è falso.
Restituisce
le dimensioni massime del payload Weave.

GetPeerDescription

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

Crea una stringa che descrive un nodo peer e le informazioni associate 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 contenere almeno kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarsi. In tutti i casi, l'output includerà un carattere di terminazione NUL.
[in] bufSize
Le dimensioni del buffer puntate dal buf.
[in] nodeId
L'ID nodo da stampare.
[in] addr
Un puntatore a un indirizzo IP da stampare o NULL se non è necessario stampare un indirizzo IP.
[in] port
Un numero di porta IP da stampare. Il numero di porta non verrà stampato se il componente aggiuntivo è NULL.
[in] interfaceId
Un InterfaceId che identifica l'interfaccia da stampare. La stringa di output contiene il nome dell'interfaccia noto allo stack di rete sottostante. Non verrà stampato il nome dell'interfaccia se InterfaceId è INET_NULL_INTERFACEID o se il Addr è NULL.
[in] con
Un puntatore a un oggetto WeaveConnection il cui ID di logging deve essere stampato oppure NULL se non deve essere stampato alcun ID di connessione.

GetPeerDescription

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

Crea 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 contenere almeno kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarsi. In tutti i casi, l'output includerà un carattere di terminazione NUL.
[in] bufSize
Le dimensioni del buffer puntate dal buf.
[in] msgInfo
Un puntatore a una struttura WeaveMessageInfo contenente informazioni sul messaggio.