nl:: Weave:: Profiles:: SoftwareUpdate:: ImageQuery
#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>
该类支持创建和解码图片查询消息。
总结
图像查询框架采用以下形式(通过网络)
时长 | 字段名称 |
1 个字节 | 画面控制 |
6 个字节 | 产品规格 |
变量 | 版本规范 |
2..4 字节 | 完整性类型列表 |
2..5 字节 | 更新方案列表 |
变量 | 语言区域规范(可选) |
8 个字节 | 目标节点 ID |
变量 | 供应商特定数据(可选) |
钻头 | 含义 |
0 | 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。
|
公共属性
语言区域规范
ReferencedString localeSpec
包含图片查询的设备上的 POSIX 语言区域有效的可变长度 UTF-8 字符串。
该字符串的内容必须符合 ISO/IEC 15897 中规定的 POSIX 语言区域标识符格式,例如澳大利亚英语的 en_AU.UTF-8。
packageSpec
ReferencedString packageSpec
包含供应商专用软件包规范字符串的可变长度 UTF-8 字符串。
此字段的内容描述了软件映像所需的容器类型,例如“rpm”、“deb”、“tgz”和“elf”等(注意:此字段在协议的 Nest 实现中未使用)
目标节点 ID
uint64_t targetNodeId
为其执行查询的设备的可选节点 ID。
目标节点 ID 字段为可选字段。如果不存在,查询的目标节点 ID 便是作为图片查询消息的来源的节点。
在符合以下条件的情况下,目标节点 ID 字段通常用作映像查询消息的来源节点,作为另一节点的软件更新代理。
元数据
ReferencedTLVData theMetaData
供应商专用数据字段的长度可变,并除 Weave 消息载荷的剩余部分外,超出上述字段。
此字段会对要查询的设备进行供应商专用信息编码。供应商专用数据字段为选填字段。如果存在,该字段将采用匿名 TLV 编码结构。此结构中呈现的代码应该是完全限定的个人资料专用代码。
公共函数
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
包
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
|