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
Dati l'handle di un percorso verso un nodo, un writer TLV e i valori booleani che indicano se il valore è nullo o meno, ricevono i dati dall'origine del trait che creerà 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 presenta 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

Dati l'handle di un percorso verso un nodo, un writer TLV e i valori booleani che indicano se il valore è nullo o meno, ricevono i dati dall'origine del trait che creerà una notifica.

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

Questa funzione verrà richiamata solo per gli handle che sono annullabili, facoltativi, temporanei o foglia. Tutti i trait con handle in cui sono abilitate queste opzioni implementeranno una logica appropriata per compilare aIsNull e aIsPresent.

Dettagli
Parametri
[in] aHandle
Il valore PropertyPathHandle in questione.
[in] aTagToWrite
Il tag da scrivere per aHandle.
[in,out] aWriter
L'autore in cui scrivere gli elementi TLV.
[out] aIsNull
aHandle è stato annullato? In caso affermativo, TDM scriverà un elemento nullo. Se aHandle non è una foglia, TDM ignorerà i relativi figli.
[out] aIsPresent
È presente un handle? Se la risposta è no e se aHandle non è una foglia, il TDM ignorerà il percorso e i relativi figli.
Valori restituiti
WEAVE_NO_ERROR
Un successo.
other
Non è stato in grado di 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 presenta modifiche locali.

NotificationEngine non eseguirà l'override dell'handle e dei relativi discendenti finché la richiesta di aggiornamento non è stata elaborata. L'applicazione riceverà i callback kEvent_OnUpdateComplete per questo handle o per uno dei suoi predecessori con il risultato dell'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 dell'editore perché è stata mutata dal publisher stesso o da un altro client. Le mutazioni condizionali e incondizionate non sono supportate contemporaneamente nella stessa istanza di tratto.

Dettagli
Parametri
[in] apSubClient
Un puntatore al SubscriptionClient che gestisce questo sink.
[in] aPropertyHandle
Qualsiasi valore 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 trait è già in fase di aggiornamento con la condizionalità opposta.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
se aIsConditional è true ma l'istanza trait non ha una versione valida.
WEAVE_ERROR_WDM_PATH_STORE_FULL
se non c'è memoria per archiviare il percorso.
Other
WEAVE_ERROR codici a seconda dell'errore.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Sblocca

void Unlock(
  SubscriptionClient *apSubClient
)