nl::Weave::WeaveConnection

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

La definizione della classe di connessione Weave.

Riepilogo

Rappresenta una connessione TCP o BLE a un altro nodo Weave.

Tipi pubblici

@58{
  kGetPeerDescription_MaxLength = nl::Weave::kWeavePeerDescription_MaxLength
}
enum
ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Questa funzione è il callback dell'applicazione che viene attivato quando viene chiusa una connessione.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Questa funzione è il callback dell'applicazione che viene attivato quando viene completata una configurazione di connessione.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Questa funzione è il callback dell'applicazione che viene attivato quando un messaggio viene ricevuto tramite una connessione Weave.
NetworkType{
  kNetworkType_Unassigned = 0,
  kNetworkType_IP = 1,
  kNetworkType_BLE = 2
}
enum
Il tipo di rete dell'oggetto di connessione Weave.
ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err) typedef
void(*
Questa funzione consente di richiamare l'applicazione quando si verifica un errore durante la ricezione di un messaggio Weave.
State{
  kState_ReadyToConnect = 0,
  kState_Resolving = 1,
  kState_Connecting = 2,
  kState_EstablishingSession = 3,
  kState_Connected = 4,
  kState_SendShutdown = 5,
  kState_Closed = 6
}
enum
Lo stato dell'oggetto di connessione Weave.
TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Questa funzione è il callback dell'applicazione che viene attivato alla ricezione di un pacchetto di dati con tunnel sulla connessione Weave.

Attributi pubblici

AppState
void *
Un puntatore all'oggetto di stato specifico dell'applicazione.
AuthMode
WeaveAuthMode
[SOLO LETTURA] La modalità di autenticazione utilizzata per stabilire le chiavi di crittografia predefinite per la connessione.
DefaultEncryptionType
uint8_t
Il tipo di crittografia predefinito per i messaggi.
DefaultKeyId
uint16_t
La chiave di crittografia predefinita da utilizzare per l'invio di messaggi.
MessageLayer
[SOLO LETTURA] L'oggetto WeaveMessageLayer associato.
NetworkType
uint8_t
[SOLO LETTURA] Il tipo di rete del punto di arrivo associato.
OnConnectionClosed
OnConnectionComplete
OnMessageReceived
OnReceiveError
OnTunneledMessageReceived
PeerAddr
IPAddress
[SOLO LETTURA] L'indirizzo IP del nodo peer.
PeerNodeId
uint64_t
[SOLO LETTURA] L'identificatore del nodo del peer.
PeerPort
uint16_t
[SOLA LETTURA] Il numero di porta del nodo peer.
ReceiveEnabled
bool
[SOLO LETTURA] True se la ricezione è abilitata, false negli altri casi.
SendDestNodeId
bool
True se tutti i messaggi inviati tramite questa connessione devono includere un identificatore del nodo di destinazione codificato in modo esplicito, altrimenti false.
SendSourceNodeId
bool
True se tutti i messaggi inviati tramite questa connessione devono includere un identificatore del nodo di origine codificato in modo esplicito, altrimenti false.
State
uint8_t
[SOLO LETTURA] Lo stato dell'oggetto WeaveConnection.

Funzioni pubbliche

Abort(void)
void
Esegue una chiusura non controllata della WeaveConnection basata su TCP o BLE, ignorando tutti i dati che potrebbero essere in transito verso o dal peer.
AddRef(void)
void
Prenota un riferimento all'oggetto WeaveConnection.
Close(void)
Esegue una chiusura controllata senza blocco della WeaveConnection basata su TCP o BLE, fornendo tutti i dati in uscita rimanenti prima di informare educatamente l'host remoto che abbiamo reimpostato la connessione.
Close(bool suppressCloseLog)
Esegue una chiusura controllata senza blocco della WeaveConnection basata su TCP o BLE, fornendo tutti i dati in uscita rimanenti prima di informare educatamente l'host remoto che abbiamo reimpostato la connessione.
Connect(uint64_t peerNodeId)
Connettiti a un nodo Weave utilizzando un indirizzo IP fabric derivato dall'identificatore del nodo specificato.
Connect(uint64_t peerNodeId, const IPAddress & peerAddr, uint16_t peerPort)
Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo IP.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const IPAddress & peerAddr, uint16_t peerPort, InterfaceId intf)
Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo IP su un'interfaccia specifica.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t defaultPort)
Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un nome host di stringa.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint16_t defaultPort)
Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo peer stringa.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, const char *peerAddr, uint16_t peerAddrLen, uint8_t dnsOptions, uint16_t defaultPort)
Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo peer stringa.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, InterfaceId intf)
Connettiti a un nodo Weave utilizzando un identificatore del nodo e/o un elenco di nomi host e porte.
Connect(uint64_t peerNodeId, WeaveAuthMode authMode, HostPortList hostPortList, uint8_t dnsOptions, InterfaceId intf)
Connettiti a un nodo Weave utilizzando un identificatore del nodo e/o un elenco di nomi host e porte.
DisableKeepAlive(void)
DisableReceive(void)
void
Disattiva la ricezione tramite WeaveConnection.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Attiva la ricezione su questa WeaveConnection.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Recupera le informazioni sull'indirizzo IP del peer.
GetPeerDescription(char *buf, size_t bufSize) const
void
Crea una stringa descrivendo il nodo peer associato alla connessione.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
Diminuisci il conteggio del riferimento sull'oggetto WeaveConnection.
ResetUserTimeout(void)
SendMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Invia un messaggio Weave tramite una connessione stabilita.
SendTunneledMessage(WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)
Funzione per inviare un pacchetto con tunnel su una connessione Weave.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Imposta un timeout per consentire la riuscita di Connect o la restituzione di un errore.
SetIdleTimeout(uint32_t timeoutMS)
Imposta il timeout di inattività per la connessione a livello di rete sottostante.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Esegue un arresto controllato dell'invio TCP, assicurando che tutti i dati in uscita siano stati inviati e ricevuti dallo stack TCP del peer.

