nl::Weave::Profiles::SoftwareUpdate::ImageQueryResponse

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

這個類別支援建立和解碼圖片查詢回應訊息。

摘要

圖片查詢回應訊息的格式如下:

長度 欄位名稱
變數 URI
變數 版本規格
變數 完整性規格
1 個位元組 更新配置
1 個位元組 更新選項
(選用) 更新選項欄位的格式如下:

位元 意義
0..2 版 更新優先順序
3..4 更新狀況
5 報表狀態。設定後,用戶端會要求產生選擇性的 DownloadNotify 和 UpdateNotify 訊息。
5..7 預留
系統只會在成功處理圖片查詢並產生圖片查詢時,傳送圖片查詢回應。訊息即構成所提交查詢節點的下載指示。請注意,如果伺服器無法處理圖片查詢,就會產生圖片查詢狀態。

建構函式和解構函式

ImageQueryResponse()
ImageQueryResponse 的預設建構函式。

公開屬性

integritySpec
一個欄位,內含軟體更新圖片的完整性資訊 (完整性類型和雜湊值)。
reportStatus
bool
透過選用的 DownloadNotify 和 UpdateNotify 訊息,將軟體更新進度告知伺服器。
updateCondition
繼續軟體更新條件的說明。
updatePriority
指示指示裝置何時執行軟體更新。
updateScheme
uint8_t
要用來下載軟體更新映像檔的更新配置。
uri
長度為 UTF-8 的變數字串,內含軟體圖片位置。
versionSpec
長度不一的 UTF-8 字串,內含供應商專屬的軟體版本識別。

公開函式

init(ReferencedString &, ReferencedString &, IntegritySpec &, uint8_t, UpdatePriority, UpdateCondition, bool)
使用提供的值明確初始化 ImageQueryResponse 物件。
operator==(const ImageQueryResponse &) const
bool
等號運算子。
pack(PacketBuffer *)
ImageQueryResponse 序列化到提供的 PacketBuffer。
print(void)
void

公開的靜態函式

parse(PacketBuffer *, ImageQueryResponse &)
將 PacketBuffer 中提供的圖片查詢回應訊息還原為提供的 ImageQueryResponse

公開屬性

integritySpec

IntegritySpec integritySpec

一個欄位,內含軟體更新圖片的完整性資訊 (完整性類型和雜湊值)。

reportStatus

bool reportStatus

透過選用的 DownloadNotify 和 UpdateNotify 訊息,將軟體更新進度告知伺服器。

updateCondition

UpdateCondition updateCondition

繼續軟體更新條件的說明。

updatePriority

UpdatePriority updatePriority

指示指示裝置何時執行軟體更新。

updateScheme

uint8_t updateScheme

要用來下載軟體更新映像檔的更新配置。

其值是從 UpdateSchemes 擷取。

uri

ReferencedString uri

長度為 UTF-8 的變數字串,內含軟體圖片位置。

這個字串的內容必須符合 RFC 3986 規格。如果是對應至明確定義網際網路通訊協定 (HTTP、HTTPS、SFTP) 的更新配置,URI 的配置元素「必須」符合該通訊協定配置的標準網址編碼。字串長度不得超過 65565,而且字串必須包含單一 Weave 訊息,且有 MTU 的限制。

versionSpec

ReferencedString versionSpec

長度不一的 UTF-8 字串,內含供應商專屬的軟體版本識別。

字串長度不得超過 256 個位元組。

公開函式

ImageQueryResponse

 ImageQueryResponse()

ImageQueryResponse 的預設建構函式。

ImageQueryResponse 可能透過 init() 方法填入,或者從訊息中將物件還原序列化。

init

WEAVE_ERROR init(
  ReferencedString &,
  ReferencedString &,
  IntegritySpec &,
  uint8_t,
  UpdatePriority,
  UpdateCondition,
  bool
)

使用提供的值明確初始化 ImageQueryResponse 物件。

詳細資料
參數
[in] aUri
要尋找新韌體映像檔的 URI。
[in] aVersion
這張圖片的版本字串。
[in] aIntegrity
與新圖片相應的完整性規格。
[in] aScheme
下載時要使用的更新配置。
[in] aPriority
與本次更新相關聯的更新優先順序。
[in] aCondition
要更新的條件。
[in] aReportStatus
如果真正要求用戶端在下載與更新後回報資料,否則用戶端不會回報資料。
傳回
WEAVE_NO_ERROR 無條件。

運算子==

bool operator==(
  const ImageQueryResponse &
) const 

等號運算子。

詳細資料
參數
another
傳回
如果兩個物件中的所有欄位都相同,則傳回 true,否則傳回 false

WEAVE_ERROR pack(
  PacketBuffer *
)

ImageQueryResponse 序列化到提供的 PacketBuffer。

詳細資料
參數
[in] aBuffer
封裝查詢回應的封包緩衝區
傳回值
WEAVE_NO_ERROR
成功時。
WEAVE_ERROR_BUFFER_TOO_SMALL
如果 ImageQueryResponse 太大,超出提供的緩衝區空間。

列印

void print(
  void
)

公開的靜態函式

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQueryResponse &
)

將 PacketBuffer 中提供的圖片查詢回應訊息還原為提供的 ImageQueryResponse

詳細資料
參數
[in] aBuffer
指向用來剖析圖片查詢的封包指標
[in] aResponse
要在當中放入結果的物件
傳回
WEAVE_NO_ERROR 成功時
傳回
WEAVE_ERROR_BUFFER_TOO_SMALL 如果郵件太小,無法包含 ImageQuery 的所有欄位
傳回
WEAVE_ERROR_INVALID_INTEGRITY_TYPE 如果提供的完整性類型並非 IntegrityTypes 中指定的值