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

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

一个类,用于支持创建和解码图片查询响应消息。

摘要

图片查询响应消息的格式如下:

时长 字段名称
变量 URI
变量 版本规范
变量 完整性规范
1 字节 更新架构
1 字节 更新选项
(可选)更新选项字段的格式如下:

钻头 含义
0..2 更新优先级
3..4 更新条件
5 报告状态。设置后,系统会要求客户端生成可选的 DownloadNotify 和 Update Notifications 消息。
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 的 scheme 元素必须符合该协议架构的规范网址编码。字符串长度不得超过 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
用于根据该 ImageQueryResponse 进行检查的 ImageQueryResponse
返回值
如果两个对象中的所有字段都相等,则返回 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 中指定的值之一)