NL::编织::简介:: DataManagement_Legacy

此命名空间包括 Weave 中即将弃用的 Weave 数据管理 (WDM) 配置文件的所有接口。

概括

枚举

@103 {
kStatus_CancelSuccess = 0x0001,
kStatus_InvalidPath = 0x0013,
kStatus_UnknownTopic = 0x0014,
kStatus_IllegalReadRequest = 0x0015,
kStatus_IllegalWriteRequest = 0x0016,
kStatus_InvalidVersion = 0x0017,
kStatus_UnsupportedSubscriptionMode = 0x0018
}
枚举
@166 {
kViewPoolSize = WEAVE_CONFIG_WDM_VIEW_POOL_SIZE,
kSubscribePoolSize = WEAVE_CONFIG_WDM_SUBSCRIBE_POOL_SIZE,
kCancelSubscriptionPoolSize = WEAVE_CONFIG_WDM_CANCEL_SUBSCRIPTION_POOL_SIZE,
kUpdatePoolSize = WEAVE_CONFIG_WDM_UPDATE_POOL_SIZE,
kNotifyPoolSize = WEAVE_CONFIG_WDM_NOTIFY_POOL_SIZE,
kTransactionTableSize = WEAVE_CONFIG_WDM_TRANSACTION_TABLE_SIZE,
kBindingTableSize = WEAVE_CONFIG_WDM_BINDING_TABLE_SIZE,
kNotifierTableSize = WEAVE_CONFIG_WDM_NOTIFIER_TABLE_SIZE,
kSubscriptionMgrTableSize = WEAVE_CONFIG_WDM_SUBSCRIPTION_MGR_TABLE_SIZE
}
枚举
WDM 池和表大小。
@167 {
kMsgType_ViewRequest = 0x10,
kMsgType_ViewResponse = 0x11,
kMsgType_SubscribeRequest = 0x12,
kMsgType_SubscribeResponse = 0x13,
kMsgType_CancelSubscriptionRequest = 0x14,
kMsgType_UpdateRequest = 0x15,
kMsgType_NotifyRequest = 0x16,
kMsgType_ViewRequest_Deprecated = 0x00,
kMsgType_ViewResponse_Deprecated = 0x01,
kMsgType_SubscribeRequest_Deprecated = 0x02,
kMsgType_SubscribeResponse_Deprecated = 0x03,
kMsgType_CancelSubscriptionRequest_Deprecated = 0x04,
kMsgType_UpdateRequest_Deprecated = 0x05,
kMsgType_NotifyRequest_Deprecated = 0x06
}
枚举
WDM 配置文件消息类型。
@168 {
kTransactionIdNotSpecified = 0,
kResponseTimeoutNotSpecified = 0,
kVersionNotSpecified = 0xFFFFFFFFFFFFFFFFULL,
kInstanceIdNotSpecified = 0,
kDefaultBindingTableIndex = 0,
kWeaveTLVTagLen = 8,
kWeaveTLVControlByteLen = 1
}
枚举
杂项 WDM 特定常数。
@169 {
kStatus_CancelSuccess = 0x0001,
kStatus_InvalidPath = 0x0013,
kStatus_UnknownTopic = 0x0014,
kStatus_IllegalReadRequest = 0x0015,
kStatus_IllegalWriteRequest = 0x0016,
kStatus_InvalidVersion = 0x0017,
kStatus_UnsupportedSubscriptionMode = 0x0018
}
枚举
WDM 特定的状态代码。
@170 {
kTag_WDMPathList = 100,
kTag_WDMPathProfile = 101,
kTag_WDMPathProfileId = 1,
kTag_WDMPathProfileInstance = 2,
kTag_WDMPathProfileId_Deprecated = 102,
kTag_WDMPathProfileInstance_Deprecated = 103,
kTag_WDMPathArrayIndexSelector = 104,
kTag_WDMPathArrayValueSelector = 105,
kTag_WDMDataList = 200,
kTag_WDMDataListElementPath = 3,
kTag_WDMDataListElementVersion = 4,
kTag_WDMDataListElementData = 5,
kTag_WDMDataListElementPath_Deprecated = 201,
kTag_WDMDataListElementVersion_Deprecated = 202,
kTag_WDMDataListElementData_Deprecated = 203
}
枚举
数据管理协议标签。
@171 {
kTopicIdPublisherSpecificMask = 0xFFFF000000000000ULL,
kTopicIdNotSpecified = 0x0000000000000000ULL,
kAnyTopicId = 0xFFFFFFFFFFFFFFFFULL
}
枚举
可分辨的主题 ID。
WeaveTransportOption {
kTransport_TCP = 1,
kTransport_WRMP = 2,
kTransport_UDP = 3
}
枚举
WDM 传输选项。

