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 が 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
}
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)