NL::编织::简介::数据管理_当前::特性可更新数据接收器

概括

遗产

继承自:
  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 将处理向编写器写入值(如打开容器、取消结构等)。如果非叶节点为空或不存在,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

获取更新编码器

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
)

设置订阅客户端

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
此 Trait 实例的任何有效 PropertyPathHandle。
[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(
  const TraitSchemaEngine *aEngine
)

开锁

void Unlock(
  SubscriptionClient *apSubClient
)