类型定义

TopicIdentifier类型定义
uint64_t
主题标识符。

职能

CheckTLVType ( nl::Weave::TLV::TLVType aType,nl::Weave::TLV::TLVReader & aReader)
bool
检查一个TLV元素是读有预期的TLV类型。
CheckWDMTag (uint32_t aTagNum,nl::Weave::TLV::TLVReader & aReader)
bool
检查 WDM 特定标签。
CloseDataListElement (nl::Weave::TLV::TLVReader & aReader)
停止读取 WDM 数据列表元素。
CloseList (nl::Weave::TLV::TLVReader & aReader)
停止读取 WDM 路径或数据列表。
EncodeDeprecatedPath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ...)
使用不推荐使用的标签和整数实例 ID 对 WDM 路径进行编码。
EncodeDeprecatedPath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ...)
使用不推荐使用的标签和字符串实例 ID 对 WDM 路径进行编码。
EncodePath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint64_t & aInstanceId, uint32_t aPathLen, ...)
使用整数配置文件实例 ID 对 WDM 路径进行编码。
EncodePath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const uint32_t aInstanceIdLen, const uint8_t *aInstanceId, uint32_t aPathLen, ...)
使用字节数组实例 ID 对 WDM 路径进行编码。
EncodePath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, const char *aInstanceId, uint32_t aPathLen, ...)
使用字符串实例 ID 对 WDM 路径进行编码。
EndDataListElement (nl::Weave::TLV::TLVWriter & aWriter)
完成数据列表元素的编写。
EndEncodePath (TLVWriter & aWriter, TLVType & mOuterContainer, WEAVE_ERROR mError)
EndList (nl::Weave::TLV::TLVWriter & aWriter)
完成写入路径列表或数据列表。
EndList ( ReferencedTLVData & aList,nl::Weave::TLV::TLVWriter & aWriter)
完成写入路径列表或数据列表。
IsPublisherSpecific (const TopicIdentifier & aTopicId)
bool
检查主题 ID 是否特定于发布者。
OpenDataList ( ReferencedTLVData & aDataList,nl::Weave::TLV::TLVReader & aReader)
开始读取数据列表。
OpenDataListElement (nl::Weave::TLV::TLVReader & aReader,nl::Weave::TLV::TLVReader & aPathReader, uint64_t & aVersion)
开始读取数据列表元素。
OpenPathList ( ReferencedTLVData & aPathList,nl::Weave::TLV::TLVReader & aReader)
开始阅读路径列表。
PublisherSpecificTopicId (void)
从头开始生成特定于发布者的主题 ID。
SendStatusReport ( ExchangeContext *aExchangeCtx, StatusReport & aStatus)
StartDataList (nl::Weave::TLV::TLVWriter & aWriter)
开始编写数据列表。
StartDataList ( ReferencedTLVData & aDataList,nl::Weave::TLV::TLVWriter & aWriter)
开始写一个数据表给定ReferencedTLVData对象。
StartDataListElement (nl::Weave::TLV::TLVWriter & aWriter)
开始编写数据列表元素。
StartEncodePath (TLVWriter & aWriter, const uint64_t & aTag, uint32_t aProfileId, TLVType & mOuterContainer, TLVType & mPath)
StartPathList (nl::Weave::TLV::TLVWriter & aWriter)
开始编写路径列表。
TxnResponseHandler ( ExchangeContext *anExchangeCtx, const IPPacketInfo *anAddrInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aMsg)
void
TxnTimeoutHandler ( ExchangeContext *anExchangeCtx)
void
ValidateTLVType ( nl::Weave::TLV::TLVType aType,nl::Weave::TLV::TLVReader & aReader)
验证一个TLV元素被读取所期待的TLV类型。
ValidateWDMTag (uint32_t aTagNum,nl::Weave::TLV::TLVReader & aReader)
验证一个TLV元素被读取所期待的WDM标签。

班级

NL ::编织::概况:: DataManagement_Legacy ::绑定

绑定类管理代表用纺织品的应用实体的通信状态。

NL ::编织::概况:: DataManagement_Legacy :: ClientDataManager

包含 WDM 客户端所需的确认和指示方法定义的抽象类。

NL ::编织::概况:: DataManagement_Legacy :: ClientNotifier

当 WDM 客户端需要订阅和通知支持时使用的辅助类。

NL ::编织::概况:: DataManagement_Legacy :: DMClient

特定于应用程序的 WDM 客户端的抽象基类。

NL ::编织::概况:: DataManagement_Legacy :: DMPublisher

特定于应用程序的 WDM 发布者的抽象基类。

