nl:: Weave:: Profiles:: DataManagement_Current:: ResourceIdentifier
#include <src/lib/profiles/data-management/Current/ResourceIdentifier.h>
封装了资源 ID 的结构。
摘要
ResourceIdentifier 可以是特定类型的通用化 64 位对象 ID,也可以是 UUID。进行外部编码时,系统支持以下表示法:
与 DEVICE 类型的通用对象相对应的无符号 64 位整数,该对象具有以表示法中指定的 ID
一种通用的表示法,编码为由 10 个八位字节组成的字节字符串。前两个八位字节将资源类型编码为 16 位小端序整数,其余 8 个字节对 64 位小端序资源 ID 进行编码。
ResourceIdentifier 也体现了整个 WDM 代码中的规范:一个空的 ResourceIdentifier 与设备的节点 ID 对应,并为最常见的使用情形提供了构造函数。
构造函数和析构函数 |
|
---|---|
ResourceIdentifier()
构造一个与未指定的 ResourceID 对应的 ResourceIdentifier。
|
|
ResourceIdentifier(const uint64_t & aNodeId)
根据给定的 aNodeId 构造一个类型为 DEVICE 的 ResourceIdentifier。
|
|
ResourceIdentifier(uint16_t aResourceType, const uint64_t & aResourceId)
使用给定 ID 构造指定类型的 ResourceIdentifier。
|
|
ResourceIdentifier(uint16_t aResourceType, const uint8_t *aResourceId, size_t aResourceIdLen)
使用给定 ID 构造指定类型的 ResourceIdentifier。
|
公共类型 |
|
---|---|
@125{
|
枚举 |
@126
|
枚举 为 NodeId 定义一个表示“self”的特殊值。 |
@127
|
枚举 |
公共属性 |
|
---|---|
ResourceId
|
uint64_t
|
ResourceIdBytes[8]
|
uint8_t
|
公共函数 |
|
---|---|
FromString(const char *inBuffer, size_t inBufferLen)
|
将资源的规范字符串表示形式解析为资源对象。
|
FromString(const char *inBuffer, size_t inBufferLen, const uint64_t & aSelfNodeId)
|
将资源的规范字符串表示形式解析为资源对象。
|
FromTLV(nl::Weave::TLV::TLVReader & aReader)
|
将 TLV 表示形式的 ResourceIdentifier 反序列化到此对象中。
|
FromTLV(nl::Weave::TLV::TLVReader & aReader, const uint64_t & aSelfNodeId)
|
将 TLV 表示形式的 ResourceIdentifier 反序列化到此对象中。
|
GetResourceId() const
|
uint64_t
用于获取 ResourceId 的访问器函数。
|
GetResourceType() const
|
uint16_t
用于提取 ResourceType 的访问器函数。
|
ResourceTypeAsString(void) const
|
const char *
生成 ResourceType 的字符串表示形式。
|
ToString(char *buffer, size_t bufferLen)
|
将 ResourceIdentifier 转换为可打印的字符串。
|
ToTLV(nl::Weave::TLV::TLVWriter & aWriter) const
|
使用上下文 Path::ResourceID 标记将资源序列化为 TLV 表示法。
|
ToTLV(nl::Weave::TLV::TLVWriter & aWriter, const uint64_t & aTag) const
|
使用给定标记将资源序列化为 TLV 表示法。
|
公共静态函数 |
|
---|---|
ResourceTypeAsString(uint16_t aResourceType)
|
const char *
生成资源类型的字符串表示形式。
|
好友课程 |
|
---|---|
operator==
|
friend bool
|
公共类型
@125
@125
属性 | |
---|---|
RESOURCE_TYPE_RESERVED
|
预留的资源类型。 系统会选择枚举,以使其不与 Schema::Weave:::Common::ResourceType 枚举中的枚举值冲突。目前,RESERVED 资源类型有两个 ResourceId 值:kNodeIdNotSpecified 对应于统一化 ResourceIdentifier,SELF_NODE_ID 对应于将从任何其他表示法重新映射到 SELF 的资源。 |
@126
@126
为 NodeId 定义一个表示“self”的特殊值。
在某些 WDM 交互中,将资源值设为 self 可以压缩该信息,因为它对 Weave 中表示的设备源节点 ID 而言是多余的。消息本身
@127
@127
公共属性
ResourceId
uint64_t ResourceId
ResourceIdBytes
uint8_t ResourceIdBytes[8]
公共函数
FromString
WEAVE_ERROR FromString( const char *inBuffer, size_t inBufferLen )
将资源的规范字符串表示形式解析为资源对象。
将资源的规范字符串表示形式转换为资源对象。请注意,只有一部分资源可以表示为字符串,具体而言,Weave 中的参考实现只会解析 ResourceTypeEnum 中表示的规范类型的资源。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
FromString
WEAVE_ERROR FromString( const char *inBuffer, size_t inBufferLen, const uint64_t & aSelfNodeId )
将资源的规范字符串表示形式解析为资源对象。
将资源的规范字符串表示形式转换为资源对象。请注意,只有一部分资源可以表示为字符串,具体而言,Weave 中的参考实现只会解析 ResourceTypeEnum 中表示的规范类型的资源。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
FromTLV
WEAVE_ERROR FromTLV( nl::Weave::TLV::TLVReader & aReader )
将 TLV 表示形式的 ResourceIdentifier 反序列化到此对象中。
详细信息 | |||
---|---|---|---|
参数 |
|
||
返回值 |
WEAVE_NO_ERROR(如果成功)。如果无法正确读取 ResourceIdentifier,则 TLVReader 会出现错误。
|
FromTLV
WEAVE_ERROR FromTLV( nl::Weave::TLV::TLVReader & aReader, const uint64_t & aSelfNodeId )
将 TLV 表示形式的 ResourceIdentifier 反序列化到此对象中。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
||||
返回值 |
WEAVE_NO_ERROR(如果成功)。如果无法正确读取 ResourceIdentifier,则 TLVReader 会出现错误。
|
GetResourceId
uint64_t GetResourceId() const
用于获取 ResourceId 的访问器函数。
GetResourceType
uint16_t GetResourceType() const
用于提取 ResourceType 的访问器函数。
ResourceIdentifier
ResourceIdentifier()
构造一个与未指定的 ResourceID 对应的 ResourceIdentifier。
未指定的资源 ID 是一个由 RESERVED 资源类型和 kNodeIdNotSpeficied 资源组成的元组。
ResourceIdentifier
ResourceIdentifier( const uint64_t & aNodeId )
ResourceIdentifier
ResourceIdentifier( uint16_t aResourceType, const uint64_t & aResourceId )
使用给定 ID 构造指定类型的 ResourceIdentifier。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
ResourceIdentifier
ResourceIdentifier( uint16_t aResourceType, const uint8_t *aResourceId, size_t aResourceIdLen )
使用给定 ID 构造指定类型的 ResourceIdentifier。
详细信息 | |||||||
---|---|---|---|---|---|---|---|
参数 |
|
ResourceTypeAsString
const char * ResourceTypeAsString( void ) const
生成 ResourceType 的字符串表示形式。
转换的资源类型是指 ResourceTypeEnum.h 和 0(对应于 RESOURCE_TYPE_RESERVED)中枚举的资源类型。
ToString
WEAVE_ERROR ToString( char *buffer, size_t bufferLen )
ToTLV
WEAVE_ERROR ToTLV( nl::Weave::TLV::TLVWriter & aWriter ) const
使用上下文 Path::ResourceID 标记将资源序列化为 TLV 表示法。
详细信息 | |||
---|---|---|---|
参数 |
|
ToTLV
WEAVE_ERROR ToTLV( nl::Weave::TLV::TLVWriter & aWriter, const uint64_t & aTag ) const
使用给定标记将资源序列化为 TLV 表示法。
详细信息 | |||||
---|---|---|---|---|---|
参数 |
|
公共静态函数
ResourceTypeAsString
const char * ResourceTypeAsString( uint16_t aResourceType )
生成资源类型的字符串表示形式。
转换的资源类型是指 ResourceTypeEnum.h 和 0(对应于 RESOURCE_TYPE_RESERVED)中枚举的资源类型。
详细信息 | |||
---|---|---|---|
参数 |
|
好友课程
运算符==
friend bool operator==(const ResourceIdentifier &lhs, const ResourceIdentifier &rhs)