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 utilizzando Weave.
Riepilogo
Quando un'applicazione vuole utilizzare Weave per comunicare con un'entità remota, esiste un'ampia gamma di opzioni. La classe Binding recepisce queste opzioni e le dispone in modo che le cose semplici siano facili e quelle più difficili siano almeno trattabili. Le opzioni illustrate includono:
- comunicazione unicast UDP con un nodo peer noto.
- Trasmissione UDP con nodo "any".
- comunicazione unicast WRMP con un nodo peer noto.
- le comunicazioni TCP con un nodo peer noto.
- Comunicazioni TCP con un endpoint di servizio noto, che utilizza un'istanza del gestore dei servizi per la configurazione.
- Comunicazioni TCP basate su una connessione prestabilita.
Costruttori e distruttori |
|
---|---|
Binding(void)
Il costruttore predefinito per gli oggetti Associazione.
|
|
~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 relativo a questa Binding.
|
mPeerNodeId
|
uint64_t
L'ID nodo a 64 bit della destinazione dell'associazione.
|
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
Gestisci la conferma di una richiesta di associazione.
|
CompleteConfirm(StatusReport & aReport)
|
void
Gestire l'errore di una richiesta di associazione.
|
CompleteConfirm(void)
|
void
Gestisci 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
"Annulla il completamento" di un'associazione e liberala.
|
Finalize(WEAVE_ERROR aErr)
|
void
"Annulla il completamento" di un'associazione e liberala.
|
Free(void)
|
void
Cancella lo stato di associazione.
|
GetExchangeCtx(WeaveExchangeManager *aExchangeMgr, void *aAppState)
|
Produci un oggetto ExchangeContext da un'Binding.
|
IncompleteIndication(StatusReport & aReport)
|
void
Gestisci 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 a un endpoint di servizio.
|
Init(WeaveConnection *aConnection)
|
Inizializza un oggetto Binding con una WeaveConnection.
|
IsComplete(void)
|
bool
Controlla se l'associazione è completa.
|
IsFree(void)
|
bool
Il controllo dell'associazione è senza costi.
|
UncompleteRequest(void)
|
void
Causa l'incompleta dell'associazione.
|
UncompleteRequest(WEAVE_ERROR aErr)
|
void
Causa l'incompleta dell'associazione.
|
Tipi pubblici
@165
@165
L'insieme di stati dell'oggetto Binding.
Proprietà | |
---|---|
kState_Complete
|
Lo stato di un'associazione, completa 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.
(SOLA LETTURA)
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 immediata oppure possono allocarne una al momento del completamento.
mEngine
ProtocolEngine * mEngine
Un puntatore all'oggetto ProtocolEngine relativo a questa Binding.
In genere, un'associazione viene completata in relazione a un particolare motore di protocollo, che viene utilizzato principalmente come modo per accedere a Messagelayer. È qui che ne teniamo traccia.
mPeerNodeId
uint64_t mPeerNodeId
L'ID nodo a 64 bit della destinazione dell'associazione.
(SOLA LETTURA)
Ogni associazione ha un'entità di destinazione, denominata qui. Oltre a un ID nodo Weave, potrebbe assegnare un 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)
Quando viene associato al servizio Weave, al momento dell'inizializzazione è possibile fornire 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.
Può essere eseguita una sola operazione "completata" alla volta e, in ogni caso, se chiedi di completare un'associazione completata, viene richiamata immediatamente la funzione di conferma. La variabile di stato riportata di seguito monitora lo stato corrente e funge da 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 Associazione.
Cancella tutto lo stato interno.
CompleteConfirm
void CompleteConfirm( WeaveConnection *aConnection )
Gestisci 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 )
Gestisci la conferma di una richiesta di associazione.
CompleteRequest
WEAVE_ERROR CompleteRequest( ProtocolEngine *aEngine )
Richiedi il completamento di un'associazione.
Il completamento di un'associazione, almeno per le associazioni che richiedono TCP, viene eseguito in relazione a un particolare oggetto ProtocolEngine, che fornisce l'accesso a un'istanza ExchangeManager.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
||||||
Restituisce |
In caso contrario, qualsiasi WEAVE_ERROR restituito durante il tentativo di connessione.
|
Collega
WEAVE_ERROR Connect( WeaveConnection *aConnection )
Completa un'associazione TCP fornendo una connessione completata.
Un'associazione TCP appena inizializzata non può essere utilizzata fino a quando non è stata completata. 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 )
"Annulla il completamento" di un'associazione e liberala.
Le associazioni possono avere uno stato che richiede la pulizia, ad esempio la chiusura della connessione, che viene gestita dal metodo Uncomplete(). Inoltre, il metodo Free() riporta semplicemente il suo stato iniziale cancellato. Questo metodo, in gran parte per comodità, attiva entrambi.
Vedi anche:Finalizza(WEAVE_ERROR)
Finalizza
void Finalize( WEAVE_ERROR aErr )
"Annulla il completamento" di un'associazione e liberala.
Le associazioni possono avere uno stato che richiede la pulizia, ad esempio la chiusura della connessione, che viene gestita dal metodo Uncomplete(). Inoltre, il metodo Free() riporta semplicemente il suo stato iniziale cancellato. Questo metodo, in gran parte per comodità, attiva entrambi.
Dettagli | |||
---|---|---|---|
Parametri |
|
Finalize(void)
Senza costi
void Free( void )
Cancella lo stato di associazione.
Ripristina incondizionatamente lo stato originale di tutte le associazioni.
GetExchangeCtx
ExchangeContext * GetExchangeCtx( WeaveExchangeManager *aExchangeMgr, void *aAppState )
Produci un oggetto ExchangeContext da un'Binding.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Restituisce |
un puntatore a un oggetto ExchangeContext o NULL in caso di errore.
|
IncompleteIndication
void IncompleteIndication( StatusReport & aReport )
Gestisci l'errore di un'associazione.
Questo metodo viene richiamato e, a sua volta, richiama gestori di livello superiore quando l'associazione non riesce DOPO il completamento, ad esempio dopo che CompleteConfirm() è stato richiamato con uno stato che indica l'esito positivo.
Dettagli | |||
---|---|---|---|
Parametri |
|
CompleteConfirm(StatusReport &aReport).
Inizia
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 |
|
Inizia
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 |
|
Inizia
WEAVE_ERROR Init( const uint64_t & aServiceEpt, WeaveServiceManager *aServiceMgr, WeaveAuthMode aAuthMode )
Inizializzare un oggetto Binding a un endpoint di servizio.
Questo è il modo in cui ti colleghi 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 del servizio locale. Nella maggior parte dei casi, questo processo non è visibile all'applicazione, ma significa che gli errori che si verificano più avanti durante il processo possono essere inviati, di solito tramite il relativo callback "Conferma", dopo, a volte molto dopo, la richiesta originale di utilizzare (e completare) l'associazione.
Dettagli | |||||||
---|---|---|---|---|---|---|---|
Parametri |
|
||||||
Valori restituiti |
|
Inizia
WEAVE_ERROR Init( WeaveConnection *aConnection )
Inizializza un oggetto Binding con una WeaveConnection.
Dettagli | |||||
---|---|---|---|---|---|
Parametri |
|
||||
Valori restituiti |
|
IsComplete
bool IsComplete( void )
Controlla se l'associazione è completa.
Dettagli | |
---|---|
Restituisce |
true se è completa, altrimenti false.
|
CompleteRequest(ProtocolEngine *aEngine)
IsFree
bool IsFree( void )
Il controllo dell'associazione è senza costi.
"Senza costi" in questo contesto significa semplicemente "ha un ID nodo peer definito". IsFree() dovrebbe essere considerato come il significato di "ha ricevuto Free() e non è più utilizzato da allora".
Dettagli | |
---|---|
Restituisce |
true se l'associazione è senza costi, altrimenti false.
|
UncompleteRequest
void UncompleteRequest( void )
Causa l'incompleta dell'associazione.
Fondamentalmente, un'associazione sarà nello stato "incompleto" dopo che questo metodo è stato chiamato, ma, più sottilmente, anche qualsiasi stato pertinente non contenuto nell'associazione stessa, ad esempio la connessione TCP, deve essere ripulito. Le applicazioni potrebbero prendere in considerazione la chiamata a UncompleteRequest() come parte della pulizia in caso di errore.
Vedi anche:UncompleteRequest(WEAVE_ERROR )
UncompleteRequest
void UncompleteRequest( WEAVE_ERROR aErr )
Causa l'incompleta dell'associazione.
Fondamentalmente, un'associazione sarà nello stato "incompleto" dopo che questo metodo è stato chiamato, ma, più sottilmente, anche qualsiasi stato pertinente non contenuto nell'associazione stessa, ad esempio la connessione TCP, deve essere ripulito. Le applicazioni potrebbero prendere in considerazione la chiamata a UncompleteRequest() come parte della pulizia in caso di errore.
Dettagli | |||
---|---|---|---|
Parametri |
|
UncompleteRequest(void)
~Associazione
virtual ~Binding( void )
Il distruttore per gli oggetti Binding.
Cancella tutto lo stato interno E, se necessario, chiude le connessioni aperte.