nl::Weave::Profiles::SoftwareUpdate::ImageQuery

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

Một lớp hỗ trợ việc tạo và giải mã thông báo truy vấn hình ảnh.

Tóm tắt

Khung truy vấn hình ảnh có dạng như sau trên dây

Chiều dài Tên trường
1 byte điều khiển khung
6 byte quy cách sản phẩm
biến thiên thông số kỹ thuật của phiên bản
2,,4 byte danh sách loại tính toàn vẹn
2,5 byte cập nhật danh sách lược đồ
biến thiên thông số ngôn ngữ (không bắt buộc)
8 byte mã nút đích
biến thiên dữ liệu cụ thể của nhà cung cấp (không bắt buộc)
trong đó trường điều khiển khung có các trường bit như sau:

Bit Ý nghĩa
0 1 – có dữ liệu riêng của nhà cung cấp, 0 – không có
1 1 – có thông số ngôn ngữ, 0 – không có
2 1 – có mã nút đích, 0 – không có
3..7 Đã đặt trước
ImageQuery, vì cấu trúc đọc hơi khác so với cách trình bày đang hiển thị. Cụ thể, phiên bản và ngôn ngữ là các chuỗi c kết thúc rỗng (trái ngược với các bộ dữ liệu (độ dài, ký tự)) và cả hai mục không bắt buộc đều được biểu thị dưới dạng con trỏ rỗng, do đó không có boolean riêng để kiểm tra.

Hàm khởi tạo và phá huỷ

ImageQuery()
Hàm khởi tạo mặc định cho ImageQuery.

Các thuộc tính công khai

integrityTypes
Các loại tính toàn vẹn mà thiết bị hỗ trợ.
localeSpec
Một chuỗi UTF-8 có độ dài biến đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị đang thực hiện truy vấn hình ảnh.
packageSpec
Chuỗi UTF-8 có độ dài biến đổi chứa chuỗi thông số kỹ thuật gói theo nhà cung cấp.
productSpec
Quy cách sản phẩm mô tả thiết bị gửi truy vấn về hình ảnh.
targetNodeId
uint64_t
Mã nút không bắt buộc của thiết bị mà truy vấn đang được thực hiện.
theMetaData
Trường dữ liệu dành riêng cho nhà cung cấp có độ dài thay đổi và chiếm phần còn lại của tải trọng thông báo Weave, ngoài các trường được mô tả ở trên.
updateSchemes
Cập nhật giao thức (giao thức tải xuống) mà thiết bị hỗ trợ.
version
Một chuỗi UTF-8 có độ dài biến đổi chứa phiên bản phần mềm do nhà cung cấp chỉ định của thiết bị mà truy vấn được thực hiện.

Hàm công khai

init(ProductSpec & aProductSpec, ReferencedString & aVersion, IntegrityTypeList & aTypeList, UpdateSchemeList & aSchemeList, ReferencedString *aPackage, ReferencedString *aLocale, uint64_t aTargetNodeId, ReferencedTLVData *aMetaData)
Khởi tạo rõ ràng đối tượng ImageQuery bằng các giá trị đã cung cấp.
operator==(const ImageQuery &) const
bool
Toán tử đẳng thức.
pack(PacketBuffer *)
Tuần tự hoá ImageQuery cơ bản vào PacketBuffer được cung cấp.
print(void)
void

Hàm tĩnh công khai

parse(PacketBuffer *, ImageQuery &)
Giải tuần tự thông báo truy vấn hình ảnh có trong PacketBuffer thành ImageQuery được cung cấp.

Các thuộc tính công khai

integrityTypes

IntegrityTypeList integrityTypes

Các loại tính toàn vẹn mà thiết bị hỗ trợ.

localeSpec

ReferencedString localeSpec

Một chuỗi UTF-8 có độ dài biến đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị đang thực hiện truy vấn hình ảnh.

Nội dung của chuỗi phải tuân theo định dạng giá trị nhận dạng ngôn ngữ POSIX, như được quy định trong ISO/IEC 15897, ví dụ: en_AU.UTF-8 cho tiếng Anh Úc.

packageSpec

ReferencedString packageSpec

Một chuỗi UTF-8 có độ dài biến đổi chứa chuỗi thông số kỹ thuật gói theo nhà cung cấp.

Nội dung của trường mô tả loại vùng chứa mong muốn cho hình ảnh phần mềm, chẳng hạn như "RPM", "deb", "tgz", "elf", v.v. (LƯU Ý: Trường này không được dùng khi triển khai giao thức Nest)

productSpec

ProductSpec productSpec

Quy cách sản phẩm mô tả thiết bị gửi truy vấn về hình ảnh.

targetNodeId

