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

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

คลาสสำหรับสนับสนุนการสร้างและการถอดรหัสข้อความข้อความค้นหารูปภาพ

สรุป

เฟรมข้อความค้นหารูปภาพมีรูปแบบต่อไปนี้อยู่เหนือสายไฟ

ความยาว ชื่อช่อง
1 ไบต์ การควบคุมเฟรม
6 ไบต์ ข้อมูลจำเพาะของผลิตภัณฑ์
ตัวแปร ข้อกำหนดเวอร์ชัน
2..4 ไบต์ รายการประเภทความสมบูรณ์
2..5 ไบต์ อัปเดตรายการรูปแบบ
ตัวแปร ข้อกำหนดภาษา (ไม่บังคับ)
8 ไบต์ รหัสโหนดเป้าหมาย
ตัวแปร ข้อมูลเฉพาะผู้ให้บริการ (ไม่บังคับ)
โดยที่ช่องควบคุมเฟรมมีช่องบิตดังนี้

ดอกสว่าน ความหมาย
0 1 - มีข้อมูลเฉพาะผู้ให้บริการ, 0 - ไม่มี
1 1 - มีข้อกำหนดของภาษา, 0 - ไม่มี
2 1 - มีรหัสโหนดเป้าหมาย, 0 - ไม่มี
3..7 จองแล้ว
ImageQuery เป็นโครงสร้างที่ต่างจากการแสดงข้อมูลขณะบินเล็กน้อย กล่าวอย่างเจาะจงคือ เวอร์ชันและภาษาเป็น C-string ที่มีเงื่อนไขสิ้นสุดค่าว่าง (ตรงข้ามกับ (ความยาว ตัวอักษร) tuples) และทั้ง 2 รายการที่ไม่บังคับจะแสดงเป็นตัวชี้ที่เป็นค่าว่างได้ จึงไม่มีบูลีนแยกต่างหากให้ตรวจสอบ

ผู้ผลิตและผู้ทำลาย

ImageQuery()
ตัวสร้างเริ่มต้นสำหรับ ImageQuery

แอตทริบิวต์สาธารณะ

integrityTypes
ประเภทความสมบูรณ์ที่อุปกรณ์รองรับ
localeSpec
สตริง UTF-8 ที่มีความยาวแปรผันซึ่งมีภาษา POSIX ที่มีผลในอุปกรณ์ที่มีการค้นหารูปภาพ
packageSpec
สตริง UTF-8 ที่มีความยาวแปรผันซึ่งมีสตริงข้อกำหนดแพ็กเกจที่เจาะจงผู้ให้บริการ
productSpec
ข้อมูลจำเพาะของผลิตภัณฑ์ที่อธิบายอุปกรณ์ที่ทำการค้นหารูปภาพ
targetNodeId
uint64_t
รหัสโหนด (ไม่บังคับ) ของอุปกรณ์ที่ใช้ทำการค้นหา
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 ที่ระบุ

แอตทริบิวต์สาธารณะ

integrityTypes

IntegrityTypeList integrityTypes

ประเภทความสมบูรณ์ที่อุปกรณ์รองรับ

localeSpec

ReferencedString localeSpec

สตริง UTF-8 ที่มีความยาวแปรผันซึ่งมีภาษา POSIX ที่มีผลในอุปกรณ์ที่มีการค้นหารูปภาพ

เนื้อหาของสตริงต้องสอดคล้องกับรูปแบบตัวระบุภาษา POSIX ตามที่ระบุไว้ใน ISO/IEC 15897 เช่น en_AU.UTF-8 สำหรับภาษาอังกฤษแบบออสเตรเลีย

packageSpec

ReferencedString packageSpec

สตริง UTF-8 ที่มีความยาวแปรผันซึ่งมีสตริงข้อกำหนดแพ็กเกจที่เจาะจงผู้ให้บริการ

เนื้อหาในช่องจะอธิบายประเภทคอนเทนเนอร์ที่ต้องการสำหรับอิมเมจซอฟต์แวร์ เช่น "rpm", "deb", "tgz", "elf" ฯลฯ (หมายเหตุ: ช่องนี้ไม่ได้ใช้ในการใช้งานโปรโตคอลของ Nest)

productSpec

ProductSpec productSpec

ข้อมูลจำเพาะของผลิตภัณฑ์ที่อธิบายอุปกรณ์ที่ทำการค้นหารูปภาพ

targetNodeId

uint64_t targetNodeId

รหัสโหนด (ไม่บังคับ) ของอุปกรณ์ที่ใช้ทำการค้นหา

จะระบุช่องรหัสโหนดเป้าหมายหรือไม่ก็ได้ หากไม่มี รหัสโหนดเป้าหมายสำหรับการค้นหาจะเป็นโหนดที่เป็นแหล่งที่มาของข้อความคำค้นหารูปภาพโดยปริยาย

โดยปกติแล้ว ช่องรหัสโหนดเป้าหมายจะใช้ในกรณีที่โหนดที่เป็นแหล่งที่มาของข้อความ IMAGE QUERY ทำหน้าที่เป็นพร็อกซีการอัปเดตซอฟต์แวร์สำหรับโหนดอื่น

