nl::
  #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()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 にシリアル化解除します。 | 
パブリック属性
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 実装では使用されません)。
targetNodeId
uint64_t targetNodeId
クエリの対象となるデバイスのノード ID(省略可)。
ターゲット ノード ID フィールドは省略可能です。存在しない場合、クエリのターゲット ノード ID は暗黙的にイメージ クエリ メッセージのソースであったノードになります。
ターゲット ノード ID フィールドは、通常、IMAGE QUERY メッセージのソースであるノードが別のノードのソフトウェア更新プロキシとして機能しているインスタンスで使用されます。
theMetaData
ReferencedTLVData theMetaData
ベンダー固有のデータ フィールドの長さは可変であり、上記のフィールド以外の Weave メッセージ ペイロードの残りの部分を占有します。
このフィールドには、クエリの対象となるデバイスに関するベンダー固有の情報がエンコードされます。ベンダー固有のデータ フィールドは省略可能です。存在する場合、フィールドは匿名の TLV エンコード構造の形式になります。この構造で指定されるタグは、完全修飾されたプロファイル固有のタグである必要があります。
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 オブジェクトを明示的に初期化します。
| 詳細 | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| パラメータ | 
 | ||||||||||||||||
| 戻り値 | WEAVE_NO_ERROR 無条件。 | ||||||||||||||||
演算子==
bool operator==( const ImageQuery & ) const
等価演算子。
| 詳細 | |||
|---|---|---|---|
| パラメータ | 
 | ||
| 戻り値 | 両方のオブジェクトのすべてのフィールドが等しい場合は true、それ以外の場合は false | ||
パック
WEAVE_ERROR pack( PacketBuffer * )
基になる ImageQuery をシリアル化して指定された PacketBuffer に取り込みます。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
| 戻り値 | 
 | ||||
プリント
void print( void )
静的パブリック関数
parse
WEAVE_ERROR parse( PacketBuffer *, ImageQuery & )
PacketBuffer で提供される画像クエリ メッセージを、指定された ImageQuery にシリアル化解除します。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
| 戻り値 | WEAVE_NO_ERROR(成功時) | ||||
| 戻り値 | WEAVE_ERROR_BUFFER_TOO_SMALL メッセージが小さすぎて ImageQuery のすべてのフィールドを格納できない場合 | ||||
| 戻り値 | WEAVE_ERROR_INVALID_LIST_LENGTH: 長すぎる IntegrityTypeList または UpdateSchemeList がメッセージに含まれている場合 | ||||