нл:: Переплетение:: Профили:: 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

Общественные функции

ОчиститьОбновлено

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 для своих дочерних узлов.

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

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

Получитьподпискуклиент

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

Исупдатабледатасинк

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

Замок

void Lock(
  SubscriptionClient *apSubClient
)

Чтение данных

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

сетупдатеэнкодер

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

УстановитьОбновлено

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

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

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

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

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

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

void Unlock(
  SubscriptionClient *apSubClient
)