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

Podsumowanie

Dziedziczenie

Dziedziczy z:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

Konstruktorzy i niszczyciele

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

Funkcje publiczne

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Biorąc pod uwagę uchwyt ścieżki do węzła, zapis TLV i wartości logiczne wskazujące, czy wartość jest null, czy nie, pobierz dane ze źródła cechy, które wygeneruje powiadomienie.
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)
Deklaruje, że podana metoda PropertyPathHandle zawiera lokalne zmiany.
Unlock(SubscriptionClient *apSubClient)
void

Funkcje publiczne

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

Biorąc pod uwagę uchwyt ścieżki do węzła, zapis TLV i wartości logiczne wskazujące, czy wartość jest null, czy nie, pobierz dane ze źródła cechy, które wygeneruje powiadomienie.

Jeśli uchwyt ścieżki nie jest węzłem liścia, TDM zajmie się zapisywaniem wartości do zapisu (np. otwieranie kontenerów, usuwanie wartości struct itp.). Jeśli węzeł inny niż liść ma wartość null lub nie ma go, TDM nie wywoła GetData dla swoich elementów podrzędnych.

Ta funkcja będzie wywoływana tylko w przypadku nicków, które mogą mieć wartość null, być opcjonalne, efemeryczne lub liście. Można się spodziewać, że wszystkie cechy z nickami, w których te opcje są włączone, będą implementowały odpowiednie logiki do wypełniania pól aIsNull i aIspresent.

Szczegóły
Parametry
[in] aHandle
Obiekt PropertyPathHandle.
[in] aTagToWrite
Tag zapisywany dla aHandle.
[in,out] aWriter
Autor, do którego należy napisać elementy TLV.
[out] aIsNull
Czy parametr aHandle ma wartość null? Jeśli tak, TDM zapisze element o wartości null. Jeśli aHandle nie jest liściem, TDM pominie elementy podrzędne.
[out] aIsPresent
Czy jest dostępny aHandle? Jeśli nie, a nick nie jest liściem, TDM pominie ścieżkę i jej elementy podrzędne.
Zwracane wartości
WEAVE_NO_ERROR
Na sukces.
other
Nie udało się pobrać danych i zapisać ich w maszynie do zapisu.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Zamek

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
)

Deklaruje, że podana metoda PropertyPathHandle zawiera lokalne zmiany.

Do momentu przetworzenia żądania aktualizacji NotificationEngine nie zastąpi nicku ani jego elementów podrzędnych. W wyniku operacji aktualizacji aplikacja będzie otrzymywać wywołania zwrotne kEvent_OnUpdateComplete dla tego uchwytu lub jednego z jego elementów nadrzędnych. Modyfikacja może być warunkowa lub nie. Warunkowe aktualizacje danych zostaną utracone, jeśli lokalna kopia instancji cechy nie jest już zsynchronizowana z wydawcą, ponieważ została zmutowana przez wydawcę lub innego klienta. Mutacje warunkowe i bezwarunkowe nie są obsługiwane jednocześnie w tej samej instancji cechy.

Szczegóły
Parametry
[in] apSubClient
Wskaźnik do obiektu SubscriptionClient zarządzający tym ujściem.
[in] aPropertyHandle
Dowolny prawidłowy atrybut PropertyPathHandle na potrzeby tej instancji Trait.
[in] aIsConditional
Wartość prawda w przypadku aktualizacji warunkowej. W przeciwnym razie ma wartość fałsz.
Zwracane wartości
WEAVE_NO_ERROR
jeśli uchwyt właściwości został dodany do zbioru właściwości, który ma zostać wysłany do właściciela cechy.
WEAVE_ERROR_INVALID_ARGUMENT
jeśli nick lub wskaźnik SubscriptionClient jest nieprawidłowy.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
jeśli instancja cechy jest już aktualizowana z zastosowaniem odwrotnej warunkowości;
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
, jeśli parametr aIsConditional ma wartość prawda, ale instancja trait nie ma prawidłowej wersji.
WEAVE_ERROR_WDM_PATH_STORE_FULL
jeśli brakuje pamięci do zapisania ścieżki.
Other
Kody WEAVE_ERROR w zależności od błędu.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Odblokuj

void Unlock(
  SubscriptionClient *apSubClient
)