nl::Weave::Profiles::SoftwareUpdate::ImageQuery

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

画像クエリ メッセージの作成とデコードをサポートするクラス。

概要

画像クエリ フレームは次のような形式になります。

全長 フィールド名
1 バイト フレーム コントロール
6 バイト 商品の仕様
変数 バージョン仕様
2 ~ 4 バイト 完全性タイプリスト
2..5 バイト スキームリストの更新
変数 言語 / 地域の指定(省略可)
8 バイト ターゲット ノード ID
変数 ベンダー固有のデータ(省略可)
ここで、フレーム コントロール フィールドには、次のようなビット フィールドがあります。

ビット 意味
撮影していない 1 - ベンダー固有のデータあり、0 - なし
1 1 - ロケール指定あり、0 - なし
2 1 - ターゲット ノード ID あり、0 - なし
3.7 予約済み
ImageQuery は構造であるため、実行中の表現とは少し異なります。特に、version と locale は((length, characters)タプルとは対照的に)null 終端の c 文字列です。また、いずれのオプション項目も null 値許容ポインタとして表現されるため、検証する個別のブール値はありません。

コンストラクタとデストラクタ

ImageQuery()
ImageQuery のデフォルト コンストラクタ。

パブリック属性

integrityTypes
デバイスでサポートされている完全性タイプ。
localeSpec
画像クエリが実行されるデバイスで有効な POSIX ロケールを含む、可変長の UTF-8 文字列。
packageSpec
ベンダー固有のパッケージ仕様の文字列を含む可変長の UTF-8 文字列。
productSpec
画像クエリを実行するデバイスを記述するプロダクト仕様。
targetNodeId
uint64_t
クエリが実行されるデバイスのノード ID(省略可)。
theMetaData
ベンダー固有のデータ フィールドは可変長であり、前述のフィールド以外の Weave メッセージ ペイロードの残りの部分を占有します。
updateSchemes
デバイスでサポートされているアップデート スキーム(ダウンロード プロトコル)
version
クエリ対象のデバイスのベンダー指定ソフトウェア バージョンを含む可変長の UTF-8 文字列。

パブリック関数

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
指定された値で ImageQuery オブジェクトを明示的に初期化します。
operator==(const ImageQuery &) const
bool
等価演算子。
pack(PacketBuffer *)
基盤となる ImageQuery をシリアル化して、指定された PacketBuffer にします。
print(void)
void

静的パブリック関数

parse(PacketBuffer *, ImageQuery &)
PacketBuffer で指定された画像クエリ メッセージを、指定された ImageQuery にシリアル化解除します。

パブリック属性

integrityTypes

IntegrityTypeList integrityTypes

デバイスでサポートされている完全性タイプ。

localeSpec

ReferencedString localeSpec

画像クエリが実行されるデバイスで有効な POSIX ロケールを含む、可変長の UTF-8 文字列。

文字列の内容は、ISO/IEC 15897 で指定されている POSIX ロケール識別子の形式(オーストラリア英語の場合は en_AU.UTF-8 など)に準拠している必要があります。

packageSpec

ReferencedString packageSpec

ベンダー固有のパッケージ仕様の文字列を含む可変長の UTF-8 文字列。

フィールドの内容は、「rpm」、「deb」、「tgz」、「elf」など、ソフトウェア イメージに適したコンテナタイプを表します(注: このフィールドは、プロトコルの Nest 実装では使用されません)。

productSpec

ProductSpec productSpec

画像クエリを実行するデバイスを記述するプロダクト仕様。

targetNodeId

uint64_t targetNodeId

クエリが実行されるデバイスのノード ID(省略可)。

ターゲット ノード ID フィールドは省略可能です。存在しない場合、クエリのターゲット ノード ID は、画像クエリ メッセージのソースであるノードが暗黙的に指定されます。

ターゲット ノード id フィールドは通常、IMAGE QUERY メッセージのソースであるノードが別のノードのソフトウェア更新プロキシとして機能する場合に使用されます。

theMetaData

ReferencedTLVData theMetaData

ベンダー固有のデータ フィールドは可変長であり、前述のフィールド以外の Weave メッセージ ペイロードの残りの部分を占有します。

このフィールドには、クエリの対象であるデバイスに関するベンダー固有の情報がエンコードされます。ベンダー固有のデータ フィールドは省略可能です。存在する場合、フィールドは匿名の TLV エンコード構造の形式になります。この構造内で提示されるタグは、完全修飾プロファイル固有のタグになります。

updateSchemes

UpdateSchemeList updateSchemes

デバイスでサポートされているアップデート スキーム(ダウンロード プロトコル)

バージョン

ReferencedString version

クエリ対象のデバイスのベンダー指定ソフトウェア バージョンを含む可変長の UTF-8 文字列。

長さは 32 以下である必要があります。

パブリック関数

ImageQuery

 ImageQuery()

ImageQuery のデフォルト コンストラクタ。

ImageQuery は、init() を呼び出すか、オブジェクトをメッセージからシリアル化解除することで入力できます。

init

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

指定された値で ImageQuery オブジェクトを明示的に初期化します。

詳細
パラメータ
[in] aProductSpec
商品仕様。
[in] aVersion
現在インストールされているソフトウェアのバージョン。
[in] aTypeList
クライアントでサポートされている完全性タイプ。
[in] aSchemeList
クライアントでサポートされている更新スキーム。
[in] aPackage
クライアントでサポートされるオプションのパッケージ仕様。
[in] aLocale
クライアントからリクエストされるロケール仕様(省略可)。
[in] aTargetNodeId
ターゲット ノード ID(省略可)。
[in] aMetaData
TLV エンコードされたベンダーデータ blob(省略可)。
戻り値
WEAVE_NO_ERROR 無条件で返される。

演算子==

bool operator==(
  const ImageQuery &
) const 

等価演算子。

詳細
パラメータ
another
この ImageQuery に対して確認する ImageQuery
戻り値
両方のオブジェクトのすべてのフィールドが等しい場合は true、それ以外の場合は false

パック

WEAVE_ERROR pack(
  PacketBuffer *
)

基盤となる ImageQuery をシリアル化して、指定された PacketBuffer にします。

詳細
パラメータ
[in] aBuffer
クエリをパックするパケット バッファ
戻り値
WEAVE_NO_ERROR
成功時
WEAVE_ERROR_BUFFER_TOO_SMALL
ImageQuery が大きすぎて指定されたバッファに収まらない場合。

プリント

void print(
  void
)

静的パブリック関数

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

PacketBuffer で指定された画像クエリ メッセージを、指定された ImageQuery にシリアル化解除します。

詳細
パラメータ
[in] aBuffer
画像クエリを解析するパケットへのポインタ
[in] aQuery
結果を格納するオブジェクト。
戻り値
WEAVE_NO_ERROR 成功時
戻り値
WEAVE_ERROR_BUFFER_TOO_SMALL メッセージが小さすぎて ImageQuery のすべてのフィールドを含めることができない場合
戻り値
WEAVE_ERROR_INVALID_LIST_LENGTH 長すぎる IntegrityTypeList または UpdateSchemeList がメッセージに含まれていた