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
|
可变长度的 UTF-8 字符串,其中包含进行图片查询的设备上有效的 POSIX 语言区域。
|
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
可变长度的 UTF-8 字符串,其中包含进行图片查询的设备上有效的 POSIX 语言区域。
字符串的内容必须符合 ISO/IEC 15897 中指定的 POSIX 语言区域标识符格式,例如en_AU.UTF-8(澳大利亚英语)。
packageSpec
ReferencedString packageSpec
一个可变长度的 UTF-8 字符串,其中包含供应商专用软件包规范字符串。
此字段的内容描述了软件映像所需的容器类型,如“rpm”“deb”“tgz”“elf”等(注意:此字段在协议的 Nest 实现中未使用)
targetNodeId
uint64_t targetNodeId
作为查询对象的设备的可选节点 ID。
目标节点 ID 字段为选填字段。如果缺少此参数,则查询的目标节点 ID 将隐式作为图片查询消息的来源节点。
作为“图片查询”消息来源的节点充当另一个节点的软件更新代理的实例,通常使用目标节点 ID 字段。
theMetaData
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
|