NL ::编织::概况:: DataManagement_Legacy :: ProfileDatabase

抽象ProfileDatabase辅助类。

NL ::编织::概况:: DataManagement_Legacy :: ProtocolEngine

WDM 协议引擎类。

NL ::编织::概况:: DataManagement_Legacy :: PublisherDataManager

包含 WDM 发布者所需的确认和通知方法定义的抽象类。

枚举

@103

 @103
特性
kStatus_CancelSuccess

此旧状态代码表示订阅已成功取消。

此状态代码表示订阅已成功取消。

kStatus_IllegalReadRequest

此旧状态代码意味着发出读取特定数据项请求的节点无权这样做。

此状态代码意味着发出读取特定数据项请求的节点无权这样做。

kStatus_IllegalWriteRequest

此旧状态代码意味着发出写入特定数据项请求的节点无权这样做。

此状态代码意味着发出写入特定数据项请求的节点无权这样做。

kStatus_InvalidPath

此旧状态代码意味着来自视图或更新请求帧的路径列表的路径与响应者的节点驻留模式不匹配。

此状态代码表示视图或更新请求帧的路径列表中的路径与响应者的节点驻留模式不匹配。

kStatus_InvalidVersion

此旧状态代码意味着更新请求中包含的数据版本与发布者上的最新版本不匹配,因此无法应用更新。

此状态代码表示更新请求中包含的数据版本与发布者上的最新版本不匹配,因此无法应用更新。

kStatus_UnknownTopic

此旧状态代码意味着取消请求或通知中给出的主题标识符与接收节点上现有的任何订阅都不匹配。

此状态代码表示取消请求或通知中给出的主题标识符与接收节点上现有的任何订阅都不匹配。

kStatus_UnsupportedSubscriptionMode

此旧状态代码意味着接收设备不支持请求的订阅模式。

此状态代码表示接收设备不支持请求的订阅模式。

@166

 @166

WDM 池和表大小。

WDM 定义了其操作所需的各种池和表,如下所示。

客户端交易池:

  • 视图池大小
  • 订阅池大小
  • kCancelSubscriptionPoolSize
  • k更新池大小

发布者交易池:

  • kNotifyPoolSize

协议引擎表:

  • 事务表大小
  • 绑定表大小

订阅相关表:

  • kNotifierTableSize(仅限客户端)
  • kSubscriptionMgrTableSize(仅限发布商)

请注意,这些都是可配置的数量和每平台的值将出现在相关WeaveConfig.h

特性
kBindingTableSize

这是 WDM 协议引擎中绑定表的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_BINDING_TABLE_SIZE

kCancelSubscriptionPoolSize

这是 WDM 客户端的取消订阅请求事务池的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_CANCEL_SUBSCRIPTION_POOL_SIZE

kNotifierTableSize

这是 WDM 客户端通知表的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_NOTIFIER_TABLE_SIZE

kNotifyPoolSize

这是 WDM 发布者的通知请求事务池的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_NOTIFY_POOL_SIZE

kSubscribePoolSize

这是 WDM 客户端订阅请求事务池的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_SUBSCRIBE_POOL_SIZE

kSubscriptionMgrTableSize

这是 WDM 发布者订阅表的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_SUBSCRIPTION_MGR_TABLE_SIZE

kTransactionTableSize

这是 WDM 协议引擎中事务表的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_TRANSACTION_TABLE_SIZE

kUpdatePoolSize

这是 WDM 客户端的更新请求事务池的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_UPDATE_POOL_SIZE

kViewPoolSize

这是 WDM 客户端的视图请求事务池的默认大小。

该值可以通过被配置WEAVE_CONFIG_WDM_VIEW_POOL_SIZE

@167

 @167

WDM 配置文件消息类型。

这些值在数据管理规范中被调用。

笔记!!截至 2015 年第一季度,WDM 以前版本中使用的消息类型已被弃用,并定义了新的消息类型,这反映了过去打包和解析细节的充分转变,证明彻底打破是合理的。

特性
kMsgType_CancelSubscriptionRequest

取消订阅请求消息。

kMsgType_CancelSubscriptionRequest_Deprecated

已弃用

kMsgType_NotifyRequest

通知请求消息。

kMsgType_NotifyRequest_Deprecated

已弃用

kMsgType_SubscribeRequest

订阅请求消息。

kMsgType_SubscribeRequest_Deprecated

已弃用

kMsgType_SubscribeResponse

订阅响应消息。

kMsgType_SubscribeResponse_Deprecated

已弃用

kMsgType_UpdateRequest

更新请求消息。

kMsgType_UpdateRequest_Deprecated

已弃用

kMsgType_ViewRequest

查看请求消息。