Tipi pubblici

@58

 @58
Proprietà
kGetPeerDescription_MaxLength

Lunghezza massima della stringa (incluso il carattere NUL) restituita da GetPeerDescription().

ConnectionClosedFunct

void(* ConnectionClosedFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

Questa funzione è il callback dell'applicazione che viene attivato quando viene chiusa una connessione.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] conErr
L'errore WEAVE_ERROR rilevato quando la connessione è stata chiusa.

ConnectionCompleteFunct

void(* ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr)

Questa funzione è il callback dell'applicazione che viene attivato quando viene completata una configurazione di connessione.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] conErr
WEAVE_ERROR rilevato durante la configurazione della connessione.

MessageReceiveFunct

void(* MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

Questa funzione è il callback dell'applicazione che viene attivato quando un messaggio viene ricevuto tramite una connessione Weave.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] msgInfo
Un puntatore a una struttura WeaveMessageInfo contenente informazioni sul messaggio.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer che contiene il messaggio.

NetworkType

 NetworkType

Il tipo di rete dell'oggetto di connessione Weave.

Proprietà
kNetworkType_BLE

Tipo di rete BLE.

kNetworkType_IP

Tipo di rete TCP/IP.

kNetworkType_Unassigned

Tipo di rete non assegnato.

ReceiveErrorFunct

void(* ReceiveErrorFunct)(WeaveConnection *con, WEAVE_ERROR err)

Questa funzione consente di richiamare l'applicazione quando si verifica un errore durante la ricezione di un messaggio Weave.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] err
WEAVE_ERROR rilevato durante la ricezione dei dati tramite la connessione.

Stato

 State

Lo stato dell'oggetto di connessione Weave.

Proprietà
kState_Closed

Lo stato della chiusura della connessione.

kState_Connected

Stato quando la connessione è stata stabilita.

kState_Connecting

Stato al tentativo di connessione.

kState_EstablishingSession

Stato quando viene stabilita una sessione sicura.

kState_ReadyToConnect

Stato dopo l'inizializzazione della connessione Weave.

kState_Resolving

Stato dell'esecuzione della risoluzione dei nomi DNS.

kState_SendShutdown

Stato dell'arresto della connessione.

TunneledMsgReceiveFunct

void(* TunneledMsgReceiveFunct)(WeaveConnection *con, const WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf)

Questa funzione è il callback dell'applicazione che viene attivato alla ricezione di un pacchetto di dati con tunnel sulla connessione Weave.

Dettagli
Parametri
[in] con
Un puntatore all'oggetto WeaveConnection.
[in] msgInfo
Un puntatore all'oggetto WeaveMessageInfo.
[in] msgBuf
Un puntatore all'oggetto PacketBuffer contenente il pacchetto con tunnel ricevuto.

Attributi pubblici

AppState

void * AppState

Un puntatore all'oggetto di stato specifico dell'applicazione.

AuthMode

WeaveAuthMode AuthMode

[SOLO LETTURA] La modalità di autenticazione utilizzata per stabilire le chiavi di crittografia predefinite per la connessione.

DefaultEncryptionType

uint8_t DefaultEncryptionType

Il tipo di crittografia predefinito per i messaggi.

DefaultKeyId

uint16_t DefaultKeyId

La chiave di crittografia predefinita da utilizzare per l'invio di messaggi.

MessageLayer

WeaveMessageLayer * MessageLayer

[SOLO LETTURA] L'oggetto WeaveMessageLayer associato.

NetworkType

uint8_t NetworkType

[SOLO LETTURA] Il tipo di rete del punto di arrivo associato.

OnConnectionClosed

ConnectionClosedFunct OnConnectionClosed

OnConnectionComplete

ConnectionCompleteFunct OnConnectionComplete

OnMessageReceived

MessageReceiveFunct OnMessageReceived

OnReceiveError

ReceiveErrorFunct OnReceiveError

OnTunneledMessageReceived

TunneledMsgReceiveFunct OnTunneledMessageReceived

PeerAddr

IPAddress PeerAddr

[SOLO LETTURA] L'indirizzo IP del nodo peer.

PeerNodeId

uint64_t PeerNodeId

[SOLO LETTURA] L'identificatore del nodo del peer.

PeerPort

uint16_t PeerPort

[SOLA LETTURA] Il numero di porta del nodo peer.

ReceiveEnabled

bool ReceiveEnabled

[SOLO LETTURA] True se la ricezione è abilitata, false negli altri casi.

SendDestNodeId

bool SendDestNodeId

True se tutti i messaggi inviati tramite questa connessione devono includere un identificatore del nodo di destinazione codificato in modo esplicito, altrimenti false.

SendSourceNodeId

bool SendSourceNodeId

True se tutti i messaggi inviati tramite questa connessione devono includere un identificatore del nodo di origine codificato in modo esplicito, altrimenti false.

Stato

uint8_t State

[SOLO LETTURA] Lo stato dell'oggetto WeaveConnection.

Funzioni pubbliche

Interrompi

void Abort(
  void
)

Esegue una chiusura non controllata della WeaveConnection basata su TCP o BLE, ignorando tutti i dati che potrebbero essere in transito verso o dal peer.

Una chiamata ad Abort() termina immediatamente la connessione sottostante. Dopodiché, l'oggetto WeaveConnection non potrà più essere utilizzato per ulteriori comunicazioni.

La chiamata di Abort() diminuisce il conteggio dei riferimenti associato all'oggetto WeaveConnection, indipendentemente dal fatto che la connessione sia aperta o attiva al momento della chiamata del metodo. Se in questo modo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono svincolate. In questi casi, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

Vedi anche:
Shutdown(), Abort(), AddRef() e Release().

AddRef

void AddRef(
  void
)

Prenota un riferimento all'oggetto WeaveConnection.

Il metodo AddRef() incrementa il conteggio dei riferimenti associati all'oggetto WeaveConnection. Per ogni chiamata ad AddRef(), l'applicazione deve eseguire una chiamata corrispondente a Release(), Close() o Abort().

Chiudi

WEAVE_ERROR Close(
  void
)

Esegue una chiusura controllata senza blocco della WeaveConnection basata su TCP o BLE, fornendo tutti i dati in uscita rimanenti prima di informare educatamente l'host remoto che abbiamo reimpostato la connessione.

Questo metodo non garantisce in alcun modo che i messaggi in uscita non confermati a livello di protocollo dell'applicazione siano stati ricevuti dal peer remoto. Sia per TCP che per BLE, lo stack di protocolli sottostante farà il possibile per consegnare tutti i dati in uscita in sospeso prima di reimpostare la connessione. Per TCP, è necessario utilizzare Shutdown() prima di Close() se è necessaria una conferma di ricezione di un messaggio a livello di trasporto prima di chiudere la connessione. Le connessioni BLE non forniscono un equivalente Shutdown().

Per le connessioni basate su BLE, Close() chiude la WeaveConnection e restituisce immediatamente, ma potrebbe causare la permanenza dell'oggetto BLEEndPoint sottostante fino a quando non sono stati inviati tutti i dati in uscita. Questo è un effetto collaterale dell'implementazione del protocollo di trasporto Weave su BLE esistente all'interno di Weave Blelayer.

Una volta richiamato Close(), l'oggetto WeaveConnection non può più essere utilizzato per ulteriori comunicazioni.

La chiamata a Close() diminuisce il conteggio dei riferimenti associato all'oggetto WeaveConnection, indipendentemente dal fatto che la connessione sia aperta o attiva al momento della chiamata del metodo. Se in questo modo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono svincolate. In questi casi, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

Dettagli
Restituisce
WEAVE_NO_ERROR in modo incondizionato.
Vedi anche:
Shutdown(), Abort(), AddRef() e Release().

Chiudi

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Esegue una chiusura controllata senza blocco della WeaveConnection basata su TCP o BLE, fornendo tutti i dati in uscita rimanenti prima di informare educatamente l'host remoto che abbiamo reimpostato la connessione.

Questo metodo non garantisce in alcun modo che i messaggi in uscita non confermati a livello di protocollo dell'applicazione siano stati ricevuti dal peer remoto. Sia per TCP che per BLE, lo stack di protocolli sottostante farà il possibile per consegnare tutti i dati in uscita in sospeso prima di reimpostare la connessione. Per TCP, è necessario utilizzare Shutdown() prima di Close() se è necessaria una conferma di ricezione di un messaggio a livello di trasporto prima di chiudere la connessione. Le connessioni BLE non forniscono un equivalente Shutdown().

Per le connessioni basate su BLE, Close() chiude la WeaveConnection e restituisce immediatamente, ma potrebbe causare la permanenza dell'oggetto BLEEndPoint sottostante fino a quando non sono stati inviati tutti i dati in uscita. Questo è un effetto collaterale dell'implementazione del protocollo di trasporto Weave su BLE esistente all'interno di Weave Blelayer.

Una volta richiamato Close(), l'oggetto WeaveConnection non può più essere utilizzato per ulteriori comunicazioni.

La chiamata a Close() diminuisce il conteggio dei riferimenti associato all'oggetto WeaveConnection, indipendentemente dal fatto che la connessione sia aperta o attiva al momento della chiamata del metodo. Se in questo modo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono svincolate. In questi casi, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

Dettagli
Parametri
[in] suppressCloseLog
true se i log devono essere soppressi, altrimenti false.
Restituisce
WEAVE_NO_ERROR in modo incondizionato.
Vedi anche:
Shutdown(), Abort(), AddRef() e Release().

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId
)

Connettiti a un nodo Weave utilizzando un indirizzo IP fabric derivato dall'identificatore del nodo specificato.

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  const IPAddress & peerAddr,
  uint16_t peerPort
)

Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo IP.

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNot specifichi o 0 se non è noto.
[in] peerAddr
L'indirizzo IP del peer, IPAddress::Any se non noto.
[in] peerPort
La porta facoltativa del peer, per impostazione predefinita è WEAVE_PORT.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const IPAddress & peerAddr,
  uint16_t peerPort,
  InterfaceId intf
)

Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo IP su un'interfaccia specifica.

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNot specifichi o 0 se non è noto.
[in] authMode
La modalità di autenticazione desiderata per il peer. Sono supportate solo le modalità CASE, PASE e Non autenticate.
[in] peerAddr
L'indirizzo IP del peer, IPAddress::Any se non noto.
[in] peerPort
La porta facoltativa del peer, per impostazione predefinita è WEAVE_PORT.
[in] intf
L'interfaccia facoltativa da utilizzare per la connessione al nodo peer, per impostazione predefinita è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'identificatore del nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t defaultPort
)

Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un nome host di stringa.

