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

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

Questo fornisce una classe helper per comporre notifiche e astrarre la struttura e la struttura del messaggio dai suoi 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()
Terminare 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 principale di transizione di stato.
Rollback(TLV::TLVWriter & aPoint)
Esegui il rollback dello stato della richiesta nel TLVWriter con checkpoint.
StartDataList(void)
Avvia la creazione dell'array dell'elenco di dati.
StartEventList()
Avvia la creazione dell'elenco di eventi.
StartNotifyRequest()
Avvia 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 di 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 inserire un blocco sullo stato dell'autore di TLV.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.

EndDataList

WEAVE_ERROR EndDataList()

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

Dettagli
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova 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
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova nel contenitore EventList.
other
Impossibile creare la fine dell'elenco di dati.

EndNotifyRequest

WEAVE_ERROR EndNotifyRequest()

Terminare la creazione della notifica.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova nel contenitore Notifica.
other
Impossibile creare la fine della notifica.

GetWriter

TLV::TLVWriter * GetWriter(
  void
)

Inizia

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
In caso di successo.
other
Impossibile inizializzare il builder.

MoveToState

WEAVE_ERROR MoveToState(
  NotifyRequestBuilderState aDesiredState
)

La funzione principale di transizione di stato.

La funzione acquisisce lo stato desiderato (ovvero la fase del generatore di richieste di notifica che vogliamo raggiungere) e trasferisce la richiesta in quello stato. Se lo stato desiderato corrisponde a quello attuale, la funzione non esegue alcuna azione. In caso contrario, viene assegnato un PacketBuffer (se necessario); la funzione trasferisce prima la richiesta alla richiesta di notifica di primo livello (aprendo la struttura TLV della richiesta di notifica o chiudendo l'attuale container di dati TLV, se necessario), quindi esegue la transizione della richiesta di notifica aprendo il container di dati TLV appropriato o chiudendo la richiesta Notifica generale.

Dettagli
Parametri
aDesiredState
Lo stato desiderato in cui deve passare la richiesta
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_NO_MEMORY
Impossibile passare allo stato a causa di memoria insufficiente.
WEAVE_ERROR_INCORRECT_STATE
Danneggiamento della macchina di stato interna.
other
Quando la macchina a stati non ha potuto registrare lo stato nel buffer, probabilmente si tratta di un difetto di progettazione piuttosto che di un problema di runtime.

Esegui il rollback

WEAVE_ERROR Rollback(
  TLV::TLVWriter & aPoint
)

Esegui il rollback dello stato della richiesta nel TLVWriter con checkpoint.

Dettagli
Parametri
[in] aPoint
Uno scrittore che ha catturato l'attenzione dello stato in un determinato momento
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.

StartDataList

WEAVE_ERROR StartDataList(
  void
)

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

Dettagli
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova nel contenitore per la 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
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova nel contenitore per la notifica.
other
Impossibile creare l'inizio dell'elenco di dati.

StartNotifyRequest

WEAVE_ERROR StartNotifyRequest()

Avvia la creazione della notifica.

Dettagli
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
WEAVE_ERROR_INCORRECT_STATE
Se la richiesta non si trova al livello superiore del buffer.
other
Impossibile creare 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 di dati associato a quel percorso.

Il chiamante può anche facoltativamente passare un set di handle, in modo da sfruttare l'operazione di unione con un insieme più ristretto di nodi secondari immediati dell'handle del percorso della proprietà principale.

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