kMsgType_ViewRequest_Deprecated

已弃用

kMsgType_ViewResponse

查看响应消息。

kMsgType_ViewResponse_Deprecated

已弃用

@168

 @168

杂项 WDM 特定常数。

特性
kDefaultBindingTableIndex

具有多个条目的协议引擎绑定表中默认绑定的索引。

kInstanceIdNotSpecified

在需要配置文件实例规范的调用中,指示“无”。

大多数情况下,这意味着相关实体上仅存在配置文件的一个实例。

kResponseTimeoutNotSpecified

在请求事务的方法中,指示调用者已拒绝指定超时。

通常这意味着应该使用默认值。

kTransactionIdNotSpecified

在采用事务 ID 的方法和数据结构中,指示“无”或通配符值。

kVersionNotSpecified

在需要数据版本规范的调用中,指示“没有特定版本”。

kWeaveTLVControlByteLen

一个的长度TLV控制字节,以支持方法,在编码WDM结构中使用TLV

kWeaveTLVTagLen

标准长度在全合格的字节TLV标签,在支持的方法,在编码WDM结构中使用TLV

@169

 @169

WDM 特定的状态代码。

特性
kStatus_CancelSuccess

此旧状态代码表示订阅已成功取消。

此状态代码表示订阅已成功取消。

kStatus_IllegalReadRequest

此旧状态代码意味着发出读取特定数据项请求的节点无权这样做。

此状态代码意味着发出读取特定数据项请求的节点无权这样做。

kStatus_IllegalWriteRequest

此旧状态代码意味着发出写入特定数据项请求的节点无权这样做。

此状态代码意味着发出写入特定数据项请求的节点无权这样做。

kStatus_InvalidPath

此旧状态代码意味着来自视图或更新请求帧的路径列表的路径与响应者的节点驻留模式不匹配。

此状态代码表示视图或更新请求帧的路径列表中的路径与响应者的节点驻留模式不匹配。

kStatus_InvalidVersion

此旧状态代码意味着更新请求中包含的数据版本与发布者上的最新版本不匹配,因此无法应用更新。

此状态代码表示更新请求中包含的数据版本与发布者上的最新版本不匹配,因此无法应用更新。

kStatus_UnknownTopic

此旧状态代码意味着取消请求或通知中给出的主题标识符与接收节点上现有的任何订阅都不匹配。

此状态代码表示取消请求或通知中给出的主题标识符与接收节点上现有的任何订阅都不匹配。

kStatus_UnsupportedSubscriptionMode

此旧状态代码意味着接收设备不支持请求的订阅模式。

此状态代码表示接收设备不支持请求的订阅模式。

@170

 @170

数据管理协议标签。

数据管理协议定义了要使用多个标签TLV简档数据的表示。

像往常一样,新 WDM 和旧 WDM 之间存在兼容性问题。在过去的坏日子里,所有这些标签都被应用为特定于配置文件,这是一种浪费空间。现在我们在可能的情况下使用上下文标签,但我们需要在适当的地方保留旧的标签(并有一种将路径编码到位的机制)。

kTag_WDMDataListElementData 标记在之前的版本中没有使用,并且被代码完全忽略,因此我们不必提供不推荐使用的版本。

特性
kTag_WDMDataList

该元素是一个包含路径、可选版本和数据元素的结构列表。

标签类型:特定于配置文件的元素类型:阵列配置:顶级

kTag_WDMDataListElementData

该元素表示给定路径指向并具有给定版本的数据。

标签类型:特定于上下文的元素类型:任何处置:必需

kTag_WDMDataListElementData_Deprecated

已弃用。

标签类型:特定于上下文的元素类型:任何处置:必需

kTag_WDMDataListElementPath

该元素是数据列表元素的路径组件。

标记类型:特定于上下文的元素类型:路径处置:必需

kTag_WDMDataListElementPath_Deprecated

已弃用。

标记类型:特定于配置文件的元素类型:路径处置:必需

kTag_WDMDataListElementVersion

该元素是数据列表元素的版本组件。

标签类型:特定于上下文的元素类型:整数处置:必需

kTag_WDMDataListElementVersion_Deprecated

已弃用。

标签类型:配置文件特定元素类型:整数处置:必需

kTag_WDMPathArrayIndexSelector

path 元素对应于模式中的一个数组,包含的整数元素将用作该数组的索引。

标签类型:配置文件特定元素类型:整数处置:可选

kTag_WDMPathArrayValueSelector

path 元素对应于模式中的一个数组,封装的元素将用作记录选择器。

标签类型:特定于配置文件的元素类型:结构配置:可选

kTag_WDMPathList

该元件是列表TLV路径。

