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 sau trên dây

Chiều dài Tên trường
1 byte điều khiển khung hình
6 byte quy cách sản phẩm
biến quy cách 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 thông số kỹ thuật của ngôn ngữ (không bắt buộc)
8 byte mã nhận dạng nút đích
biế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 cụ thể của nhà cung cấp, 0 - không có
1 1 – có thông số kỹ thuật về ngôn ngữ, 0 – không có
2 1 – có mã nút đích, 0 – không có
3..7 Đã đặt trước
ImageQuery, dưới dạng cấu trúc đọc hơi khác so với nội dung trình bày đang diễn ra. 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 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à hàm phá

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

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 thay đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị mà truy vấn hình ảnh đang được thực hiện.
packageSpec
Một chuỗi UTF-8 có độ dài thay đổi chứa chuỗi thông số kỹ thuật gói của nhà cung cấp.
productSpec
Thông số kỹ thuật sản phẩm mô tả thiết bị đang thực hiện truy vấn hình ảnh.
targetNodeId
uint64_t
Mã nhận dạng 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 của từng nhà cung cấp có độ dài khác nhau 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 lược đồ (giao thức tải xuống) mà thiết bị hỗ trợ.
version
Một chuỗi UTF-8 có độ dài thay đổ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 đang đượ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 chạy đối tượng ImageQuery một cách rõ ràng bằng các giá trị đã cung cấp.
operator==(const ImageQuery &) const
bool
Toán tử cân bằng.
pack(PacketBuffer *)
Chuyển đổi tuần tự ImageQuery cơ bản vào Gói đệm đượ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 cung cấp trong PacketBuffer thành ImageQuery được cung cấp.

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 thay đổi chứa ngôn ngữ POSIX có hiệu lực trên thiết bị mà truy vấn hình ảnh đang được thực hiện.

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 chỉ đị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 thay đổi chứa chuỗi thông số kỹ thuật gói của nhà cung cấp.

Nội dung của trường này 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 sử dụng trong các quy trình triển khai giao thức của Nest)

productSpec

ProductSpec productSpec

Thông số kỹ thuật sản phẩm mô tả thiết bị đang thực hiện truy vấn hình ảnh.

targetNodeId

uint64_t targetNodeId

Mã nhận dạng 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 mã nhận dạng nút đích là trường không bắt buộc. Nếu không có, mã nhận dạng nút đích cho truy vấn sẽ ngầm định là nút là nguồn của thông báo truy vấn hình ảnh.

Trường mã nhận dạng nút đích thường được dùng trong các trường hợp 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 của từng nhà cung cấp có độ dài khác nhau 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à truy vấn đang được thực hiện. Trường dữ liệu của nhà cung cấp là không bắt buộc. Nếu có, trường có dạng cấu trúc mã hoá TLV ẩn danh. Các thẻ được trình bày trong cấu trúc này phải là thẻ dành riêng cho hồ sơ đủ điều kiện.

updateSchemes

UpdateSchemeList updateSchemes

Cập nhật lượ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 thay đổ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 đang đượ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.

Bạn có thể điền sẵn ImageQuery bằng cách gọi init() hoặc giải trình tự đối tượng qua một thông báo.

init

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

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

Thông tin chi tiết
Các tham số
[in] aProductSpec
Quy cách sản phẩm.
[in] aVersion
Phiên bản phần mềm hiện đã cài đặt.
[in] aTypeList
Các loại tính toàn vẹn mà ứng dụng hỗ trợ.
[in] aSchemeList
Các giao thức cập nhật mà ứng dụ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ố kỹ thuật về ngôn ngữ không bắt buộc do ứng dụng yêu cầu.
[in] aTargetNodeId
Mã nút đích không bắt buộc.
[in] aMetaData
Một 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 Không có điều kiện.

toán tử==

bool operator==(
  const ImageQuery &
) const 

Toán tử cân bằng.

Thông tin chi tiết
Các tham số
another
Một ImageQuery để kiểm tra ImageQuery này
Trả về
giá trị true (đúng) nếu tất cả các trường trong cả hai đối tượng đều bằng nhau, nếu không thì false (sai)

gói

WEAVE_ERROR pack(
  PacketBuffer *
)

Chuyển đổi tuần tự ImageQuery cơ bản vào Gói đệm được cung cấp.

Thông tin chi tiết
Các tham số
[in] aBuffer
Vùng đệm gói để đóng gói truy vấn
Giá trị trả về
WEAVE_NO_ERROR
Khi thành công
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu ImageQuery quá lớn nên không vừa với vùng đệm được cung cấp.

in

void print(
  void
)

Hàm tĩnh công khai

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

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

Thông tin chi tiết
Các 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
Một đối tượng để đặt kết quả
Trả về
WEAVE_NO_ERROR Khi thành công
Trả về
WEAVE_ERROR_BUFFER_TOO_ cùng Nếu thư quá nhỏ để chứa tất cả các trường của ImageQuery
Trả về
WEAVE_ERROR_INVALID_LIST_LENGTH Nếu thông báo chứa IntegrityTypeList hoặc UpdateSchemeList quá dài