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{
|
列舉 |
@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 所示)。
詳細說明 | |||||
---|---|---|---|---|---|
參數 |
|
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 )
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
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)