标记类型:特定于配置文件的元素类型:阵列处置:顶级

kTag_WDMPathProfile

元素是用于开始路径的结构,并且包含要根据其解释路径中的标签的配置文件信息。

标签类型:特定于配置文件的元素类型:结构处置:必需

kTag_WDMPathProfileId

该元件是开头的路径剖面元件的配置文件ID部件TLV路径。

标签类型:特定于上下文的元素类型:整数处置:必需

kTag_WDMPathProfileId_Deprecated

已弃用。

标签类型:配置文件特定元素类型:整数处置:必需

kTag_WDMPathProfileInstance

该元件是一个简档实例,它可以跟随配置文件ID在TLV路径。

请注意,一个节点可能有也可能没有特定配置文件的多个实例,并且在只有一个的情况下,可以省略该元素。

标签类型:特定于上下文的元素类型:任何处置:可选

kTag_WDMPathProfileInstance_Deprecated

已弃用。

标签类型:配置文件特定元素类型:任何处置:可选

@171

 @171

可分辨的主题 ID。

有三个不同的感兴趣的主题 ID,所有三个都被格式化为“特定于发布者”。

特性
kAnyTopicId

这被保留为通配符主题 ID。

kTopicIdNotSpecified

这是一个保留的特殊值,用于表示无效或通配符主题 ID。

kTopicIdPublisherSpecificMask

这用作创建或分解 topci ID 的掩码。

编织传输选项

 WeaveTransportOption

WDM 传输选项。

这些是 WDM 互斥的传输选项。

特性
kTransport_TCP

底层传输是 TCP。

可以使用服务管理器或直接使用消息层来完成绑定。

kTransport_UDP

底层传输完全是 UDP。

kTransport_WRMP

底层传输完全是 UDP,但具有“应用程序支持层”可靠性增强。

类型定义

主题标识符

uint64_t TopicIdentifier

主题标识符。

主题标识符是具有两个相关用途/语义的 64 位数量。首先,它们可以用作一组众所周知的路径的常规简写,例如“Nest 烟雾探测器”。以这种方式使用的主题 ID 应与配置文件标识符一样,包含一个供应商代码,以防止不同供应商自主选择的主题 ID 发生冲突,如下所示:

位 48 - 63位 0 - 47
供应商编号话题号
主题标识符的第二种用途/语义出现在 WDM 客户端和发布者之间的动态订阅的情况下。在这种情况下,发布者应始终提供代表特定订阅的唯一主题 ID,无论订阅是使用众所周知的主题 ID 还是任意路径列表请求,它都应这样做。这种形式的主题标识符通过供应商代码 0xFFFF 来区分。

也可以看看:
WeaveVendorIdentifiers.hpp

职能

检查TLV类型

bool CheckTLVType(
  nl::Weave::TLV::TLVType aType,
  nl::Weave::TLV::TLVReader & aReader
)

检查一个TLV元素是读有预期的TLV类型。

检查给定的TLV在的头靠在元素类型类型TLV读者。

细节
参数
[in] aType
要针对特定​​元素检查的 TLVType
[in] aReader
到的参考TLV定位在元件读取器进行检查
退货
如果元素的 TLVType 和 aType 匹配,则为 true。
也可以看看:
WeaveTLVTypes.h

检查WDMT标签

bool CheckWDMTag(
  uint32_t aTagNum,
  nl::Weave::TLV::TLVReader & aReader
)

检查 WDM 特定标签。

检查WDM-特定标签的数量,从... /数据管理/ DMConstants.h,对在头部的实际标记TLV读者。

细节
参数
[in] aTagNum
针对具体要检查的标签号TLV元素。
[in] aReader
到的参考TLV读者指向的元素进行检查。
退货
如果 aReader.GetTag() 生成的标签与给定标签编号的预期标签形式之一匹配,则为 true。

关闭数据列表元素

WEAVE_ERROR CloseDataListElement(
  nl::Weave::TLV::TLVReader & aReader
)

停止读取 WDM 数据列表元素。

此方法假定所讨论的元素是 WDM 数据列表的一部分,因此将 kTLVType_Array 传递给 ExitContainer()。

细节
参数
[in,out] aReader
TLV读者定位在WDM数据列表元素。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了不能退出的容器。

关闭列表

WEAVE_ERROR CloseList(
  nl::Weave::TLV::TLVReader & aReader
)

停止读取 WDM 路径或数据列表。

此方法假设所讨论的列表是最顶层TLV元件等传递到kTLVType_Sructure ExitContainer()。

细节
参数
[in,out] aReader
TLV读者定位在WDM路径或数据列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了不能退出的容器。

EncodeDeprecatedPath

