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 は、構造として、処理中の表現とは若干異なる読み取りが行われます。特に、バージョンとロケールは((長さ、文字)タプルではなく)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」など、ソフトウェア イメージに必要なコンテナタイプを表します(注: このフィールドは、プロトコルの Google Nest 実装では使用されません)。

productSpec

ProductSpec productSpec

画像クエリを実行するデバイスを説明する製品仕様。

targetNodeId

uint64_t targetNodeId

クエリの対象となるデバイスのノード ID(省略可)。

ターゲット ノード ID フィールドは省略可能です。存在しない場合、クエリのターゲット ノード ID は暗黙的にイメージ クエリ メッセージのソースであったノードになります。

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

theMetaData

ReferencedTLVData theMetaData

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

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

updateSchemes

UpdateSchemeList updateSchemes

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

version

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 がメッセージに含まれている場合