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 與 DEVICE 的節點 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)
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
使用結構定義路徑::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 enums 中的列舉值發生衝突。目前,RESERVED 資源類型可能有兩個 ResourceId 值:kNodeIdNotSpecified 對應至單元化的 ResourceIdentifier,SELF_NODE_ID 對應於會從任何其他表示法重新對應至 SELF 的資源。

@126

 @126

為 NodeId 定義參照「self」的特殊值。

在某些 WDM 互動中,如果將資源的值自行設為資源,由於該資訊與 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 所示)。

詳細說明
參數
[in] inBuffer
緩衝區,內含要剖析的資源 ID
[in] inBufferLen
要剖析的字串長度 (以位元組為單位)

FromString

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

將資源的標準字串表示法剖析為資源物件。

將資源的標準字串表示法轉換為資源物件。請注意,只有部分資源可以以字串表示,特別是 Weave 中的參考實作只會剖析標準類型的資源 (如 ResourceTypeEnum 所示)。

詳細說明
參數
[in] inBuffer
緩衝區,內含要剖析的資源 ID
[in] inBufferLen
要剖析的字串長度 (以位元組為單位)
[in] aSelfNodeId
用來表示應對應至哪個裝置 ID 的 64 位元 ID

FromTLV

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

TLV 代表中的 ResourceIdentifier 反序列化至此物件。

詳細說明
參數
[in] aReader
位於 ResourceIdentifier 元素的 TLV 讀取器
傳回
成功時:WEAVE_NO_ERROR。如果 ResourceIdentifier 無法正確讀取,就會發生 TLVReader 的錯誤。

FromTLV

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

TLV 代表中的 ResourceIdentifier 反序列化至此物件。

詳細說明
參數
[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

 ResourceIdentifier()

建構與未指定 ResourceID 對應的 ResourceIdentifier

未指定的資源 ID 是元組,由 RESERVED 資源類型組成,其中含有 kNodeIdNotSpeficied 資源。

ResourceIdentifier

 ResourceIdentifier(
  const uint64_t & aNodeId
)

根據指定的 aNodeId,建構 DEVICE 類型的 ResourceIdentifier

詳細說明
參數
[in] aNodeId
指定資源 ID 的 NodeId

ResourceIdentifier

 ResourceIdentifier(
  uint16_t aResourceType,
  const uint64_t & aResourceId
)

使用指定 ID 建構指定類型的 ResourceIdentifier

詳細說明
參數
[in] aResourceType
要命名的資源類型
[in] aResourceId
要命名的資源 ID

ResourceIdentifier

 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
緩衝區的長度

ToTLV

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

使用結構定義路徑::ResourceID 標記將資源序列化為 TLV 表示法。

詳細說明
參數
[in] aWriter
TLV 寫入者可將 ResourceIdentifier 序列化為

ToTLV

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)