Se specificato, peerAddr può essere uno dei seguenti:


:

:

[]:

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNot specifichi o 0 se non è noto.
[in] authMode
La modalità di autenticazione desiderata per il peer. Sono supportate solo le modalità CASE, PASE e Non autenticate.
[in] peerAddr
L'indirizzo o il nome host del peer come stringa C con terminazione NULL.
[in] defaultPort
La porta predefinita facoltativa da utilizzare per la connessione, se non specificata nella stringa peerAddr.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint16_t defaultPort
)

Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo peer stringa.

Se specificato, peerAddr può essere uno dei seguenti:


:

:

[]:

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNot specifichi o 0 se non è noto.
[in] authMode
La modalità di autenticazione desiderata per il peer. Sono supportate solo le modalità CASE, PASE e Non autenticate.
[in] peerAddr
L'indirizzo o il nome host del peer come stringa C con terminazione non NULL.
[in] peerAddrLen
La lunghezza della stringa peerAddr.
[in] defaultPort
La porta predefinita facoltativa da utilizzare per la connessione, se non specificata nella stringa peerAddr.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  const char *peerAddr,
  uint16_t peerAddrLen,
  uint8_t dnsOptions,
  uint16_t defaultPort
)

Connettiti a un nodo Weave utilizzando un identificatore di nodo e/o un indirizzo peer stringa.

