Google is committed to advancing racial equity for Black communities. See how.
Эта страница переведена с помощью Cloud Translation API.
Switch to English

nl :: Плетение :: Профили: DataManagement_Current :: TraitUpdatableDataSink

Резюме

Наследование

Наследуется от:
  nl :: Weave :: Profiles :: DataManagement_Current :: TraitDataSink
  nl :: Weave :: Profiles :: DataManagement_Current :: TraitSchemaEngine :: IGetDataDelegate

Конструкторы и деструкторы

TraitUpdatableDataSink (const TraitSchemaEngine *aEngine)

Публичные функции

ClearUpdated ( SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData ( PropertyPathHandle aHandle, uint64_t aTagToWrite,nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
Учитывая описатель пути к узлу, средство записи TLV и логические значения, указывающие, является ли значение нулевым или нет, получите данные из источника признака, который будет создавать уведомление.
GetSubscriptionClient () __OVERRIDE
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)
Объявляет, что данный PropertyPathHandle имеет локальные модификации.
Unlock ( SubscriptionClient *apSubClient)
void

Публичные функции

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

Получить данные

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

Учитывая описатель пути к узлу, средство записи TLV и логические значения, указывающие, является ли значение нулевым или нет, получите данные из источника признака, который будет создавать уведомление.

Если дескриптор пути не является листовым узлом, TDM будет обрабатывать запись значений в модуль записи (например, открытие контейнеров, обнуление структуры и т. Д.). Если нелистовой узел имеет значение NULL или отсутствует, TDM не будет вызывать GetData для своих дочерних узлов.

Эта функция будет вызываться только для дескрипторов, допускающих значение NULL, необязательных, эфемерных или конечных. Ожидается, что любые черты с дескрипторами, для которых включены эти параметры, будут реализовывать соответствующую логику для заполнения aIsNull и aIsPresent.

Подробности
Параметры
[in] aHandle
Рассматриваемый PropertyPathHandle.
[in] aTagToWrite
Тег для записи для aHandle.
[in,out] aWriter
Писатель, в который записываются элементы TLV .
[out] aIsNull
Аннулирован aHandle Если да, TDM запишет нулевой элемент. Если aHandle не является листом, TDM пропустит своих дочерних элементов.
[out] aIsPresent
Присутствует ли ручка? Если нет, и если aHandle не является листом, TDM пропустит путь и его дочерние элементы.
Возвращаемые значения
WEAVE_NO_ERROR
Об успехе.
other
Не удалось получить данные и записать их в писатель.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Замок

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
)

Объявляет, что данный PropertyPathHandle имеет локальные модификации.

NotificationEngine не переопределит дескриптор и его потомков, пока запрос на обновление не будет обработан. Приложение получит обратные вызовы kEvent_OnUpdateComplete для этого дескриптора или для одного из его предков с результатом операции обновления. Модификация может быть условной или нет. Условные обновления данных будут потеряны, если локальная копия экземпляра признака больше не синхронизируется с копией издателя, поскольку она была изменена самим издателем или другим клиентом. Условные и безусловные мутации не поддерживаются одновременно в одном и том же экземпляре признака.

Подробности
Параметры
[in] apSubClient
Указатель на SubscriptionClient, управляющий этим приемником.
[in] aPropertyHandle
Любой допустимый PropertyPathHandle для этого экземпляра Trait.
[in] aIsConditional
Верно для условного обновления; в противном случае - ложь.
Возвращаемые значения
WEAVE_NO_ERROR
если дескриптор свойства был успешно добавлен к набору свойств, который должен быть отправлен владельцу признака.
WEAVE_ERROR_INVALID_ARGUMENT
если дескриптор или указатель SubscriptionClient недействительны.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
если экземпляр признака уже обновляется с противоположной условностью.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
если aIsConditional истинно, но у экземпляра признака нет действительной версии.
WEAVE_ERROR_WDM_PATH_STORE_FULL
если нет памяти для хранения пути.
Other
Коды WEAVE_ERROR в зависимости от сбоя.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

Разблокировать

void Unlock(
  SubscriptionClient *apSubClient
)