WEAVE_ERROR EncodeDeprecatedPath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const uint64_t & aInstanceId,
  uint32_t aPathLen,
  ...
)

使用不推荐使用的标签和整数实例 ID 对 WDM 路径进行编码。

注:使用编码编织2.0版本之前,由服务接受过时的标签设置的路径。此版本的方法采用数字实例标识符。此方法使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfile) 启动容器,然后使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileId_Deprecated) 插入配置文件 ID。然后插入带有 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileInstance_Deprecated) 的实例 ID。这是用于编码路径的已弃用版本之一,新设计应避免使用此格式。

细节
参数
[in] aWriter
在参考TLV作家来写出来的路径。
[in] aTag
引用到完全合格的TLV适用于这条道路标记。
[in] aProfileId
要在其下解释路径元素的配置文件 ID。
[in] aInstanceId
对要使用的配置文件的可选实例 ID 的引用。
[in] aPathLen
超出初始配置文件说明符的路径元素列表的长度(可能为 0)。
[in] ...
附加路径标记的可选可变长度列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法格式化给定的路径。

EncodeDeprecatedPath

WEAVE_ERROR EncodeDeprecatedPath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const char *aInstanceId,
  uint32_t aPathLen,
  ...
)

使用不推荐使用的标签和字符串实例 ID 对 WDM 路径进行编码。

注:编码使用过时的标签组(见DMConstants.h)的路径。此版本的方法采用实例 ID 字符串。此方法使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfile) 启动容器,然后使用 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileId_Deprecated) 插入配置文件 ID。然后插入带有 ProfileTag(kWeaveProfile_WDM, kTag_WDMPathProfileInstance_Deprecated) 的实例 ID。这是用于编码路径的已弃用版本之一,新设计应避免使用此格式。

细节
参数
[in] aWriter
在参考TLV作家来写出来的路径。
[in] aTag
引用到完全合格的TLV适用于这条道路标记。
[in] aProfileId
要在其下解释路径元素的配置文件 ID。
[in] aInstanceId
用作配置文件实例标识符的可选字符串。如果未指定实例 ID,则此参数可能为 NULL。
[in] aPathLen
超出初始配置文件说明符的路径元素列表的长度(可能为 0)。
[in] ...
附加路径标记的可选可变长度列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法格式化给定的路径。

编码路径

WEAVE_ERROR EncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const uint64_t & aInstanceId,
  uint32_t aPathLen,
  ...
)

使用整数配置文件实例 ID 对 WDM 路径进行编码。

注:TLV数据管理使用的那种地方,特别是有一个轮廓指定为了让后续的路径元素的解释放在开头的路径。此版本的方法采用整数配置文件实例 ID。

此方法使用 ContextTag(kTag_WDMPathProfileInstance) 插入实例 ID,这是用于编码路径的最新版本。

细节
参数
[in] aWriter
在参考TLV作家来写出来的路径。
[in] aTag
引用到完全合格的TLV适用于这条道路标记。
[in] aProfileId
要在其下解释路径元素的配置文件 ID。
[in] aInstanceId
对要使用的配置文件的可选实例标识符的引用。如果不使用实例 ID,则此参数的值应为 kInstanceIdNotSpecified。
[in] aPathLen
超出初始配置文件说明符的路径元素列表的长度(可能为 0)。
[in] ...
附加路径标记的可选可变长度列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法格式化给定的路径。

编码路径

WEAVE_ERROR EncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const uint32_t aInstanceIdLen,
  const uint8_t *aInstanceId,
  uint32_t aPathLen,
  ...
)

使用字节数组实例 ID 对 WDM 路径进行编码。

注:TLV数据管理使用的那种地方,特别是有一个轮廓指定为了让后续的路径元素的解释放在开头的路径。此版本的方法采用字节数组配置文件实例 ID 和长度。

此方法使用 ContextTag(kTag_WDMPathProfileInstance) 插入实例 ID,这是用于编码路径的最新版本。

细节
参数
[in] aWriter
在参考TLV作家来写出来的路径。
[in] aTag
引用到完全合格的TLV适用于这条道路标记。
[in] aProfileId
要在其下解释路径元素的配置文件 ID。
[in] aInstanceIdLen
构成实例 ID 的字节数组的长度。如果没有 ID,则该参数的值为 0。
[in] aInstanceId
用作配置文件实例标识符的可选字节数组。在未指定实例 ID 的情况下,此参数可能为 NULL。
[in] aPathLen
超出初始配置文件说明符的路径元素列表的长度(可能为 0)。
[in] ...
附加路径标记的可选可变长度列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法格式化给定的路径。

编码路径

WEAVE_ERROR EncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  const char *aInstanceId,
  uint32_t aPathLen,
  ...
)