Se specificato, peerAddr può essere uno dei seguenti:


:

:

[]:

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNot specifichi o 0 se non è noto.
[in] authMode
La modalità di autenticazione desiderata per il peer. Sono supportate solo le modalità CASE, PASE e Non autenticate.
[in] peerAddr
L'indirizzo o il nome host del peer come stringa C con terminazione non NULL.
[in] peerAddrLen
La lunghezza della stringa peerAddr.
[in] dnsOptions
Un valore intero che controlla il modo in cui viene eseguita la risoluzione del nome host. Il valore deve essere l'operatore OR di uno o più valori dell'enumerazione #::nl::Inet::DNSOptions.
[in] defaultPort
La porta predefinita facoltativa da utilizzare per la connessione, se non specificata nella stringa peerAddr.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  InterfaceId intf
)

Connettiti a un nodo Weave utilizzando un identificatore del nodo e/o un elenco di nomi host e porte.

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer.
[in] authMode
La modalità di autenticazione utilizzata per la connessione.
[in] hostPortList
L'elenco di nomi host e porte.
[in] intf
L'interfaccia facoltativa da utilizzare per la connessione al nodo peer, per impostazione predefinita è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

Collega

WEAVE_ERROR Connect(
  uint64_t peerNodeId,
  WeaveAuthMode authMode,
  HostPortList hostPortList,
  uint8_t dnsOptions,
  InterfaceId intf
)

