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 numerosi 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 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 superiore per la gestione di una connessione TCP in entrata.
MessageLayerActivityChangeHandlerFunct)(bool messageLayerIsActive) typedef
void(*
Questa funzione è il callback dell'applicazione per segnalare la modifica dell'attività del livello dei messaggi.
MessageReceiveFunct)(WeaveMessageLayer *msgLayer, WeaveMessageInfo *msgInfo, PacketBuffer *payload) typedef
void(*
Questa funzione è il callback di livello superiore che viene invocato 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 si ascoltano connessioni/messaggi in arrivo, falso 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
per uso interno e solo 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 specificate.
DecodeHeader(PacketBuffer *msgBuf, WeaveMessageInfo *msgInfo, uint8_t **payloadStart)
Decodifica l'intestazione di un livello 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 di 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
Ottieni il numero di WeaveConnection in uso e le dimensioni del pool.
IPv4ListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per rimanere in ascolto delle comunicazioni in entrata su IPv4.
IPv6ListenEnabled(void) const
bool
Controlla se WeaveMessageLayer è configurato per rimanere in ascolto delle comunicazioni in entrata su IPv4.
Init(InitContext *context)
Inizializza l'oggetto di 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 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 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à chiamato ogni volta che cambia l'attività del livello del messaggio.
SetTCPListenEnabled(bool val)
void
Attiva o disattiva l'ascolto per le 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 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
Abilita o disabilita l'avvio degli 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 di messaggi e il valore 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 relative a indirizzo / connessione associate.
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 superiore 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 di 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 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 segnalare le modifiche all'attività del livello dei messaggi.

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 del messaggio è attivo o meno.

MessageReceiveFunct

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

Questa funzione è il callback di livello superiore che viene invocato 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 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 di inizializzazione di WeaveMessageLayer.

kState_Initializing

Stato in cui 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 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.

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

per uso interno e solo 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 specificate.

Una volta creata, i TCPEndPoints corrispondenti agli oggetti del componente WeaveConnection vengono trasferiti a WeaveConnectionTunnel, altrimenti le WeaveConnection vengono chiuse.

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 durante il quale il tunnel di connessione Weave potrebbe essere inattivo.
Valori restituiti
WEAVE_NO_ERROR
sulla creazione di WeaveConnectionTunnel.
WEAVE_ERROR_INCORRECT_STATE
se lo stato degli oggetti del componente 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 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 alla posizione nel buffer dei messaggi al termine della decodifica.
Valori restituiti
WEAVE_NO_ERROR
In caso di decodifica dell'intestazione del messaggio.
WEAVE_ERROR_INVALID_MESSAGE_LENGTH
Se il buffer di messaggi passato ha una lunghezza non 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 che conterrà 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 in cui contenere l'intestazione del messaggio Weave.
Valori restituiti
WEAVE_NO_ERROR
sulla 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 è 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 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 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 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 conterrà il messaggio Weave.
Valori restituiti
WEAVE_NO_ERROR
sulla codifica corretta 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 dei messaggi è 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 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 fabric durante il recupero dello stato della sessione.

EphemeralUDPPortEnabled

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 

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 rimanere in ascolto delle comunicazioni in entrata su IPv4.

IPv6ListenEnabled

bool IPv6ListenEnabled(
  void
) const 

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

Init

WEAVE_ERROR Init(
  InitContext *context
)

Inizializza l'oggetto di livello Weave Message.

Dettagli
Parametri
[in] context
Un puntatore all'oggetto InitContext.
Valori restituiti
WEAVE_NO_ERROR
in caso di inizializzazione riuscita.
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 operazione riuscita, 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
alla riuscita 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 del messaggio al livello di rete.
errors
generati 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 del messaggio al livello di rete.
errors
generati 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 del messaggio al livello di rete.
errors
generati 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 del messaggio al livello di rete.
errors
generati 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 contenente il messaggio Weave codificato.
Valori restituiti
WEAVE_NO_ERROR
sull'invio del messaggio al livello di rete.
errors
generati 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 fornito, provare 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] 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 del messaggio al livello di rete.
errors
generati 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. 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] 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 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
generati 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 di 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
sull'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
generati dall'endpoint UDP del livello Inet inferiore durante l'invio.

SetSignalMessageLayerActivityChanged

void SetSignalMessageLayerActivityChanged(
  MessageLayerActivityChangeHandlerFunct messageLayerActivityChangeHandler
)

Imposta un gestore di applicazioni che verrà chiamato ogni volta che cambia l'attività del livello del messaggio.

Nello specifico, la richiesta verrà notificata 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 torna a zero. Il gestore viene fornito come indicatore generale che indica se sono in corso conversazioni Weave o se sono in attesa di risposte. Il gestore deve essere impostato dopo l'inizializzazione di WeaveMessageLayer. l'arresto di WeaveMessageLayer cancellerà il gestore attuale.

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

SetTCPListenEnabled

void SetTCPListenEnabled(
  bool val
)

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

NOTA: RefreshEndpoints() deve essere chiamato dopo che lo stato di ascolto TCP è stato modificato.

SetUDPListenEnabled

void SetUDPListenEnabled(
  bool val
)

Attiva o disattiva l'ascolto dei messaggi UDP in entrata 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 

Controlla se WeaveMessageLayer è configurato per ascoltare i messaggi UDP in entrata.

UnsecuredListenEnabled

bool UnsecuredListenEnabled(
  void
) const 

Abilita o disabilita l'avvio degli 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 è attiva la funzionalità di ascolto non protetto.

WeaveMessageLayer

 WeaveMessageLayer(
  void
)

Il costruttore del livello Messaggio Weave.

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 valore 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, la dimensione massima del payload restituita non genererà un messaggio Weave che supererà 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
La dimensione della MTU UDP. Ignorato se isUDP è falso.
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 le informazioni relative a indirizzo / connessione associate.

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 grande almeno quanto kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarla. L'output includerà in tutti i casi un carattere di terminazione NUL.
[in] bufSize
La dimensione del buffer puntata dal buf.
[in] nodeId
L'ID nodo da stampare.
[in] addr
Un puntatore a un indirizzo IP da stampare; o 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 come 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 il cui ID di logging deve essere stampato. o 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 essere grande almeno quanto kWeavePeerDescription_MaxLength. Se viene fornito un buffer più piccolo, la stringa verrà troncata per adattarla. 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.