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

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

封裝資源 ID 的結構。

摘要

ResourceIdentifier 可以是特定類型的通用 64 位元物件 ID,也可以是 UUID。從外部編碼時,系統支援下列表示法:

一個不帶正負號的 64 位元整數,對應於代表中所指定的 ID 的 DEVICE 類型一般物件

編碼為位元組字串 (10 個八位元) 的通用表示法。前兩個八位元會將資源類型編碼為 16 位元的小終端整數,其餘的 8 位元組會將資源 ID 編碼為小型結尾的 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 列舉
定義參照「self」的 NodeId 特殊值。
@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

預留資源類型。

系統會選擇使用列舉,讓列舉不會與結構定義中的列舉值相衝突::Weave:::Common::ResourceType 列舉。目前 RESERVED 資源類型可能有兩個 ResourceId 值:kNodeIdNotSpecified 對應到單位化的 ResourceIdentifier,以及 SELF_NODE_ID 對應至會從任何其他表示法重新對應至 SELF 的資源。

@126

 @126

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

在某些 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
64 位元 ID 用於表示應對應至 SELF_NODE_ID 的裝置 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
64 位元 ResourceID,會從序列化表示法重新對應到 SELF_NODE_ID
傳回
成功發生 WEAVE_NO_ERROR。如果無法正確讀取 ResourceIdentifier,則 TLVReader 發生錯誤。

GetResourceId

uint64_t GetResourceId() const 

用於擷取 ResourceId 的存取子函式。

GetResourceType

uint16_t GetResourceType() const 

用於擷取 ResourceType 的存取子函式。

ResourceIdentifier

 ResourceIdentifier()

建構與未指定 ResourceID 相對應的 ResourceIdentifier

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

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 

使用結構定義 Path::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)