nl::Weave::Profiles::DataManagement_Current::NotificationEngine::NotifyRequestBuilder

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

Offre una classe di aiutanti per comporre le notifiche e astrarre la costruzione e la struttura del messaggio ai consumatori.

Riepilogo

Si tratta di una versione più compatta di una classe simile fornita in MessageDef.cpp, che mira a essere sensibile alle esigenze di flash e RAM del dispositivo.

Funzioni pubbliche

Checkpoint(TLV::TLVWriter & aPoint)
Controlla lo stato della richiesta in un TLVWriter.
EndDataList()
Termina la creazione dell'array dell'elenco di dati.
EndEventList()
Termina la creazione dell'elenco di eventi.
EndNotifyRequest()
Termina la creazione della notifica.
GetWriter(void)
Init(PacketBuffer *aBuf, TLV::TLVWriter *aWriter, SubscriptionHandler *aSubHandler, uint32_t aMaxPayloadSize)
Inizializza il builder.
MoveToState(NotifyRequestBuilderState aDesiredState)
La funzione di transizione dello stato principale.
Rollback(TLV::TLVWriter & aPoint)
Esegui il rollback dello stato della richiesta nel TLVWriter sottoposto a checkpoint.
StartDataList(void)
Avvia la creazione dell'array dell'elenco di dati.
StartEventList()
Avvia la creazione dell'elenco di eventi.
StartNotifyRequest()
Inizia la creazione della notifica.
WriteDataElement(TraitDataHandle aTraitDataHandle, PropertyPathHandle aPropertyPathHandle, SchemaVersion aSchemaVersion, PropertyPathHandle *aMergeDataHandleSet, uint32_t aNumMergeDataHandles, PropertyPathHandle *aDeleteHandleSet, uint32_t aNumDeleteHandles)
Dato un percorso trait, scrivi l'elemento dei dati associato a quel percorso.

Funzioni pubbliche

Check Point

WEAVE_ERROR Checkpoint(
  TLV::TLVWriter & aPoint
)

Controlla lo stato della richiesta in un TLVWriter.

Dettagli
Parametri
[out] aPoint
Un writer in cui eseguire il checkpoint dello stato dell'autore TLV.
Valori restituiti
WEAVE_NO_ERROR
Un successo.

EndDataList

WEAVE_ERROR EndDataList()

Termina la creazione dell'array dell'elenco di dati.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è presente nel contenitore DataList.
other
Impossibile creare la fine dell'elenco di dati.

EndEventList

WEAVE_ERROR EndEventList()

Termina la creazione dell'elenco di eventi.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è presente nel contenitore EventList.
other
Impossibile creare la fine dell'elenco di dati.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Termina la creazione della notifica.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è al container Notifica.
other
Impossibile definire la fine della notifica.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Init

WEAVE_ERROR Init(
  PacketBuffer *aBuf,
  TLV::TLVWriter *aWriter,
  SubscriptionHandler *aSubHandler,
  uint32_t aMaxPayloadSize
)

Inizializza il builder.

Deve essere chiamato una sola volta.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
other
Impossibile inizializzare il builder.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

La funzione di transizione dello stato principale.

La funzione prende lo stato desiderato (ovvero la fase del generatore di richieste di notifica che vogliamo raggiungere) e trasferisce la richiesta a quello stato. Se lo stato desiderato è uguale a quello attuale, la funzione non produce alcun effetto. In caso contrario, viene allocato un PacketBuffer (se necessario); La funzione esegue prima la transizione della richiesta alla richiesta di notifica di primo livello (apre la struttura TLV della richiesta di notifica o chiude l'attuale contenitore di dati TLV, se necessario), quindi esegue la transizione della richiesta di notifica aprendo il contenitore di dati TLV appropriato o chiudendo la richiesta generale di notifica.

Dettagli
Parametri
aDesiredState
Lo stato desiderato a cui dovrebbe passare la richiesta
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_NO_MEMORY
Impossibile passare allo stato a causa di memoria insufficiente.
WEAVE_ERROR_INCORRECT_STATE
Danneggiamento della macchina a stati interna.
other
Se la macchina a stati non è riuscita a registrare lo stato nel buffer, è probabile che si tratti di un difetto di progettazione anziché di un problema di runtime.

Esegui il rollback

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Esegui il rollback dello stato della richiesta nel TLVWriter sottoposto a checkpoint.

Dettagli
Parametri
[in] aPoint
Uno scrittore che ha catturato lo stato in passato
Valori restituiti
WEAVE_NO_ERROR
Un successo.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

Avvia la creazione dell'array dell'elenco di dati.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è presente nel container Notifica.
other
Impossibile creare l'inizio dell'elenco di dati.

StartEventList

WEAVE_ERROR StartEventList()

Avvia la creazione dell'elenco di eventi.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è presente nel container Notifica.
other
Impossibile creare l'inizio dell'elenco di dati.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Inizia la creazione della notifica.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non è al livello superiore del buffer.
other
Impossibile definire la fine della notifica.

WriteDataElement

WEAVE_ERROR WriteDataElement(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aPropertyPathHandle,
  SchemaVersion aSchemaVersion,
  PropertyPathHandle *aMergeDataHandleSet,
  uint32_t aNumMergeDataHandles,
  PropertyPathHandle *aDeleteHandleSet,
  uint32_t aNumDeleteHandles
)

Dato un percorso trait, scrivi l'elemento dei dati associato a quel percorso.

Facoltativamente, il chiamante può passare in un set di handle che consente di sfruttare l'operazione di unione con un insieme più ristretto di nodi figlio immediati dell'handle del percorso della proprietà principale.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
Un successo.
other
Impossibile recuperare e scrivere l'elemento di dati.