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、可选、临时或叶的句柄调用此函数。预期:任何具有启用这些选项的句柄的 trait 都将实现适当的逻辑来填充 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 回调以及更新操作的结果。修改可以有条件,也可以无条件。如果特征实例的本地副本不再与发布者同步,因为发布者本身或其他客户端更改了该实例,则条件数据更新将会丢失。在同一 trait 实例中,不支持同时支持条件变更和无条件变更。
详细信息 | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
参数 |
|
||||||||||||
返回值 |
|