nl::Weave::Profiles::DataManagement_Current::ResourceIdentifier

#include <src/lib/profiles/data-management/Current/ResourceIdentifier.h>

用于封装资源 ID 的结构。

摘要

ResourceIdentifier 可能是特定类型的通用 64 位对象 ID 或 UUID。在外部编码时,支持以下表示法:

一个无符号的 64 位整数,与 DEVICE 类型的通用对象相对应,具有表示形式中的 ID

编码为 10 个八位字节的字节字符串的通用表示形式。前两个八位字节将资源类型编码为 16 位小端字节序,其余 8 个字节编码一个小端 64 位资源 ID。

ResourceIdentifiers 也体现了整个 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{
  RESOURCE_TYPE_RESERVED = 0
}
枚举
@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)
ResourceIdentifierTLV 表示法反序列化到此对象中。
FromTLV(nl::Weave::TLV::TLVReader & aReader, const uint64_t & aSelfNodeId)
ResourceIdentifierTLV 表示法反序列化到此对象中。
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

资源 ID 字节

uint8_t ResourceIdBytes[8]

公共函数

发件人字符串

WEAVE_ERROR FromString(
  const char *inBuffer,
  size_t inBufferLen
)

将资源的规范字符串表示形式解析为资源对象。

将资源的规范字符串表示形式转换为资源对象。请注意,只有部分资源可以表示为字符串,特别是,Weave 中的参考实现将仅解析 ResourceTypeEnum 中表示的规范类型的资源。

详细信息
参数
[in] inBuffer
包含要解析的资源 ID 的缓冲区
[in] inBufferLen
要解析的字符串的长度(以字节为单位)

发件人字符串

WEAVE_ERROR FromString(
  const char *inBuffer,
  size_t inBufferLen,
  const uint64_t & aSelfNodeId
)

将资源的规范字符串表示形式解析为资源对象。

将资源的规范字符串表示形式转换为资源对象。请注意,只有部分资源可以表示为字符串,特别是,Weave 中的参考实现将仅解析 ResourceTypeEnum 中表示的规范类型的资源。

详细信息
参数
[in] inBuffer
包含要解析的资源 ID 的缓冲区
[in] inBufferLen
要解析的字符串的长度(以字节为单位)
[in] aSelfNodeId
64 位 ID,指示应将哪个设备 ID 映射到 SELF_NODE_ID

TLV

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

ResourceIdentifierTLV 表示法反序列化到此对象中。

详细信息
参数
[in] aReader
位于 ResourceIdentifier 元素的 TLV 读取器
返回值
成功时为 WEAVE_NO_ERROR。无法正确读取 ResourceIdentifier 时 TLVReader 的错误。

TLV

WEAVE_ERROR FromTLV(
  nl::Weave::TLV::TLVReader & aReader,
  const uint64_t & aSelfNodeId
)

ResourceIdentifierTLV 表示法反序列化到此对象中。

详细信息
参数
[in] aReader
位于 ResourceIdentifier 元素的 TLV 读取器
[in] aSelfNodeId
将从序列化表示形式重新映射到 SELF_NODE_ID 的 64 位 ResourceID
返回值
成功时为 WEAVE_NO_ERROR。无法正确读取 ResourceIdentifier 时 TLVReader 的错误。

GetResourceId

uint64_t GetResourceId() const 

用于获取 ResourceId 的存取器函数。

GetResourceType

uint16_t GetResourceType() const 

用于获取 ResourceType 的存取器函数。

资源标识符

 ResourceIdentifier()

构造与未指定的 ResourceID 对应的 ResourceIdentifier

未指定的资源 ID 是一个由具有 kNodeIdNotSpeficied 资源的 RESERVED 资源类型组成的元组。

资源标识符

 ResourceIdentifier(
  const uint64_t & aNodeId
)

根据指定的 aNodeId 构造类型为 DEVICE 的 ResourceIdentifier

详细信息
参数
[in] aNodeId
给定资源 ID 的 NodeId

资源标识符

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint64_t & aResourceId
)

使用指定 ID 构造指定类型的 ResourceIdentifier

详细信息
参数
[in] aResourceType
要命名的资源的类型
[in] aResourceId
要命名的资源的 ID

资源标识符

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint8_t *aResourceId,
  size_t aResourceIdLen
)

使用指定 ID 构造指定类型的 ResourceIdentifier

详细信息
参数
[in] aResourceType
要命名的资源的类型
[in] aResourceId
要命名的资源的 ID(以字节数组表示)
[in] aResourceIdLen
ID 的长度(以字节为单位)

ResourceTypeAsString

const char * ResourceTypeAsString(
  void
) const 

生成 ResourceType 的字符串表示形式。

转换的资源类型是在 ResourceTypeEnum.h 和 0 中枚举的(对应于 RESOURCE_TYPE_RESERVED)

ToString

WEAVE_ERROR ToString(
  char *buffer,
  size_t bufferLen
)

ResourceIdentifier 转换为可打印字符串。

详细信息
参数
[in] buffer
要输出到的缓冲区
[in] bufferLen
缓冲区的长度

TLVV

WEAVE_ERROR ToTLV(
  nl::Weave::TLV::TLVWriter & aWriter
) const 

使用上下文 Path::ResourceID 标记将资源序列化为 TLV 表示法。

详细信息
参数
[in] aWriter
TLV 编写器,用于将 ResourceIdentifier 序列化为

TLVV

WEAVE_ERROR ToTLV(
  nl::Weave::TLV::TLVWriter & aWriter,
  const uint64_t & aTag
) const 

使用给定的标记将资源序列化为 TLV 表示形式。

详细信息
参数
[in] aWriter
TLV 编写器,用于将 ResourceIdentifier 序列化为
[in] aTag
用于命名序列化 ResourceIdentifier 的标记

公共静态函数

ResourceTypeAsString

const char * ResourceTypeAsString(
  uint16_t aResourceType
)

生成资源类型的字符串表示形式。

转换的资源类型是在 ResourceTypeEnum.h 和 0 中枚举的(对应于 RESOURCE_TYPE_RESERVED)

详细信息
参数
[in] aResourceType
要转换为字符串表示形式的资源类型枚举。

朋友课程

运算符==

friend bool operator==(const ResourceIdentifier &lhs, const ResourceIdentifier &rhs)