nl::Weave::Profiles::DataManagement_Legacy::DMClient

#include <src/lib/profiles/data-management/Legacy/DMClient.h>

La classe base astratta per i client WDM specifici dell'applicazione.

Riepilogo

DMClient è il client WDM standard. Facoltativamente, l'implementazione include l'abbonamento/la notifica. È un mix della classe DM ProtocolEngine, che gestisce le comunicazioni crank-turning, e la classe ClientDataManager completamente astratta, con alcuni dei metodi relativi agli abbonamenti implementati in modo che i livelli più alti non debbano preoccuparsene.

I gestori per le attività relative agli abbonamenti agiscono principalmente come un adattatore sottile sull'oggetto ClientNotifier. Gli utenti che implementano le sottoclassi dovrebbero fare attenzione a chiamare i metodi super-classi pertinenti per far funzionare la gestione degli abbonamenti.

I metodi di richiesta DMClient generalmente hanno due firme, una con un ID nodo di destinazione esplicito e l'altra con una destinazione specificata. In entrambi i casi, la possibilità di inviare un messaggio a un publisher dipende da un'associazione preesistente nel client ma, nel primo caso, l'ID destinazione è destinato a scegliere tra più destinazioni associate e, nel secondo, il primo elemento della tabella di associazione viene selezionato per impostazione predefinita. Ciò è utile, ad esempio, se il cliente viene associato a un solo publisher.

Eredità

Eredita da:
  nl::Weave::Profiles::DataManagement_Legacy::ProtocolEngine
  nl::Weave::Profiles::DataManagement_Legacy::ClientDataManager

Costruttori e distruttori

