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.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
如果为 true,则会在下载和更新后请求客户端报告,否则客户端将不会报告。
返回值
无条件展示 WEAVE_NO_ERROR。

运算符==

bool operator==(
  const ImageQueryResponse &
) const 

等式运算符。

详细信息
参数
another
要用于检查此 ImageQueryResponseImageQueryResponse
返回值
如果两个对象中的所有字段相等,则为 true;否则为 false

WEAVE_ERROR pack(
  PacketBuffer *
)

ImageQueryResponse 序列化到提供的 PacketBuffer。

详细信息
参数
[in] aBuffer
将查询响应打包到的数据包缓冲区
返回值
WEAVE_NO_ERROR
成功时。
WEAVE_ERROR_BUFFER_TOO_SMALL
如果 ImageQueryResponse 太大而无法放入提供的缓冲区中。

print

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 中指定的值之一