Connettiti a un nodo Weave utilizzando un identificatore del nodo e/o un elenco di nomi host e porte.

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer.
[in] authMode
La modalità di autenticazione utilizzata per la connessione.
[in] hostPortList
L'elenco di nomi host e porte.
[in] dnsOptions
Un valore intero che controlla il modo in cui viene eseguita la risoluzione del nome host. Il valore deve essere l'operatore OR di uno o più valori dell'enumerazione #::nl::Inet::DNSOptions.
[in] intf
L'interfaccia facoltativa da utilizzare per la connessione al nodo peer, per impostazione predefinita è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
all'avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato WeaveConnection è errato.
WEAVE_ERROR_UNSUPPORTED_AUTH_MODE
se la modalità di autenticazione richiesta non è supportata.
WEAVE_ERROR_INVALID_ADDRESS
se l'indirizzo di destinazione non può essere dedotto dall'ID nodo.
other
Errori del livello Inet generati dalle operazioni di connessione TCPEndPoint.

DisableKeepAlive

WEAVE_ERROR DisableKeepAlive(
  void
)

WeaveConnection::DisableKeepAlive.

Disabilita i probe keepalive TCP sulla connessione TCP sottostante.

Nota: questo metodo può essere chiamato solo su una connessione Weave supportata da una connessione TCP. Questo metodo può essere chiamato solo quando la connessione è in uno stato che consente l'invio.