使用字符串实例 ID 对 WDM 路径进行编码。

注:TLV数据管理使用的那种地方,特别是有一个轮廓指定为了让后续的路径元素的解释放在开头的路径。此版本的方法采用字符串配置文件实例 ID。

此方法使用 ContextTag(kTag_WDMPathProfileInstance) 插入实例 ID,这是用于编码路径的最新版本。

细节
参数
[in] aWriter
在参考TLV作家来写出来的路径。
[in] aTag
引用到完全合格的TLV适用于这条道路标记。
[in] aProfileId
要在其下解释路径元素的配置文件 ID。
[in] aInstanceId
用作配置文件实例标识符的可选字符串。如果未指定实例 ID,则此参数可能为 NULL。
[in] aPathLen
超出初始配置文件说明符的路径元素列表的长度(可能为 0)。
[in] ...
附加路径标记的可选可变长度列表。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映了一个无法格式化给定的路径。

结束数据列表元素

WEAVE_ERROR EndDataListElement(
  nl::Weave::TLV::TLVWriter & aWriter
)

完成数据列表元素的编写。

TLV的WDM数据列表元素的结束。请注意,假设我们始终关闭列表项,这会自动将 kTLVType_Array 类型传递给 EndContainer() 调用。

细节
参数
[in] aWriter
到的参考TLV作家用其中写入项的结束。
退货
WEAVE_NO_ERROR上的成功。否则返回一个WEAVE_ERROR反射一个无法结束的容器。

结束编码路径

WEAVE_ERROR EndEncodePath(
  TLVWriter & aWriter,
  TLVType & mOuterContainer,
  WEAVE_ERROR mError
)

结束列表

WEAVE_ERROR EndList(
  nl::Weave::TLV::TLVWriter & aWriter
)

完成写入路径列表或数据列表。

TLV的WDM路径或数据列表的末尾。另外,最后确定作者。

细节
参数
[in,out] aWriter
一个参考TLV作家与写列表的末尾。
退货
WEAVE_NO_ERROR上的成功。否则返回一个WEAVE_ERROR反射一个无法结束的容器。

结束列表

WEAVE_ERROR EndList(
  ReferencedTLVData & aList,
  nl::Weave::TLV::TLVWriter & aWriter
)

完成写入路径列表或数据列表。

TLV的WDM路径或数据列表的末尾。另外,最后确定作者。在这种情况下, ReferencedTLVData要将对象TLV是被写入在被传递和修改,以反映写入的数据的量。

细节
参数
[in,out] aList
对要写入列表的 ReferenceTLVData 对象的引用。
[in] aWriter
一个参考TLV作家与写列表的末尾。
退货
WEAVE_NO_ERROR上的成功。否则返回一个WEAVE_ERROR反射一个无法结束的容器。

特定于发布者

bool IsPublisherSpecific(
  const TopicIdentifier & aTopicId
)

检查主题 ID 是否特定于发布者。

细节
参数
[in] aTopicId
主题标识符 ot 检查
退货
如果主题 ID 是特定于发布者的,则为 true,否则为 false

开放数据列表

WEAVE_ERROR OpenDataList(
  ReferencedTLVData & aDataList,
  nl::Weave::TLV::TLVReader & aReader
)

开始读取数据列表。

给定一个新的阅读器和一个数据列表,开始阅读列表并验证过程中最初遇到的标签和类型。如果一切顺利,阅读器在进入列表容器后停止。

细节
参数
[in] aDataList
作为所涉及的引用传递的数据列表ReferencedTLVData对象。正常用例是列表在接收后实际上仍在缓冲区中。
[out] aReader
到参考TLV读者用于读取数据列表。该读取器将指向列表中的第一项之前。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映故障打开数据表和/或验证有关的标签和类型。

打开数据列表元素

WEAVE_ERROR OpenDataListElement(
  nl::Weave::TLV::TLVReader & aReader,
  nl::Weave::TLV::TLVReader & aPathReader,
  uint64_t & aVersion
)

开始读取数据列表元素。

给定一个位于数据列表元素的阅读器,开始阅读该元素并验证过程中最初遇到的标签和类型。如果一切顺利,阅读器最终定位在数据元素数据处,而输入/输出路径阅读器定位在相应的路径上。

细节
参数
[in] aReader
到的参考TLV读取器定位在数据列表元素。
[out] aPathReader
到的参考TLV读者是在所述数据列表元素的路径组件尖。
[out] aVersion
对 64 位整数的引用,该整数将设置为数据列表元素版本(如果存在)或 kVersionNotSpecified。
退货
WEAVE_NO_ERROR成功要不然WEAVE_ERROR与打开和读取数据列表元素相关联。

