nl::Weave::WeaveConnection

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

La definizione della classe Weave Connection.

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 invocato quando viene chiusa una connessione.
ConnectionCompleteFunct)(WeaveConnection *con, WEAVE_ERROR conErr) typedef
void(*
Questa funzione è il callback dell'applicazione che viene attivato quando la configurazione di una connessione è completata.
MessageReceiveFunct)(WeaveConnection *con, WeaveMessageInfo *msgInfo, PacketBuffer *msgBuf) typedef
void(*
Questa funzione è il callback dell'applicazione che viene invocato 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 è il callback dell'applicazione invocato quando si verifica un errore alla 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 invocato alla ricezione di un pacchetto di dati "Tunnel" tramite la connessione Weave.

Attributi pubblici

AppState
void *
Un puntatore all'oggetto di stato specifico dell'applicazione.
AuthMode
WeaveAuthMode
[SOLO LETTURA] 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 dell'endpoint 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
[SOLO LETTURA] Il numero di porta del nodo peer.
ReceiveEnabled
bool
[SOLO LETTURA] True se la ricezione è abilitata, false in caso contrario.
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 non bloccante di WeaveConnection basata su TCP o BLE, inviando tutti i dati in uscita rimanenti prima di informare gentilmente l'host remoto che abbiamo reimpostato la connessione.
Close(bool suppressCloseLog)
Esegue una chiusura controllata non bloccante di WeaveConnection basata su TCP o BLE, inviando tutti i dati in uscita rimanenti prima di informare gentilmente 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 del 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 del 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 del 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 del 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 del 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 su questa WeaveConnection.
EnableKeepAlive(uint16_t interval, uint16_t timeoutCount)
EnableReceive(void)
void
Attiva la ricezione su questa WeaveConnection.
GetPeerAddressInfo(IPPacketInfo & addrInfo)
Recupera le informazioni dell'indirizzo IP del peer.
GetPeerDescription(char *buf, size_t bufSize) const
void
Crea una stringa che descrive il nodo peer associato alla connessione.
GetTCPEndPoint(void) const
TCPEndPoint *
IsIncoming(void) const
bool
LogId(void) const
uint16_t
Release(void)
void
Riduci il conteggio dei riferimenti nell'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 tramite una connessione Weave.
SetConnectTimeout(const uint32_t connTimeoutMsecs)
void
Imposta il timeout per la connessione in modo che la connessione vada a buon fine o restituisca un errore.
SetIdleTimeout(uint32_t timeoutMS)
Imposta il timeout di inattività sulla connessione a livello di rete sottostante.
SetIncoming(bool val)
void
SetUserTimeout(uint32_t userTimeoutMillis)
Shutdown(void)
Esegue un invio/arresto controllato 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 invocato quando viene chiusa una connessione.

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

ConnectionCompleteFunct

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

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

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 invocato 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 è il callback dell'applicazione invocato quando si verifica un errore alla ricezione di un messaggio Weave.

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

Stato

 State

Lo stato dell'oggetto di connessione Weave.

Proprietà
kState_Closed

Stato di chiusura della connessione.

kState_Connected

Stato in cui è stata stabilita la connessione.

kState_Connecting

Stato in cui è in corso il tentativo di connessione.

kState_EstablishingSession

Indica quando viene stabilita una sessione sicura.

kState_ReadyToConnect

Stato dopo l'inizializzazione della connessione Weave.

kState_Resolving

Stato in cui è in corso l'esecuzione della risoluzione dei nomi DNS.

kState_SendShutdown

Stato di interruzione della connessione.

TunneledMsgReceiveFunct

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

Questa funzione è il callback dell'applicazione che viene invocato alla ricezione di un pacchetto di dati "Tunnel" tramite la 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 ricevuto in tunnel.

Attributi pubblici

AppState

void * AppState

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

AuthMode

WeaveAuthMode AuthMode

[SOLO LETTURA] 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 dell'endpoint 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

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

ReceiveEnabled

bool ReceiveEnabled

[SOLO LETTURA] True se la ricezione è abilitata, false in caso contrario.

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 può 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/attiva al momento della chiamata del metodo. Se così facendo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono liberate. In questo caso, 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 associato all'oggetto WeaveConnection. Per ogni chiamata a AddRef(), l'applicazione è responsabile di effettuare una chiamata corrispondente a Release(), Close() o Abort().

Chiudi

WEAVE_ERROR Close(
  void
)

Esegue una chiusura controllata non bloccante di WeaveConnection basata su TCP o BLE, inviando tutti i dati in uscita rimanenti prima di informare gentilmente l'host remoto che abbiamo reimpostato la connessione.

Questo metodo non fornisce alcuna garanzia che i messaggi in uscita non riconosciuti a livello di protocollo dell'applicazione siano stati ricevuti dal peer remoto. Sia per TCP che BLE, lo stack di protocolli sottostante farà il possibile per recapitare 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 di livello di trasporto prima di chiudere la connessione. Le connessioni BLE non forniscono un equivalente di Shutdown().

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

Dopo la chiamata di Close(), l'oggetto WeaveConnection non può più essere utilizzato per ulteriori comunicazioni.

La chiamata a Close() riduce il conteggio dei riferimenti associato all'oggetto WeaveConnection, indipendentemente dal fatto che la connessione sia aperta/attiva al momento della chiamata del metodo. Se così facendo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono liberate. In questo caso, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

Dettagli
Restituisce
WEAVE_NO_ERROR incondizionatamente.
Vedi anche:
Shutdown(), Abort(), AddRef() e Release().

Chiudi

WEAVE_ERROR Close(
  bool suppressCloseLog
)

Esegue una chiusura controllata non bloccante di WeaveConnection basata su TCP o BLE, inviando tutti i dati in uscita rimanenti prima di informare gentilmente l'host remoto che abbiamo reimpostato la connessione.

Questo metodo non fornisce alcuna garanzia che i messaggi in uscita non riconosciuti a livello di protocollo dell'applicazione siano stati ricevuti dal peer remoto. Sia per TCP che BLE, lo stack di protocolli sottostante farà il possibile per recapitare 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 di livello di trasporto prima di chiudere la connessione. Le connessioni BLE non forniscono un equivalente di Shutdown().

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

Dopo la chiamata di Close(), l'oggetto WeaveConnection non può più essere utilizzato per ulteriori comunicazioni.

La chiamata a Close() riduce il conteggio dei riferimenti associato all'oggetto WeaveConnection, indipendentemente dal fatto che la connessione sia aperta/attiva al momento della chiamata del metodo. Se così facendo il conteggio dei riferimenti raggiunge lo zero, le risorse associate all'oggetto di connessione vengono liberate. In questo caso, l'applicazione non deve avere ulteriori interazioni con l'oggetto.

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

Connetti

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
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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

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

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNotSpecified o 0 se non è noto.
[in] peerAddr
L'indirizzo IP del peer, IPAddress::Any se non noto.
[in] peerPort
La porta facoltativa del peer. Il valore predefinito è WEAVE_PORT.
Valori restituiti
WEAVE_NO_ERROR
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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

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

Dettagli
Parametri
[in] peerNodeId
L'identificatore del nodo del peer, kNodeIdNotSpecified 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. Il valore predefinito è WEAVE_PORT.
[in] intf
L'interfaccia facoltativa da utilizzare per connettersi al nodo peer. Il valore predefinito è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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

Connettiti a un nodo Weave utilizzando un identificatore del 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, kNodeIdNotSpecified 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
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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 del 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, kNodeIdNotSpecified 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
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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 del 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, kNodeIdNotSpecified 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 come viene eseguita la risoluzione del nome host. Il valore deve essere l'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
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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 connettersi al nodo peer. Il valore predefinito è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di livello Inet generati dalle operazioni di connessione TCPEndPoint.

Connetti

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 come viene eseguita la risoluzione del nome host. Il valore deve essere l'OR di uno o più valori dell'enumerazione #::nl::Inet::DNSOptions.
[in] intf
L'interfaccia facoltativa da utilizzare per connettersi al nodo peer. Il valore predefinito è INET_NULL_INTERFACEID.
Valori restituiti
WEAVE_NO_ERROR
in caso di avvio riuscito della connessione al peer.
WEAVE_ERROR_INCORRECT_STATE
se lo stato di WeaveConnection non è corretto.
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 di 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 le keepalive non sono state abilitate sulla connessione.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
alla disabilitazione 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 di messaggi.
other
Gli errori di livello Inet relativi all'endpoint TCP consentono l'operazione keepalive.

DisableReceive

void DisableReceive(
  void
)

Disattiva la ricezione su questa WeaveConnection.

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

Vedi anche:
EnableReceive()

EnableKeepAlive

WEAVE_ERROR EnableKeepAlive(
  uint16_t interval,
  uint16_t timeoutCount
)

WeaveConnection::EnableKeepAlive.

Abilita 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'ultimo pacchetto di dati inviato e la trasmissione del primo probe keepalive.
[in] timeoutCount
Il numero massimo di probe non confermati prima della connessione verrà considerato non riuscito.

- Questo metodo può essere chiamato 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 di 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 i dati che arrivano tramite la connessione TCP.

Vedi anche:
DisableReceive()

GetPeerAddressInfo

WEAVE_ERROR GetPeerAddressInfo(
  IPPacketInfo & addrInfo
)

Recupera le informazioni dell'indirizzo IP del peer.

Dettagli
Parametri
[out] addrInfo
Un riferimento all'oggetto IPPacketInfo.
Valori restituiti
WEAVE_NO_ERROR
Un 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 che descrive il nodo peer associato alla connessione.

Dettagli
Parametri
[in] buf
Un puntatore a un buffer in cui deve essere scritta la stringa. La dimensione del buffer fornito deve essere almeno pari a kGetPeerDescription_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.

GetTCPEndPoint

TCPEndPoint * GetTCPEndPoint(
  void
) const 

IsIncoming

bool IsIncoming(
  void
) const 

LogId

uint16_t LogId(
  void
) const 

Rilascia

void Release(
  void
)

Riduci il conteggio dei riferimenti nell'oggetto WeaveConnection.

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

ResetUserTimeout

WEAVE_ERROR ResetUserTimeout(
  void
)

WeaveConnection::ResetUserTimeout.

Reimposta l'opzione socket del timeout dell'utente TCP sui valori predefiniti 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 dell'utente non è stato impostato sulla connessione.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
alla reimpostazione del timeout dell'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 di messaggi.
other
Errori del livello Inet relativi alla reimpostazione dell'endpoint TCP del timeout dell'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
sull'invio del messaggio al livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio di 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 di livello Inet relativi a operazioni di invio specifiche dell'endpoint.

SendTunneledMessage

WEAVE_ERROR SendTunneledMessage(
  WeaveMessageInfo *msgInfo,
  PacketBuffer *msgBuf
)

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

Invia un messaggio Weave in 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
sull'invio del messaggio al livello di rete.
WEAVE_ERROR_INCORRECT_STATE
se l'oggetto WeaveConnection non è nello stato corretto per l'invio di 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 di livello Inet relativi a operazioni di invio specifiche dell'endpoint.

SetConnectTimeout

void SetConnectTimeout(
  const uint32_t connTimeoutMsecs
)

Imposta il timeout per la connessione in modo che la connessione vada a buon fine o restituisca un errore.

Dettagli
Parametri
[in] connTimeoutMsecs

SetIdleTimeout

WEAVE_ERROR SetIdleTimeout(
  uint32_t timeoutMS
)

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

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

SetIncoming

void SetIncoming(
  bool val
)

SetUserTimeout

WEAVE_ERROR SetUserTimeout(
  uint32_t userTimeoutMillis
)

WeaveConnection::SetUserTimeout.

Imposta l'opzione socket del timeout dell'utente TCP.

Quando il valore è maggiore di 0, specifica la quantità massima di tempo in millisecondi durante la quale i dati trasmessi possono rimanere non riconosciuti prima che TCP chiuda forzatamente la connessione corrispondente. Se il valore dell'opzione è specificato su 0, TCP utilizzerà il valore predefinito del sistema. Per ulteriori dettagli, vedi 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 chiamato più volte per regolare il timeout dell'utente TCP.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
in caso di impostazione corretta del timeout dell'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 di messaggi.
other
Errori del livello Inet relativi all'impostazione dell'endpoint TCP del timeout dell'utente TCP.

Arresto

WEAVE_ERROR Shutdown(
  void
)

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

Per la maggior parte (ma non tutte) delle implementazioni TCP, la ricezione di un arresto di invio comporterà anche l'arresto del lato della connessione dell'host remoto, con conseguente chiusura della connessione. Una chiamata successiva a Close() determinerà la terminazione di 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 di livello Inet relativi a specifiche operazioni di arresto degli endpoint.
Vedi anche:
Close() e Abort().