Questo metodo non produce alcun effetto se i keepalive non sono stati abilitati sulla connessione.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
alla disabilitazione riuscita dei probe keepalive TCP sulla connessione.
WEAVE_ERROR_NOT_IMPLEMENTED
se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
other
Gli errori di livello Inet relativi all'endpoint TCP consentono l'operazione keepalive.

DisableReceive

void DisableReceive(
  void
)

Disattiva la ricezione tramite WeaveConnection.

Questo metodo viene utilizzato dall'applicazione per indicare che non è pronta a ricevere dati arrivati tramite la connessione TCP. Per riattivare la ricezione, l'applicazione deve chiamare EnableReceive() per consentire a WeaveConnection di trasferire i dati ricevuti richiamando i callback appropriati.

Vedi anche:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive.

Attiva i probe keepalive TCP sulla connessione TCP sottostante.

Nota:questo metodo può essere chiamato solo su una connessione Weave supportata da una connessione TCP. - Questo metodo può essere chiamato solo quando la connessione è in uno stato che consente l'invio.

Dettagli
Parametri
[in] interval
L'intervallo (in secondi) tra i probe keepalive. Questo valore controlla anche il tempo che intercorre tra l'invio dell'ultimo pacchetto di dati e la trasmissione del primo probe keepalive.
[in] timeoutCount
Il numero massimo di probe non confermati prima che la connessione sia considerata non riuscita.

- Questo metodo può essere richiamato più volte per regolare l'intervallo keepalive o il conteggio del timeout.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
sull'abilitazione dei probe keepalive TCP sulla connessione.
WEAVE_ERROR_NOT_IMPLEMENTED
se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
other
Gli errori di livello Inet relativi all'endpoint TCP consentono l'operazione keepalive.

EnableReceive

void EnableReceive(
  void
)

Attiva la ricezione su questa WeaveConnection.

Questo metodo viene utilizzato dall'applicazione per indicare all'oggetto WeaveConnection che è pronto a ricevere tutti i dati che arrivano tramite la connessione TCP.

Vedi anche:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Recupera le informazioni sull'indirizzo IP del peer.

Dettagli
Parametri
[out] addrInfo
Un riferimento all'oggetto IPPacketInfo.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_NOT_IMPLEMENTED
Se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.

GetPeerDescription

void GetPeerDescription(
  char *buf,
  size_t bufSize
) const 

Crea una stringa descrivendo il nodo peer associato alla connessione.

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

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

Release

void Release(
  void
)

Diminuisci il conteggio del riferimento sull'oggetto WeaveConnection.

Il metodo Release() diminuisce il conteggio dei riferimenti associato all'oggetto WeaveConnection. Se in questo modo il conteggio dei riferimenti raggiunge lo zero, la connessione viene chiusa e l'oggetto di connessione viene liberato. In questi casi, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout.