开放路径列表

WEAVE_ERROR OpenPathList(
  ReferencedTLVData & aPathList,
  nl::Weave::TLV::TLVReader & aReader
)

开始阅读路径列表。

给定一个新的阅读器和一个路径列表,开始阅读列表并验证过程中最初遇到的标签和类型。如果一切顺利,阅读器在进入列表容器后停止。

细节
参数
[in] aPathList
作为所涉及的引用传递的路径列表ReferencedTLVData对象。正常用例是列表在接收后实际上仍在缓冲区中。
[out] aReader
一个参考TLV阅读器用于读取路径列表。此读取器将指向列表中的第一条路径之前。
退货
WEAVE_NO_ERROR成功;否则, WEAVE_ERROR反映故障的打开路径列表和/或验证有关的标签和类型。

发布者特定主题 ID

TopicIdentifier PublisherSpecificTopicId(
  void
)

从头开始生成特定于发布者的主题 ID。

细节
退货
新的主题标识符。

发送状态报告

WEAVE_ERROR SendStatusReport(
  ExchangeContext *aExchangeCtx,
  StatusReport & aStatus
)

起始数据列表

WEAVE_ERROR StartDataList(
  nl::Weave::TLV::TLVWriter & aWriter
)

开始编写数据列表。

TLV用于WDM数据列表的开头,例如,作为一个UpdateRequest的主要参数()。

细节
参数
[in] aWriter
一个参考TLV作家开始写入。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映的无法启动的容器。

起始数据列表

WEAVE_ERROR StartDataList(
  ReferencedTLVData & aDataList,
  nl::Weave::TLV::TLVWriter & aWriter
)

开始写一个数据表给定ReferencedTLVData对象。

TLV的WDM数据列表的开始。在这种情况下,我们假设我们正在写出来的数据列表中引用的TLV数据结构。假定 writer 未初始化 - 或者,无论如何,将被初始化为指向给定对象。

细节
参数
[out] aDataList
一个参考ReferencedTLVData对象是成为作家的目标,并最终包含感兴趣的数据。
[in] aWriter
一个参考TLV作家开始写入。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映的无法启动的容器。

起始数据列表元素

WEAVE_ERROR StartDataListElement(
  nl::Weave::TLV::TLVWriter & aWriter
)

开始编写数据列表元素。

TLV的WDM数据列表元素的开始。

细节
参数
[in] aWriter
一个参考TLV作家开始写入。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映的无法启动的容器。

起始编码路径

WEAVE_ERROR StartEncodePath(
  TLVWriter & aWriter,
  const uint64_t & aTag,
  uint32_t aProfileId,
  TLVType & mOuterContainer,
  TLVType & mPath
)

起始路径列表

WEAVE_ERROR StartPathList(
  nl::Weave::TLV::TLVWriter & aWriter
)

开始编写路径列表。

TLV的WDM路径列表的开头,例如作为ViewRequest的主要参数()。

细节
参数
[in] aWriter
一个参考TLV作家开始写入。
退货
WEAVE_NO_ERROR上的成功。否则返回WEAVE_ERROR反映的无法启动的容器。

发送响应处理程序

void TxnResponseHandler(
  ExchangeContext *anExchangeCtx,
  const IPPacketInfo *anAddrInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aMsg
)

TxnTimeoutHandler

void TxnTimeoutHandler(
  ExchangeContext *anExchangeCtx
)

验证TLV类型

WEAVE_ERROR ValidateTLVType(
  nl::Weave::TLV::TLVType aType,
  nl::Weave::TLV::TLVReader & aReader
)

验证一个TLV元素被读取所期待的TLV类型。

检查给定的TLV对元素类型类型在头TLV读者,如果没有匹配返回一个错误。

细节
参数
[in] aType
要针对特定​​元素验证的 TLVType。
[in] aReader
到的参考TLV定位在元件读取器进行验证。
退货
WEAVE_NO_ERROR如果有匹配或WEAVE_ERROR_WRONG_TLV_TYPE如果不是。
也可以看看:
WeaveTLVTypes.h

验证WDMT标签

WEAVE_ERROR ValidateWDMTag(
  uint32_t aTagNum,
  nl::Weave::TLV::TLVReader & aReader
)

验证一个TLV元素被读取所期待的WDM标签。

细节
参数
[in] aTagNum
预期 WDM 标签的 32 位标签编号。
[in] aReader
TLV定位在元件读取器进行验证。
退货
WEAVE_NO_ERROR上的成功。否则WEAVE_ERROR_INVALID_TLV_TAG如果标签没有当解释为WDM标签匹配给定的标签号码。