nl:: Weave:: Profiles:: 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 写入器和指示值是否为 null 的布尔值,从将构建通知的特征来源获取数据。
|
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)
|
声明给定的 PropertyPathHandle 具有本地修改。
|
Unlock(SubscriptionClient *apSubClient)
|
void
|
公共函数
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
给定节点的路径句柄、TLV 写入器和指示值是否为 null 的布尔值,从将构建通知的特征来源获取数据。
如果路径句柄不是叶节点,TDM 将处理向写入者写入值的操作(例如打开容器、使结构体为空等)。如果某个非叶节点为 null 或不存在,TDM 将不会为其子节点调用 GetData。
仅对可为 null、可选、临时或叶的句柄调用此函数。预期是,任何具有已启用这些选项的句柄的特征都将实现适当的逻辑来填充 aIsNull 和 aIsPresent。
具体说明 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||
返回值 |
|
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 回调,其中包含更新操作的结果。修改可以有条件地执行,也可以无条件修改。如果特征实例的本地副本不再与发布者的本地副本同步(因为发布者本身或其他客户端已对其进行了更改),则条件数据更新将会丢失。在同一特征实例中不支持同时进行条件更改和无条件更改。
具体说明 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|