DMClient(void)
Il costruttore predefinito per gli oggetti DMClient.
~DMClient(void)
Il distruttore per gli oggetti DMClient.
ViewRequest(const uint64_t & aDestinationId, ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Richiedi una visualizzazione dei dati pubblicati.
ViewRequest(ReferencedTLVData & aPathList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Richiedi una visualizzazione dei dati sul publisher predefinito.
UpdateRequest(const uint64_t & aDestinationId, ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Richiedi un aggiornamento dei dati pubblicati.
UpdateRequest(ReferencedTLVData & aDataList, uint16_t aTxnId, uint32_t aTimeout)
virtual WEAVE_ERROR
Richiedi un aggiornamento dei dati relativi al publisher predefinito.

Attributi protetti

mUpdatePool[kUpdatePoolSize]
mViewPool[kViewPoolSize]

Funzioni pubbliche

CancelTransactionRequest(uint16_t aTxnId, WEAVE_ERROR aError)
Richiedi l'annullamento di una transazione in esecuzione.
Clear(void)
virtual void
Cancella lo stato interno associato a un oggetto DMClient.
Finalize(void)
virtual void
Arresta un DMClient operativo.
IncompleteIndication(Binding *aBinding, StatusReport & aReport)
virtual void
Gestisci il "completamento" di un'associazione in uso da parte del client.

Funzioni protette

NewUpdate(void)
Update *
NewView(void)
View *

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Richiedi una visualizzazione dei dati pubblicati.

Richiedi una visualizzazione dei dati residenti e gestiti da un publisher remoto specificato.

Dettagli
Parametri
[in] aDestinationId
Un riferimento all'ID nodo a 64 bit del publisher remoto.
[in] aPathList
Un riferimento a un oggetto ReferencedTLVData contenente un elenco di percorsi con codifica TLV che indica i dati richiesti.
[in] aTxnId
Identificatore per la transazione WDM configurata per gestire questa operazione di visualizzazione.
[in] aTimeout
Un tempo massimo in millisecondi di attesa per la risposta della visualizzazione.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_NO_MEMORY
Se non è stato possibile allocare una transazione.
Restituisce
In caso contrario, viene visualizzato un messaggio WEAVE_ERROR che indica l'impossibilità di inizializzare o avviare la transazione.

ViewRequest

virtual WEAVE_ERROR ViewRequest(
  ReferencedTLVData & aPathList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Richiedi una visualizzazione dei dati sul publisher predefinito.

Richiedi una visualizzazione dei dati che risiedono e sono gestiti dal publisher "predefinito", ovvero il primo (o unico) publisher nella tabella di associazione del cliente.

Dettagli
Parametri
[in] aPathList
Un riferimento a un oggetto ReferencedTLVData contenente un elenco di percorsi con codifica TLV che indica i dati richiesti.
[in] aTxnId
Identificatore per la transazione WDM configurata per gestire questa operazione di visualizzazione.
[in] aTimeout
Un tempo massimo in millisecondi di attesa per la risposta della visualizzazione.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_NO_MEMORY
Se non è stato possibile allocare una transazione.
Restituisce
In caso contrario, viene visualizzato un messaggio WEAVE_ERROR che indica l'impossibilità di inizializzare o avviare la transazione.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  const uint64_t & aDestinationId,
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Richiedi un aggiornamento dei dati pubblicati.

Richiedere a un publisher remoto di aggiornare i dati in gestione.

Dettagli
Parametri
[in] aDestinationId
Un riferimento all'ID nodo a 64 bit del publisher remoto a cui viene inviata la richiesta.
[in] aDataList
Un riferimento a un oggetto ReferencedTLVData contenente un elenco di dati con codifica TLV contenente una rappresentazione dell'aggiornamento con i percorsi a cui deve essere applicato l'aggiornamento.
[in] aTxnId
Identificatore della transazione configurata per gestire la richiesta di aggiornamento.
[in] aTimeout
Un tempo massimo in millisecondi di attesa per il report di stato corrispondente.
Restituisce
WEAVE_NO_ERROR in caso di esito positivo o WEAVE_ERROR_NO_MEMORY se non è stato possibile allocare una transazione di aggiornamento. Altrimenti, restituisci un WEAVE_ERROR che rifletta un errore di aggiornamento.

UpdateRequest

virtual WEAVE_ERROR UpdateRequest(
  ReferencedTLVData & aDataList,
  uint16_t aTxnId,
  uint32_t aTimeout
)

Richiedi un aggiornamento dei dati relativi al publisher predefinito.

Richiedere a un publisher remoto di aggiornare i dati in gestione. Questa versione indirizza la richiesta al publisher di destinazione dell'associazione predefinita del cliente.

Dettagli
Parametri
[in] aDataList
Un riferimento a un oggetto ReferencedTLVData contenente un elenco di dati con codifica TLV contenente una rappresentazione dell'aggiornamento con i percorsi a cui deve essere applicato l'aggiornamento.
[in] aTxnId
Identificatore della transazione configurata per gestire la richiesta di aggiornamento.
[in] aTimeout
Un tempo massimo in millisecondi di attesa per il report di stato corrispondente.
Restituisce
WEAVE_NO_ERROR in caso di esito positivo o WEAVE_ERROR_NO_MEMORY se non è stato possibile allocare una transazione di aggiornamento. Altrimenti, restituisci un WEAVE_ERROR che rifletta un errore di aggiornamento.

Attributi protetti

mUpdatePool

Update mUpdatePool[kUpdatePoolSize]

mViewPool

View mViewPool[kViewPoolSize]

Funzioni pubbliche

CancelTransactionRequest

WEAVE_ERROR CancelTransactionRequest(
  uint16_t aTxnId,
  WEAVE_ERROR aError
)

Richiedi l'annullamento di una transazione in esecuzione.

Questo metodo non genera traffico di rete, ma rilascia solo le risorse allocate per le transazioni specificate

Dettagli
Parametri
[in] aTxnId
Il numero della transazione da annullare. Se viene fornito kTransactionIdNot specifichi, tutte le transazioni vengono annullate.
[in] aError
Il valore WEAVE_ERROR da segnalare quando annulli la transazione.
Restituisce
WEAVE_NO_ERROR in caso di esito positivo o WEAVE_ERROR che indica un errore di annullamento della transazione.

Cancella

virtual void Clear(
  void
)

Cancella lo stato interno associato a un oggetto DMClient.

In particolare, questo metodo cancella tutti i pool di transazioni client. Per i clienti che hanno utilizzato è preferibile il metodo Finalize() poiché consente di annullare anche gli abbonamenti e di ripulire le tabelle delle transazioni e delle associazioni.

Vedi anche:
Finalize()

DMClient

 DMClient(
  void
)

Il costruttore predefinito per gli oggetti DMClient.

Cancella tutto lo stato interno. Un DMClient richiede un'ulteriore inizializzazione con Init() prima dell'uso.

Finalizza

virtual void Finalize(
  void
)

Arresta un DMClient operativo.

Cancella tutto lo stato operativo associato al client e rimuove tutte le sottoscrizioni correlate dall'utilità di notifica. Dopo una chiamata a Finalize(), è possibile reinizializzare un DMClient semplicemente chiamando Init(). La funzione Finalize() viene richiamata dal distruttore DMClient ma può essere chiamata nel caso in cui DMClient richieda la pulizia, ad esempio in caso di errore o di arresto temporaneo, ma potrebbe essere necessario ricostituire in un secondo momento.

IncompleteIndication

virtual void IncompleteIndication(
  Binding *aBinding,
  StatusReport & aReport
)

Gestisci il "completamento" di un'associazione in uso da parte del client.

Questo metodo viene chiamato quando un'associazione si arresta in modo imprevisto, ad esempio se la connessione coinvolta nell'associazione è chiusa.

Dettagli
Parametri
[in] aBinding
Un puntatore all'Associazione che è diventata incompleta.
[in] aReport
Un riferimento a un report di stato che spiega il motivo dell'errore.

~DMClient

virtual  ~DMClient(
  void
)

Il distruttore per gli oggetti DMClient.

Cancella tutto lo stato interno e, se necessario, annulla gli abbonamenti in sospeso.

Funzioni protette

NewUpdate

Update * NewUpdate(
  void
)

NewView

View * NewView(
  void
)