Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

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

Một lớp (class) 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ó biểu mẫu sau trên dây

Độ 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 thông số phiên bản
2,4 byte danh sách loại toàn vẹn
2,5 byte cập nhật danh sách lược đồ
biến quy cách ngôn ngữ (không bắt buộc)
8 byte mã nút mục tiêu
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 hình có các trường bit như sau:

Bit Ý nghĩa
0 1 – hiện diện dữ liệu dành riêng cho nhà cung cấp, 0 – không có
1 1 – hiện tại thông số kỹ thuật của ngôn ngữ, 0 – không có
2 1 – hiện diện mã nhận dạng nút mục tiêu, 0 – không hiện diện
3,7 Đã đặt chỗ
ImageQuery, một cấu trúc có cách đọc hơi khác với cách trình bày trên máy bay. 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ài (length, characters)) và cả hai mục tuỳ chọn đều được biểu thị dưới dạng con trỏ có thể rỗng, vì vậy, không có boolean riêng biệt để kiểm tra.

Hàm dựng và hàm dựng

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
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 được thực hiện.
packageSpec
Chuỗi UTF-8 có độ dài thay đổi chứa chuỗi thông số kỹ thuật của gói dành riêng cho nhà cung cấp.
productSpec
Thông số sản phẩm mô tả thiết bị đang tạo truy vấn hình ảnh.
targetNodeId
uint64_t
Mã nút không bắt buộc của thiết bị đang thực hiện truy vấ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 trọng tải tin nhắn Weave, ngoài các trường được mô tả ở trên.
updateSchemes
Lược đồ cập nhật (giao thức tải xuống) được thiết bị hỗ trợ.
version
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 đượ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 đối tượng ImageQuery một cách rõ ràng bằng các giá trị được cung cấp.
operator==(const ImageQuery &) const
bool
Toán tử bằng.
pack(PacketBuffer *)
Tuần tự hoá ImageQuery cơ bản thành Gói PackBBer đượ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 một ImageQuery được cung cấp.

Thuộc tính công khai

Các loại tính toàn vẹn

IntegrityTypeList integrityTypes

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

SpecSpec

ReferencedString localeSpec

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 được thực hiện.

Nội dung của chuỗi phải tuân theo định dạng mã 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

Chuỗi UTF-8 có độ dài thay đổi chứa chuỗi thông số kỹ thuật của gói dành riêng cho 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 trong quá trình triển khai Nest theo giao thức)

thông số sản phẩm

ProductSpec productSpec

Thông số sản phẩm mô tả thiết bị đang tạo truy vấn hình ảnh.

targetNodeId

uint64_t targetNodeId

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

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

Trường mã nhận dạng nút mục tiêu thường được sử dụng trong các trường hợp nút là nguồn của thông báo HÌNH ẢNH DỮ LIỆU HÌNH ẢNH TRỰC TIẾP đang đóng vai trò là proxy cập nhật phần mềm cho một nút khác.

Siêu dữ liệu

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 trọng tải tin nhắn Weave, ngoài các trường được mô tả ở trên.

Trường này mã hóa thông tin của nhà cung cấp cụ thể về thiết bị đang được 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ó dạng cấu trúc được mã hóa TLV ẩn danh. Các thẻ được trình bày trong cấu trúc này sẽ là các thẻ dành riêng cho hồ sơ đủ điều kiện.

updateSchemes

UpdateSchemeList updateSchemes

Lược đồ cập nhật (giao thức tải xuống) được thiết bị hỗ trợ.

phiên bản

ReferencedString version

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 được thực hiện.

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

Hàm công khai

Truy vấn hình ảnh

 ImageQuery()

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

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

khởi đầu

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

Khởi tạo đối tượng ImageQuery một cách rõ ràng bằng các giá trị được 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 lược đồ cập nhật mà ứng dụng hỗ trợ.
[in] aPackage
Thông số gói tuỳ chọn mà ứng dụng hỗ trợ.
[in] aLocale
Thông số ngôn ngữ tùy chọn 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ã hóa 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ử bằng.

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

gói

WEAVE_ERROR pack(
  PacketBuffer *
)

Tuần tự hoá ImageQuery cơ bản thành Gói PackBBer đượ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
Thành công
WEAVE_ERROR_BUFFER_TOO_SMALL
Nếu ImageQuery quá lớn không thể vừa với bộ đệm được 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 cung cấp trong PacketBuffer thành một 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 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ông báo chứa IntegrityTypeList hoặc UpdateSchemeList quá dài