Reimposta l'opzione del socket di timeout utente TCP sul valore predefinito di sistema.

Nota:questo metodo può essere chiamato solo su una connessione Weave supportata da una connessione TCP. - Questo metodo può essere chiamato solo quando la connessione è in uno stato che consente l'invio.

- Questo metodo non produce alcun effetto se il timeout utente non è stato impostato sulla connessione.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
sulla reimpostazione del timeout utente TCP sulla connessione.
WEAVE_ERROR_NOT_IMPLEMENTED
se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
other
Errori del livello Inet relativi alla reimpostazione dell'endpoint TCP del timeout utente TCP.

SendMessage

WEAVE_ERROR SendMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Invia un messaggio Weave tramite una connessione stabilita.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo.
[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_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
se l'identificatore del nodo di destinazione non è specificato.
WEAVE_ERROR_SENDING_BLOCKED
se il messaggio è troppo lungo per essere inviato.
other
Errori del livello Inet relativi a specifiche operazioni di invio dell'endpoint.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

Funzione per inviare un pacchetto con tunnel su una connessione Weave.

Invia un messaggio Weave con tunnel su una connessione stabilita.

Dettagli
Parametri
[in] msgInfo
Un puntatore a un oggetto WeaveMessageInfo.
[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_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
WEAVE_ERROR_INVALID_DESTINATION_NODE_ID
se l'identificatore del nodo di destinazione non è specificato.
WEAVE_ERROR_SENDING_BLOCKED
se il messaggio è troppo lungo per essere inviato.
other
Errori del livello Inet relativi a specifiche operazioni di invio dell'endpoint.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Imposta un timeout per consentire la riuscita di Connect o la restituzione di un errore.

Dettagli
Parametri
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

Imposta il timeout di inattività per la connessione a livello di rete sottostante.

Dettagli
Parametri
[in] timeoutMS
il timeout in millisecondi.
Valori restituiti
WEAVE_NO_ERROR
dopo l'impostazione del timeout di inattività per la connessione.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per la ricezione dei messaggi.

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout.

Imposta l'opzione del socket di timeout utente TCP.

Quando il valore è maggiore di 0, specifica la quantità massima di tempo in millisecondi durante il quale i dati trasmessi possono rimanere non confermati prima che TCP chiuda forzatamente la connessione corrispondente. Se il valore dell'opzione è 0, TCP utilizzerà il valore predefinito di sistema. Per ulteriori dettagli, consulta RFC 5482.

Dettagli
Parametri
[in] userTimeoutMillis
Valore di timeout utente TCP in millisecondi.

Nota:questo metodo può essere chiamato solo su una connessione Weave supportata da una connessione TCP. - Questo metodo può essere chiamato solo quando la connessione è in uno stato che consente l'invio.

- Questo metodo può essere richiamato più volte per regolare il timeout utente TCP.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
dopo l'impostazione del timeout utente TCP sulla connessione.
WEAVE_ERROR_NOT_IMPLEMENTED
se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio dei messaggi.
other
Errori del livello Inet relativi all'impostazione dell'endpoint TCP del timeout utente TCP.

Arresto

WEAVE_ERROR Shutdown(
  void
)

Esegue un arresto controllato dell'invio TCP, assicurando che tutti i dati in uscita siano stati inviati e ricevuti dallo stack TCP del peer.

Con la maggior parte (ma non tutte) delle implementazioni TCP, la ricezione di un arresto dell'invio comporta la chiusura anche del lato della connessione dell'host remoto, con la conseguente chiusura della connessione. Una chiamata successiva a Close() terminerà la WeaveConnection.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
alla chiusura della connessione TCP.
WEAVE_ERROR_NOT_IMPLEMENTED
se questa funzione viene richiamata per un endpoint incompatibile (ad es. BLE) nel livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto prima di avviare un arresto.
other
Errori del livello Inet relativi a specifiche operazioni di arresto degli endpoint.
Vedi anche:
Close() e Abort().