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

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

リソースの ID をカプセル化する構造体。

概要

ResourceIdentifier は、特定のタイプの一般化された 64 ビット オブジェクト ID か、UUID のいずれかです。外部でエンコードする場合は、次の表現がサポートされます。

表現で指定された ID を持つ DEVICE 型の一般化されたオブジェクトに対応する符号なし 64 ビット整数。

10 オクテットのバイト文字列としてエンコードされた一般化された表現。最初の 2 つのオクテットはリソースタイプを 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{
  RESOURCE_TYPE_RESERVED = 0
}
enum
@126 enum
「self」を参照する NodeId の特別な値を定義します。
@127 enum

パブリック属性

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 リソースタイプに対して 2 つの ResourceId 値を使用できます。kNodeIdNotSpecified は、ユニット化された ResourceIdentifier に対応し、SELF_NODE_ID は他の表現から SELF に再マッピングするリソースに対応します。

@126

 @126

「self」を参照する NodeId の特別な値を定義します。

特定の 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 で表現されている正規型のリソースのみが解析されます。

詳細
パラメータ
[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
SELF_NODE_ID にマッピングするデバイス 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 

コンテキストの Path::ResourceID タグを使用して、リソースを TLV 表現にシリアル化します。

詳細
パラメータ
[in] aWriter
ResourceIdentifier をシリアル化するための TLV ライター

ToTLV

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

指定されたタグを使用して、リソースを TLV 表現にシリアル化します。

詳細
パラメータ
[in] aWriter
ResourceIdentifier をシリアル化するための TLV ライター
[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)