nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

#include <src/lib/profiles/data-management/Current/UpdateEncoder.h>

Questo oggetto codifica i payload UpdateRequest e PartialUpdateRequest di WDM.

Riepilogo

Tieni presente che entrambe le richieste hanno lo stesso formato, si differenziano solo per il tipo di messaggio, che non rientra nell'ambito di questo oggetto.

La codifica viene eseguita in modo sincrono dal metodo EncodeRequest. L'unico altro metodo pubblico è InsertInProgressUpdateItem, che viene chiamato da SchemaEngine quando deve inserire di nuovo un dizionario in coda.

Costruttori e distruttori

UpdateEncoder()
~UpdateEncoder()

Funzioni pubbliche

EncodeRequest(Context & aContext)
Codifica un payload di richiesta di aggiornamento WDM.
InsertInProgressUpdateItem(const TraitPath & aItem)
Aggiungi un percorso privato all'elenco dei percorsi in corso, inserendolo dopo quello in fase di codifica.

Structs

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

Questa struttura contiene gli argomenti I/O per il metodo EncodeRequest.

Funzioni pubbliche

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

Codifica un payload di richiesta di aggiornamento WDM.

Vedi UpdateEncoder::Context. La lunghezza dei dati di PacketBuffer viene aggiornata solo in caso di esito positivo, ma i contenuti del buffer non vengono conservati.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Almeno un DataElement è stato codificato nel DataList del payload.
WEAVE_ERROR_BUFFER_TOO_SMALL
Il primo DataElement non poteva essere inserito nel payload.
WEAVE_ERROR_INVALID_ARGUMENT
aContext è stato inizializzato con valori non validi.
other
Altri errori da oggetti di livello inferiore (TLVWriter, SchemaEngine ecc.).

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

Aggiungi un percorso privato all'elenco dei percorsi in corso, inserendolo dopo quello in fase di codifica.

Questo metodo deve essere chiamato da SchemaEngine quando attraversa la struttura ad albero degli schemi e deve eseguire il push dei dizionari all'elenco.

Dettagli
Parametri
[in] aItem
Il TraitPath da inserire nell'elenco da codificare.
Valori restituiti
WEAVE_NO_ERROR
L'articolo è stato inserito correttamente.
WEAVE_NO_MEMORY
Nel TraitPathStore non c'era spazio per inserire l'elemento.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()