nl::Weave::WeaveMessageLayer

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

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

Riepilogo

Utilizza uno dei vari endpoint Inetlayer per stabilire un canale di comunicazione con gli 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ù alto per segnalare un errore durante la gestione di una connessione TCP in entrata.
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 più alto per la gestione di una connessione TCP in entrata.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Questa funzione è il callback dell'applicazione per la segnalazione delle variazioni dell'attività del livello di messaggio.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback di livello superiore che viene richiamato alla 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 WeaveMessageLayer.
TunneledMsgReceiveFunct)(WeaveMessageLayer *msgLayer, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback di livello superiore che viene richiamato alla ricezione di un pacchetto con tunnel su un tunnel UDP locale.

Attributi pubblici

AppState
void *
Un puntatore a un oggetto di 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 sono in ascolto di connessioni/messaggi in arrivo, false negli altri casi.
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 il 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 oggetto WeaveConnectionTunnel accoppiando due WeaveConnection specificate.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica l'intestazione di un livello di un 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 l'intestazione di un livello Weave Message in un PacketBuffer.
EphemeralUDPPortEnabled(void) const
bool
Controlla se gli scambi Weave UDP avviati localmente devono essere inviati da una porta di origine UDP temporanea.
GetConnectionPoolStats(nl::Weave::System::Stats::count_t & aOutInUse) const
void
Ottieni il numero di WeaveConnection in uso e le dimensioni del pool.
IPv4ListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per l'ascolto delle comunicazioni in entrata su IPv4.
IPv6ListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per l'ascolto delle comunicazioni in entrata su IPv4.
Init(InitContext *context)
Inizializza l'oggetto del livello Weave Message.
IsBoundToLocalIPv4Address(void) const
bool
Controlla se WeaveMessageLayer è associato a un indirizzo IPv4 locale.
IsBoundToLocalIPv6Address(void) const
bool
Controlla 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 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 la codifica.
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 la codifica.
SendUDPTunneledMessage(const IPAddress & destAddr, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funzione per inviare un pacchetto con 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 dei messaggi cambia.
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 entrata in WeaveMessageLayer.
SetUnsecuredConnectionListener(ConnectionReceiveFunct newOnUnsecuredConnectionReceived, CallbackRemovedFunct newOnUnsecuredConnectionCallbacksRemoved, bool force, void *listenerState)
Shutdown(void)
TCPListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per l'ascolto delle connessioni TCP in entrata.
UDPListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per l'ascolto dei messaggi UDP in entrata.
UnsecuredListenEnabled(void) const
bool
Abilita o disabilita l'avvio di scambi Weave UDP 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 di messaggi 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
Crea una stringa che descrive un nodo peer e l'indirizzo / le informazioni di connessione associati.
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::WeaveMessageLayer::InitContext

La definizione della classe InitContext.

Tipi pubblici

AcceptErrorFunct

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

Questa funzione è il callback di livello più alto per segnalare un errore durante la gestione di una connessione TCP in entrata.

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

ConnectionReceiveFunct

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

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

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 delle variazioni dell'attività del livello di messaggio.

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

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

MessageReceiveFunct

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

Questa funzione è il callback di livello superiore che viene richiamato alla ricezione di un messaggio Weave su 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 con 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 rilevato 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 dell'inizializzazione di WeaveMessageLayer.

kState_Initializing

Stato quando WeaveMessageLayer è in fase di inizializzazione.

kState_NotInitialized

Stato in cui WeaveMessageLayer non è inizializzato.

TunneledMsgReceiveFunct

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

Questa funzione è il callback di livello superiore che viene richiamato alla ricezione di un pacchetto con tunnel su un tunnel UDP locale.

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

Attributi pubblici

AppState

void * AppState

Un puntatore a un oggetto di 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.

net

InetLayer * Inet

[SOLO LETTURA] L'oggetto Inetlayer associato.

IsListening

bool IsListening

[SOLO LETTURA] True se sono in ascolto di connessioni/messaggi in arrivo, false 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.

Quindi interrompi tutte le connessioni WeaveConnection aperte 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 WeaveConnection specificate.

Una volta completata la creazione, i TCPEndPoints corrispondenti agli oggetti WeaveConnection dei componenti vengono trasferiti a WeaveConnectionTunnel, altrimenti le WeaveConnections vengono chiuse.

Dettagli
Parametri
[out] tunPtr
Un puntatore a 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 può rimanere inattivo.
Valori restituiti
WEAVE_NO_ERROR
sulla creazione di WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se lo stato degli oggetti WeaveConnection di WeaveConnectionTunnel non è 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 di un messaggio 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 nella posizione nel buffer del messaggio dopo il completamento della decodifica.
Valori restituiti
WEAVE_NO_ERROR
Decodifica dell'intestazione del messaggio riuscita.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Se il buffer dei messaggi passato non è di lunghezza valida.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
Se la versione del formato dell'intestazione Weave Message 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 in cui si trova 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
alla corretta codifica del messaggio.
WEAVE_ERROR_UNSUPPORTED_MESSAGE_VERSION
se la versione del formato dell'intestazione Weave Message 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 fabric durante il recupero dello stato della sessione.

EncodeMessage

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

Codifica l'intestazione di un 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 in cui si trova il messaggio Weave.
Valori restituiti
WEAVE_NO_ERROR
sulla codifica 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 fabric durante il recupero dello stato della sessione.

EphemeralUDPPortEnabled

bool EphemeralUDPPortEnabled(
  void
) const 

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

GetConnectionPoolStats

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

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

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

IPv4ListenEnabled

bool IPv4ListenEnabled(
  void
) const 

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

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

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

Inizia

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
dopo l'inizializzazione.
WEAVE_ERROR_INVALID_ARGUMENT
se l'oggetto InitContext passato è NULL.
WEAVE_ERROR_INCORRECT_STATE
se lo stato dell'oggetto WeaveMessageLayer non è corretto.
other
generati dal livello Inet inferiore durante la creazione dell'endpoint.

IsBoundToLocalIPv4Address

bool IsBoundToLocalIPv4Address(
  void
) const 

Controlla se WeaveMessageLayer è associato a un indirizzo IPv4 locale.

IsBoundToLocalIPv6Address

bool IsBoundToLocalIPv6Address(
  void
) const 

Controlla 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 in caso di esito positivo, altrimenti NULL.

NewConnectionTunnel

WeaveConnectionTunnel * NewConnectionTunnel(
  void
)

Crea un nuovo oggetto WeaveConnectionTunnel da un pool.

Dettagli
Restituisce
un puntatore all'oggetto WeaveConnectionTunnel appena creato se l'operazione ha esito positivo, altrimenti NULL.

ReEncodeMessage

WEAVE_ERROR ReEncodeMessage(
  PacketBuffer *buf
)

RefreshEndpoints

WEAVE_ERROR RefreshEndpoints(
  void
)

Aggiorna gli endpoint Inetlayer 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.

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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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. Fai clic su Errore se non è possibile farlo. -Se l'indirizzo di destinazione è un indirizzo fabric per l'infrastruttura 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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 la codifica.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo contenente informazioni sul messaggio da inviare.
[in] payload
Un puntatore all'oggetto PacketBuffer che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 la codifica.

Nota:la porta di destinazione utilizzata è WEAVE_PORT. -Se l'indirizzo di destinazione non è stato specificato, prova a determinarlo dall'identificatore del nodo nell'intestazione del messaggio. Fai clic su Errore se non è possibile farlo.

-Se l'indirizzo di destinazione è un indirizzo fabric per l'infrastruttura 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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 la codifica.

Nota: - se l'indirizzo di destinazione non è stato fornito, prova a determinarlo dall'identificatore del nodo nell'intestazione del messaggio. Fai clic su Errore se non è possibile farlo. -Se l'indirizzo di destinazione è un indirizzo fabric per l'infrastruttura 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 che contiene il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
l'invio 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 con tunnel su un tunnel UDP locale.

Invia un messaggio con 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
l'invio 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 di applicazioni che verrà richiamato ogni volta che l'attività del livello dei messaggi cambia.

In particolare, la richiesta verrà informata ogni volta che:

  • cambia il numero di piattaforme di scambio aperte.
  • il numero di richieste di sincronizzazione del contatore dei messaggi in sospeso passa da zero ad almeno uno e poi torna a zero. Il gestore funge da indicatore generale che indica se sono presenti conversazioni Weave in corso o risposte in attesa. Il gestore deve essere impostato dopo l'inizializzazione di WeaveMessageLayer; la disattivazione di WeaveMessageLayer rimuoverà il gestore corrente.

Dettagli
Parametri
[in] messageLayerActivityChangeHandler
Un puntatore a una funzione da chiamare ogni volta che l'attività del livello del messaggio cambia.
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 aver modificato lo stato di ascolto TCP.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

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

NOTA: RefreshEndpoints() deve essere chiamato dopo aver cambiato lo 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 di livello superiore, le variabili membro e gli oggetti. Una chiamata a Shutdown() termina l'oggetto WeaveMessageLayer.

TCPListenEnabled

bool TCPListenEnabled(
  void
) const 

Controlla se WeaveMessageLayer è configurato per l'ascolto delle connessioni TCP in entrata.

UDPListenEnabled

bool UDPListenEnabled(
  void
) const 

Controlla se WeaveMessageLayer è configurato per l'ascolto dei messaggi UDP in entrata.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Abilita o disabilita 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 l'ascolto non protetto è 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 di messaggi 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 produrrà un messaggio Weave che non supererà l'MTU UDP specificato.

Infine, la dimensione massima del payload restituita non comporterà la generazione di un messaggio Weave che supera le dimensioni massime consentite per i messaggi 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 dell'MTU UDP. Ignorato se isUDP è false.
Restituisce
la dimensione massima 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 l'indirizzo / le informazioni di connessione associati.

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 avere dimensioni minime pari a kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarla. L'output includerà un carattere di terminazione NUL in tutti i casi.
[in] bufSize
La dimensione del buffer a cui punta il 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. Non verrà stampato alcun numero di porta se l'indirizzo email è NULL.
[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. Il nome dell'interfaccia non verrà stampato se il valore di InterfaceId è INET_NULL_INTERFACEID o se l'indirizzo ID è 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 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 avere dimensioni minime pari a kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarla. L'output includerà un carattere di terminazione NUL in tutti i casi.
[in] bufSize
La dimensione del buffer a cui punta il buf.
[in] msgInfo
Un puntatore a una struttura WeaveMessageInfo contenente informazioni sul messaggio.