nl:: Weave:: Profiles:: DataManagement_Legacy:: Binding
#include <src/lib/profiles/data-management/Legacy/Binding.h>
La classe Binding gestisce lo stato delle comunicazioni per conto di un'entità applicativa che utilizza Weave.
Riepilogo
Quando un'applicazione vuole utilizzare Weave per comunicare con un'entità remota, esiste un'ampia varietà di opzioni. La classe Binding raggruppa queste opzioni e le organizza in modo che le cose semplici siano facili e quelle più difficili siano almeno gestibili. Le opzioni illustrate includono:
- comunicazione unicast UDP con un nodo peer noto.
- Trasmissione UDP con "qualsiasi" nodo.
- comunicazione WRMP unicast con un nodo peer noto.
- comunicazioni TCP con un nodo peer noto.
- Comunicazioni TCP con un endpoint di servizio noto che utilizza un'istanza del gestore di servizi per la configurazione.
- Comunicazioni TCP basate su una connessione prestabilita.
Costruttori e distruttori |
|
---|---|
Binding(void)
Il costruttore predefinito per gli oggetti Binding.
|
|
~Binding(void)
Il distruttore per gli oggetti Binding.
|
Tipi pubblici |
|
---|---|
@165{
|
enum L'insieme di stati dell'oggetto Binding. |
Attributi pubblici |
|
---|---|
mAuthMode
|
WeaveAuthMode
La modalità di autenticazione Weave da utilizzare.
|
mConnection
|
Un puntatore alla connessione Weave attualmente in uso in questa associazione.
|
mEngine
|
Un puntatore all'oggetto ProtocolEngine correlato a questa associazione.
|
mPeerNodeId
|
uint64_t
L'ID nodo a 64 bit dell'associazione di destinazione.
|
mServiceMgr
|
Un puntatore all'oggetto ServiceManager (facoltativo) da utilizzare per completare l'associazione.
|
mState
|
uint8_t
Lo stato attuale dell'oggetto Binding.
|
mTransport
|
uint8_t
Il trasporto da utilizzare per completare questa associazione.
|
Funzioni pubbliche |
|
---|---|
CompleteConfirm(WeaveConnection *aConnection)
|
void
Gestire la conferma di una richiesta di associazione.
|
CompleteConfirm(StatusReport & aReport)
|
void
Gestire l'errore di una richiesta di associazione.
|
CompleteConfirm(void)
|
void
Gestire la conferma di una richiesta di associazione.
|
CompleteRequest(ProtocolEngine *aEngine)
|
Richiedi il completamento di un'associazione.
|
Connect(WeaveConnection *aConnection)
|
Completa un'associazione TCP fornendo una connessione completata.
|
Finalize(void)
|
void
"Non completato" rileggere l'associazione e liberarla.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Non completato" rileggere l'associazione e liberarla.
|
Free(void)
|
void
Cancella lo stato di associazione.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Genera un oggetto ExchangeContext da un oggetto Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Gestire l'errore di un'associazione.
|
Init(const uint64_t & aPeerNodeId)
|
Inizializza un'associazione solo con un ID nodo.
|
Init(const uint64_t & aPeerNodeId, uint8_t aTransport)
|
Inizializza un oggetto Binding in base all'ID peer e al trasporto.
|
Init(const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode)
|
Inizializzare un oggetto Binding in un endpoint di servizio.
|
Init(WeaveConnection *aConnection)
|
Inizializza un oggetto Binding con una WeaveConnection.
|
IsComplete(void)
|
bool
Controlla se un'associazione è completa.
|
IsFree(void)
|
bool
Il segno di spunta è che l'associazione è senza costi.
|
UncompleteRequest(void)
|
void
Associazione incompleta.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Associazione incompleta.
|
Tipi pubblici
@165
@165
L'insieme di stati dell'oggetto Binding.
Proprietà | |
---|---|
kState_Complete
|
Lo stato di un'associazione completata e pronta per l'uso. |
kState_Completing
|
Lo stato di un'associazione in fase di completamento. |
kState_Incomplete
|
Lo stato iniziale (e finale) di un'associazione. |
Attributi pubblici
mAuthMode
WeaveAuthMode mAuthMode
La modalità di autenticazione Weave da utilizzare.
(READ_ONLY)
Questa è la modalità di autenticazione utilizzata in tutte le comunicazioni regolate da questa associazione.
mConnection
WeaveConnection * mConnection
Un puntatore alla connessione Weave attualmente in uso in questa associazione.
(SOLA LETTURA)
Le associazioni TCP possono essere inizializzate con una connessione immediatamente o possono assegnarne una al momento del completamento.
mEngine
ProtocolEngine * mEngine
Un puntatore all'oggetto ProtocolEngine correlato a questa associazione.
Un'associazione viene generalmente completata rispetto a un particolare motore di protocollo, che viene principalmente utilizzato come modo per accedere a Messagelayer. È qui che teniamo traccia di tutto questo.
mPeerNodeId
uint64_t mPeerNodeId
L'ID nodo a 64 bit dell'associazione di destinazione.
(SOLA LETTURA)
Ogni associazione ha un'entità target, che è denominata qui. Oltre a un ID nodo Weave, è possibile assegnare il nome a un endpoint di servizio.
mServiceMgr
nl::Weave::Profiles::ServiceDirectory::WeaveServiceManager * mServiceMgr
Un puntatore all'oggetto ServiceManager (facoltativo) da utilizzare per completare l'associazione.
(SOLA LETTURA)
Durante l'associazione al servizio Weave, è possibile che al momento dell'inizializzazione venga fornito un ID endpoint di servizio a 64 bit al posto di un ID nodo Weave. In questo caso, per completare l'associazione è necessario anche un oggetto ServiceManager. Le normali associazioni TCP o WRMP non richiedono un oggetto ServiceManager.
mState
uint8_t mState
Lo stato attuale dell'oggetto Binding.
Solo un elemento "completato" dell'operazione può essere eseguita alla volta e, in ogni caso, se chiedi di completare un'associazione completata, viene chiamata immediatamente la funzione di conferma. La variabile di stato riportata di seguito monitora lo stato corrente e agisce come un blocco.
mTransport
uint8_t mTransport
Il trasporto da utilizzare per completare questa associazione.
(SOLA LETTURA)
I valori possibili per mTransport sono definiti in DMConstants.h.
Funzioni pubbliche
Associazione
Binding( void )
Il costruttore predefinito per gli oggetti Binding.
Cancella tutti gli stati interni.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Gestire la conferma di una richiesta di associazione.
Dettagli | |||
---|---|---|---|
Parametri |
|
CompleteConfirm
void CompleteConfirm( StatusReport & aReport )
Gestire l'errore di una richiesta di associazione.
Dettagli | |||
---|---|---|---|
Parametri |
|
CompleteConfirm
void CompleteConfirm( void )
Gestire la conferma di una richiesta di associazione.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Richiedi il completamento di un'associazione.
Il completamento di un'associazione viene eseguito, almeno per le associazioni che richiedono TCP, rispetto a un particolare oggetto ProtocolEngine, che fornisce l'accesso a un'istanza di ExchangeManager.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
||||||
Restituisce |
In caso contrario, l'errore WEAVE_ERROR è stato restituito durante il tentativo di connessione.
|
Connetti
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Completa un'associazione TCP fornendo una connessione completata.
Un'associazione TCP appena inizializzata non può essere utilizzata fino al completamento. Normalmente questa operazione viene eseguita on demand quando l'applicazione tenta di utilizzare l'associazione per inviare messaggi, ma può anche essere completata esplicitamente fornendo una connessione Weave.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
Finalizza
void Finalize( void )
"Non completato" rileggere l'associazione e liberarla.
Le associazioni possono avere uno stato che deve essere ripulito, ad esempio chiusura della connessione, gestita dal metodo Uncomplete() oltre allo stato che viene semplicemente ripristinato allo stato iniziale dal metodo Free(). Questo metodo, principalmente per comodità, richiama entrambi.
Vedi anche:Finalizza(WEAVE_ERROR)
Finalizza
void Finalize( WEAVE_ERROR aErr )
"Non completato" rileggere l'associazione e liberarla.
Le associazioni possono avere uno stato che richiede una pulizia, ad esempio chiusura della connessione, gestita dal metodo Uncomplete() oltre allo stato che viene semplicemente ripristinato allo stato iniziale dal metodo Free(). Questo metodo, principalmente per comodità, richiama entrambi.
Dettagli | |||
---|---|---|---|
Parametri |
|
Finalizza(void)
Gratis
void Free( void )
Cancella lo stato di associazione.
Ripristina in modo incondizionato tutto lo stato di associazione al suo stato originale.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Genera un oggetto ExchangeContext da un oggetto Binding.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
un puntatore a un oggetto ExchangeContext o NULL in caso di errore.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Gestire l'errore di un'associazione.
Questo metodo viene richiamato e, a sua volta, richiama i gestori di livello superiore quando l'associazione non va a buon fine DOPO il completamento, ovvero dopo che CompleteConfirm() è stato richiamato con uno stato che indica l'esito positivo.
Dettagli | |||
---|---|---|---|
Parametri |
|
CompleteConfirm(StatusReport &aReport).
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId )
Inizializza un'associazione solo con un ID nodo.
Questo determina un'associazione con il trasporto predefinito configurato.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
Init
WEAVE_ERROR Init( const uint64_t & aPeerNodeId, uint8_t aTransport )
Inizializza un oggetto Binding in base all'ID peer e al trasporto.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
Init
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inizializzare un oggetto Binding in un endpoint di servizio.
In questo modo puoi collegarti a un determinato endpoint sul servizio Nest. Un'associazione di questo tipo richiede un processo di completamento in più fasi, che può includere il completamento o l'aggiornamento della cache della directory dei servizi locali. Per la maggior parte, questa procedura non è visibile alla domanda, ma significa che gli errori che si verificano in un secondo momento potrebbero essere recapitati, normalmente tramite il relativo pulsante di conferma. dopo, a volte molto tempo dopo, la richiesta originale di utilizzare (e completare) l'associazione.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
Init
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inizializza un oggetto Binding con una WeaveConnection.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
IsComplete
bool IsComplete( void )
Controlla se un'associazione è completa.
Dettagli | |
---|---|
Restituisce |
true se è completo, false in caso contrario.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Il segno di spunta è che l'associazione è senza costi.
"Senza costi" in questo contesto significa semplicemente: "ha un nodo peer definito ID". IsFree() should be thought of as meaning "has had Free() chiamato e non viene più utilizzato da allora".
Dettagli | |
---|---|
Restituisce |
true se l'associazione è senza costi, false in caso contrario.
|
UncompleteRequest
void UncompleteRequest( void )
Associazione incompleta.
Fondamentalmente, un'associazione deve essere nel campo "incompleto" stato chiamato dopo che questo metodo è stato chiamato ma, in modo più discreto, qualsiasi stato pertinente non contenuto nell'associazione stessa, ad esempio TCP, dovrebbe essere anch'essa pulita. Le applicazioni potrebbero prendere in considerazione la possibilità di richiamare UncompleteRequest() nell'ambito della pulizia in caso di errore.
Vedi anche:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Associazione incompleta.
Fondamentalmente, un'associazione deve essere nel campo "incompleto" stato chiamato dopo che questo metodo è stato chiamato ma, in modo più discreto, qualsiasi stato pertinente non contenuto nell'associazione stessa, ad esempio TCP, dovrebbe essere anch'essa pulita. Le applicazioni potrebbero prendere in considerazione la possibilità di richiamare UncompleteRequest() nell'ambito della pulizia in caso di errore.
Dettagli | |||
---|---|---|---|
Parametri |
|
UncompleteRequest(void)
~Associazione
virtual ~Binding( void )
Il distruttore per gli oggetti Binding.
Cancella tutti gli stati interni E, se necessario, chiude le connessioni aperte.