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

Zusammenfassung

Übernahme

Übernommen von:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Konstruktoren und Zerstörer

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Öffentliche Funktionen

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Bei einem Pfad-Handle zu einem Knoten, einem TLV-Writer und booleschen Werten, die angeben, ob der Wert null ist oder nicht vorhanden ist, werden die Daten von der Trait-Quelle abgerufen, von der eine Benachrichtigung erstellt wird.
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)
Deklariert, dass der angegebene PropertyPathHandle lokale Änderungen enthält.
Unlock(SubscriptionClient *apSubClient)
void

Öffentliche Funktionen

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

Bei einem Pfad-Handle zu einem Knoten, einem TLV-Writer und booleschen Werten, die angeben, ob der Wert null ist oder nicht vorhanden ist, werden die Daten von der Trait-Quelle abgerufen, von der eine Benachrichtigung erstellt wird.

Wenn das Pfad-Handle kein Blattknoten ist, verarbeitet TDM das Schreiben von Werten für den Writer (z. B. Öffnen von Containern, NULL-Wert der Struktur usw.). Wenn ein Nicht-Blatt-Knoten null ist oder nicht vorhanden ist, ruft TDM GetData für seine untergeordneten Knoten nicht auf.

Diese Funktion wird nur für Handles aufgerufen, die Nullwerte zulässig, optional, sitzungsspezifisch oder Blattteile sind. Es wird erwartet, dass alle Merkmale mit Handles, für die diese Optionen aktiviert sind, eine entsprechende Logik zum Ausfüllen von aIsNull und aIsPresent implementieren.

Details
Parameter
[in] aHandle
Der betreffende PropertyPathHandle.
[in] aTagToWrite
Das Tag, das für den aHandle geschrieben werden soll.
[in,out] aWriter
Der Writer, in den TLV-Elemente geschrieben werden soll.
[out] aIsNull
Ist ein aHandle annulliert? Wenn ja, schreibt TDM ein Null-Element. Wenn ein Handle kein Blatt ist, überspringt TDM die untergeordneten Elemente.
[out] aIsPresent
Ist ein Handle vorhanden? Wenn nein und wenn aHandle kein Blatt ist, überspringt TDM den Pfad und seine untergeordneten Elemente.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Es konnten keine Daten abgerufen und in den Writer geschrieben werden.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Sperren

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
)

Deklariert, dass der angegebene PropertyPathHandle lokale Änderungen enthält.

Die NotificationEngine überschreibt den Handle und seine Nachfolger erst, wenn die Aktualisierungsanfrage verarbeitet wurde. Die Anwendung empfängt kEvent_OnUpdateComplete-Rückrufe für diesen Handle oder für einen ihrer Ancestors mit dem Ergebnis des Aktualisierungsvorgangs. Die Änderung kann bedingt sein oder nicht. Bedingte Datenaktualisierungen gehen verloren, wenn die lokale Kopie der Trait-Instanz nicht mehr mit der des Publishers synchron ist, weil sie vom Publisher selbst oder von einem anderen Client geändert wurde. Bedingte und bedingungslose Mutationen werden nicht gleichzeitig in derselben Trait-Instanz unterstützt.

Details
Parameter
[in] apSubClient
Ein Zeiger auf den SubscriptionClient, der diese Senke verwaltet.
[in] aPropertyHandle
Jeder gültige PropertyPathHandle für diese Trait-Instanz.
[in] aIsConditional
„True“ für ein bedingtes Update, andernfalls „false“.
Rückgabewerte
WEAVE_NO_ERROR
wenn das Property-Handle erfolgreich zu den Properties hinzugefügt wurde, die an den Inhaber der Eigenschaft gesendet werden sollen.
WEAVE_ERROR_INVALID_ARGUMENT
wenn der Handle oder der SubscriptionClient-Zeiger ungültig ist.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
wenn die Trait-Instanz bereits mit der entgegengesetzten Bedingung aktualisiert wird.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
aIsConditional ist „true“, aber die Trait-Instanz hat keine gültige Version.
WEAVE_ERROR_WDM_PATH_STORE_FULL
Es gibt keinen Arbeitsspeicher zum Speichern des Pfads.
Other
WEAVE_ERROR-Codes abhängig vom Fehler.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Entsperren

void Unlock(
  SubscriptionClient *apSubClient
)