nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

Riepilogo

Eredità

Eredita da:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Costruttori e distruttori

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Funzioni pubbliche

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Data un handle del percorso di un nodo, un writer TLV e i valori booleani che indicano se il valore è nullo o meno, ottieni i dati dall'origine del trait che genererà una notifica.
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
Dichiara che l'elemento PropertyPathHandle specificato ha modifiche locali.
Unlock(SubscriptionClient *apSubClient)
void

Funzioni pubbliche

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

Data un handle del percorso di un nodo, un writer TLV e i valori booleani che indicano se il valore è nullo o meno, ottieni i dati dall'origine del trait che genererà una notifica.

Se l'handle del percorso non è un nodo foglia, TDM gestirà la scrittura dei valori per il writer (come l'apertura dei container, l'annullamento dello struct e così via). Se un nodo non foglia è nullo o non è presente, TDM non chiamerà GetData per i relativi nodi figlio.

Questa funzione verrà chiamata solo per gli handle che sono nullable, facoltativi, temporanei o leaf. L'aspettativa è che tutti i trait con handle che hanno abilitato queste opzioni implementeranno la logica appropriata per compilare aIsNull e aIsPresent.

Dettagli
Parametri
[in] aHandle
Il PropertyPathHandle in questione.
[in] aTagToWrite
Il tag da scrivere per aHandle.
[in,out] aWriter
L'autore in cui scrivere gli elementi TLV.
[out] aIsNull
Un handle è annullato? Se sì, TDM scriverà un elemento null. Se aHandle non è una foglia, TDM ignorerà i relativi figli.
[out] aIsPresent
È presente un handle? Se no e se aHandle non è una foglia, TDM ignorerà il percorso e i relativi figli.
Valori restituiti
WEAVE_NO_ERROR
In caso di successo.
other
Impossibile recuperare i dati e scriverli nel writer.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Blocca

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

Dichiara che l'elemento PropertyPathHandle specificato ha modifiche locali.

NotificationEngine non sostituirà l'handle e i relativi discendenti finché la richiesta di aggiornamento non sarà stata elaborata. L'applicazione riceverà i callback kEvent_OnUpdateComplete per questo handle o per uno dei suoi predecessori in seguito all'operazione di aggiornamento. La modifica può essere condizionale o meno. Gli aggiornamenti condizionali dei dati andranno persi se la copia locale dell'istanza del trait non è più sincronizzata con quella del publisher perché è stata modificata dal publisher stesso o da un altro client. Le mutazioni condizionali e incondizionate non sono supportate contemporaneamente nella stessa istanza del trait.

Dettagli
Parametri
[in] apSubClient
Un puntatore al SubscriptionClient che gestisce questo sink.
[in] aPropertyHandle
Qualsiasi elemento PropertyPathHandle valido per questa istanza Trait.
[in] aIsConditional
True per un aggiornamento condizionale; false negli altri casi.
Valori restituiti
WEAVE_NO_ERROR
se l'handle della proprietà è stato aggiunto correttamente all'insieme di proprietà da inviare al proprietario del trait.
WEAVE_ERROR_INVALID_ARGUMENT
se l'handle o il puntatore SubscriptionClient non sono validi.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
se l'istanza del trait è già in fase di aggiornamento con la condizionalità opposta.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
se aIsConditional è true, ma l'istanza del trait non ha una versione valida.
WEAVE_ERROR_WDM_PATH_STORE_FULL
se non è disponibile memoria per l'archiviazione del percorso.
Other
Codici WEAVE_ERROR a seconda dell'errore.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Sblocca

void Unlock(
  SubscriptionClient *apSubClient
)