theMetaData

ReferencedTLVData theMetaData

ช่องข้อมูลเฉพาะผู้ให้บริการมีความยาวแปรผันและใช้ส่วนที่เหลือของเพย์โหลดข้อความ Weave นอกเหนือจากช่องที่อธิบายข้างต้น

ช่องนี้จะเข้ารหัสข้อมูลเฉพาะของผู้ให้บริการเกี่ยวกับอุปกรณ์ในการค้นหา คุณจะระบุข้อมูลสำหรับฟิลด์ข้อมูลเฉพาะผู้ให้บริการหรือไม่ก็ได้ หากมี ช่องนี้จะมีรูปแบบโครงสร้างที่เข้ารหัส TLV แบบไม่ระบุตัวตน แท็กที่แสดงภายในโครงสร้างนี้จะเป็นแท็กเฉพาะโปรไฟล์ที่มีคุณสมบัติครบถ้วน

updateSchemes

UpdateSchemeList updateSchemes

อัปเดตรูปแบบ (โปรโตคอลการดาวน์โหลด) ที่อุปกรณ์รองรับ

เวอร์ชัน

ReferencedString version

สตริง UTF-8 ที่มีความยาวแปรผันซึ่งมีเวอร์ชันซอฟต์แวร์ที่ผู้ให้บริการระบุของอุปกรณ์ที่ใช้ทำการค้นหา

ต้องมีความยาวไม่เกิน 32

ฟังก์ชันสาธารณะ

ImageQuery

 ImageQuery()

ตัวสร้างเริ่มต้นสำหรับ ImageQuery

อาจมีการป้อนข้อมูล ImageQuery โดยการเรียกใช้ init() หรือโดยการดีซีเรียลไลซ์ออบเจ็กต์จากข้อความ

init

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

เริ่มต้นออบเจ็กต์ ImageQuery ที่ชัดเจนด้วยค่าที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aProductSpec
ข้อมูลจำเพาะของผลิตภัณฑ์
[in] aVersion
เวอร์ชันที่ติดตั้งอยู่ในปัจจุบันของซอฟต์แวร์
[in] aTypeList
ประเภทความสมบูรณ์ที่ไคลเอ็นต์รองรับ
[in] aSchemeList
รูปแบบการอัปเดตที่ไคลเอ็นต์รองรับ
[in] aPackage
ข้อกำหนดของแพ็กเกจที่ไม่บังคับซึ่งไคลเอ็นต์รองรับ
[in] aLocale
ข้อกำหนดของภาษาที่ไม่บังคับซึ่งไคลเอ็นต์ขอ
[in] aTargetNodeId
รหัสโหนดเป้าหมายที่ไม่บังคับ
[in] aMetaData
Blob ข้อมูลผู้ให้บริการที่เข้ารหัส TLV (ไม่บังคับ)
การส่งคืน
WEAVE_NO_ERROR ไม่มีเงื่อนไข

โอเปอเรเตอร์==

bool operator==(
  const ImageQuery &
) const 

โอเปอเรเตอร์ความเท่าเทียม

รายละเอียด
พารามิเตอร์
another
ImageQuery สำหรับตรวจสอบเทียบกับ ImageQuery นี้
การส่งคืน
จริง หากทุกช่องในออบเจ็กต์ทั้งสองเท่ากัน ไม่เช่นนั้นจะเป็นเท็จ

แพ็ก

WEAVE_ERROR pack(
  PacketBuffer *
)

เรียงอันดับ ImageQuery พื้นฐานลงใน PacketBuffer ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aBuffer
บัฟเฟอร์แพ็กเกตที่จะแพ็คข้อความค้นหา
แสดงผลค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
WEAVE_ERROR_BUFFER_TOO_SMALL
หาก ImageQuery มีขนาดใหญ่เกินกว่าที่จะพอดีกับบัฟเฟอร์ที่ให้ไว้

พิมพ์

void print(
  void
)

ฟังก์ชันแบบคงที่แบบสาธารณะ

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

ดีซีเรียลไลซ์ข้อความข้อความค้นหารูปภาพที่ระบุใน PacketBuffer ไปยัง ImageQuery ที่ระบุ

รายละเอียด
พารามิเตอร์
[in] aBuffer
ตัวชี้ไปยังแพ็คเก็ตที่จะแยกวิเคราะห์ข้อความค้นหารูปภาพ
[in] aQuery
ออบเจ็กต์ที่จะใส่ผลลัพธ์
การส่งคืน
WEAVE_NO_ERROR จากความสำเร็จ
การส่งคืน
WEAVE_ERROR_BUFFER_TOO_SMALL หากข้อความมีขนาดเล็กเกินไปที่จะมีทุกช่องของ ImageQuery
การส่งคืน
WEAVE_ERROR_INVALID_LIST_LENGTH หากข้อความมี IntegrityTypeList หรือ UpdateSchemeList ยาวเกินไป