uint64_t targetNodeId

Mã nút không bắt buộc của thiết bị mà truy vấn đang được thực hiện.

Trường id nút mục tiêu là không bắt buộc. Nếu không có, mã nút đích cho truy vấn sẽ ngầm ẩn là nút là nguồn của thông báo truy vấn hình ảnh.

Trường id nút đích thường được sử dụng trong các trường hợp mà nút là nguồn của thông báo IMAGE QUERY đang đóng vai trò là proxy cập nhật phần mềm cho một nút khác.

theMetaData

ReferencedTLVData theMetaData

Trường dữ liệu dành riêng cho nhà cung cấp có độ dài thay đổi và chiếm phần còn lại của tải trọng thông báo Weave, ngoài các trường được mô tả ở trên.

Trường này mã hoá thông tin cụ thể của nhà cung cấp về thiết bị mà hệ thống đang thực hiện truy vấn. Trường dữ liệu dành riêng cho nhà cung cấp là không bắt buộc. Nếu có, trường này có một dạng cấu trúc được mã hoá TLV ẩn danh. Các thẻ được trình bày trong cấu trúc này sẽ là thẻ dành riêng cho hồ sơ đủ điều kiện.

updateSchemes

UpdateSchemeList updateSchemes

Cập nhật giao thức (giao thức tải xuống) mà thiết bị hỗ trợ.

version

ReferencedString version

Một chuỗi UTF-8 có độ dài biến đổi chứa phiên bản phần mềm do nhà cung cấp chỉ định của thiết bị mà truy vấn được thực hiện.

Phải có độ dài từ 32 trở xuống.

Hàm công khai

ImageQuery

 ImageQuery()

Hàm khởi tạo mặc định cho ImageQuery.

ImageQuery có thể được điền sẵn bằng cách gọi init() hoặc bằng cách giải tuần tự đối tượng trong một thông báo.

khởi tạo

WEAVE_ERROR init(
  ProductSpec & aProductSpec,
  ReferencedString & aVersion,
  IntegrityTypeList & aTypeList,
  UpdateSchemeList & aSchemeList,
  ReferencedString *aPackage,
  ReferencedString *aLocale,
  uint64_t aTargetNodeId,
  ReferencedTLVData *aMetaData
)

Khởi tạo rõ ràng đối tượng ImageQuery bằng các giá trị đã cung cấp.

Chi tiết
Tham số
[in] aProductSpec
Quy cách sản phẩm.
[in] aVersion
Phiên bản phần mềm hiện được cài đặt.
[in] aTypeList
Các loại tính toàn vẹn được ứng dụng hỗ trợ.
[in] aSchemeList
Các giao thức cập nhật mà khách hàng hỗ trợ.
[in] aPackage
Thông số kỹ thuật của gói không bắt buộc được ứng dụng hỗ trợ.
[in] aLocale
Thông số ngôn ngữ không bắt buộc do ứng dụng yêu cầu.
[in] aTargetNodeId
Mã nút mục tiêu không bắt buộc.
[in] aMetaData
Blob dữ liệu của nhà cung cấp được mã hoá theo TLV (không bắt buộc).
Trả về
WEAVE_NO_ERROR Vô điều kiện.

toán tử==

bool operator==(
  const ImageQuery &
) const 

Toán tử đẳng thức.

Chi tiết
Tham số
another
Một ImageQuery để kiểm tra dựa trên ImageQuery này
Trả về
true nếu tất cả các trường trong cả hai đối tượng đều bằng nhau, false nếu không đáp ứng yêu cầu

gói

WEAVE_ERROR pack(
  PacketBuffer *
)

Tuần tự hoá ImageQuery cơ bản vào PacketBuffer được cung cấp.

Chi tiết
Tham số
[in] aBuffer
Một vùng đệm gói để đóng gói truy vấn vào đó
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu ImageQuery quá lớn để vừa với vùng đệm đã cung cấp.

in

void print(
  void
)

Hàm tĩnh công khai

phân tích cú pháp

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

Giải tuần tự thông báo truy vấn hình ảnh có trong PacketBuffer thành một ImageQuery được cung cấp.

Chi tiết
Tham số
[in] aBuffer
Con trỏ trỏ đến một gói để phân tích cú pháp truy vấn hình ảnh
[in] aQuery
Đối tượng để đưa kết quả vào
Trả về
WEAVE_NO_ERROR Khi thành công
Trả về
WEAVE_ERROR_BUFFER_TOO_Small Nếu thông báo quá nhỏ để chứa tất cả các trường của ImageQuery
Trả về
WEAVE_ERROR_INVALID_LIST_LENGTH Nếu thư chứa IntegrityTypeList hoặc UpdateSchemeList quá dài