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

Zusammenfassung

Übernahme

Übernimmt 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
Mit einem Pfad-Handle zu einem Knoten, einem TLV-Autor und booleschen Werten, die angeben, ob der Wert null ist oder nicht, werden die Daten aus der Trait-Quelle abgerufen, die eine Benachrichtigung erstellt.
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)
Gibt an, dass das angegebene PropertyPathHandle lokale Änderungen aufweist.
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

Mit einem Pfad-Handle zu einem Knoten, einem TLV-Autor und booleschen Werten, die angeben, ob der Wert null ist oder nicht, werden die Daten aus der Trait-Quelle abgerufen, die eine Benachrichtigung erstellt.

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

Diese Funktion wird nur für Handles aufgerufen, bei denen Nullwerte zulässig, optional, sitzungsspezifisch oder Blätter sind. Es wird erwartet, dass alle Merkmale mit Handles, für die diese Optionen aktiviert sind, die 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 Autor, in den TLV-Elemente geschrieben werden sollen.
[out] aIsNull
Wird ein Alias auf null gesetzt? Wenn ja, schreibt TDM ein Null-Element. Wenn ein Alias kein Blatt ist, überspringt TDM seine untergeordneten Elemente.
[out] aIsPresent
Ist ein Alias vorhanden? Wenn nein und ein Alias kein Blatt ist, überspringt TDM den Pfad und seine untergeordneten Elemente.
Rückgabewerte
WEAVE_NO_ERROR
Bei Erfolg.
other
Daten konnten nicht abgerufen und in den Autor 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
)

Gibt an, dass das angegebene PropertyPathHandle lokale Änderungen aufweist.

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 seiner Vorgänger 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 synchronisiert 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 Verweis auf den SubscriptionClient, der diese Senke verwaltet.
[in] aPropertyHandle
Ein beliebiges gültiges 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 der Gruppe von Properties hinzugefügt wurde, die an den Inhaber des Traits gesendet werden soll.
WEAVE_ERROR_INVALID_ARGUMENT
Der Handle oder der SubscriptionClient-Zeiger sind ungültig.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
Die Trait-Instanz wird bereits mit der entgegengesetzten Bedingung aktualisiert.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
wenn aIsConditional wahr ist, aber die Trait-Instanz keine gültige Version hat.
WEAVE_ERROR_WDM_PATH_STORE_FULL
wenn kein Speicher vorhanden ist, um den Pfad zu speichern.
Other
WEAVE_ERROR Codes abhängig vom Fehler.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Entsperren

void Unlock(
  SubscriptionClient *apSubClient
)