จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

nl::Weave::โปรไฟล์::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 (ความยาว อักขระ) และรายการตัวเลือกทั้งสองจะแสดงเป็นค่าว่างซึ่งไม่มีข้อมูล จะไม่มีบูลีนแยกต่างหากสําหรับตรวจสอบ

ตัวสร้างและตัวทําลาย

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 ที่ให้ไว้

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

ประเภทความสมบูรณ์

IntegrityTypeList integrityTypes

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

ข้อมูลจําเพาะภาษา

ReferencedString localeSpec

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

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

ข้อมูลจําเพาะของแพ็กเกจ

ReferencedString packageSpec

สตริงความยาว UTF-8 ที่มีสตริงข้อมูลจําเพาะของแพ็กเกจเฉพาะผู้ให้บริการ

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

ข้อมูลจําเพาะของผลิตภัณฑ์

ProductSpec productSpec

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

รหัสเป้าหมายเป้าหมาย

uint64_t targetNodeId

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

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

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

ข้อมูลเมตา

ReferencedTLVData theMetaData

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

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

อัปเดตรูปแบบ

UpdateSchemeList updateSchemes

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

เวอร์ชัน

ReferencedString version

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

ต้องมีความยาว 32 หรือต่ํากว่า

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

การค้นหารูปภาพ

 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 (ไม่บังคับ)
การคืนสินค้า
WEhave_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
)

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

แยกวิเคราะห์

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

ดีเซลข้อความการค้นหารูปภาพที่มีอยู่ใน PacketBuffer ไปเป็น ImageQuery ที่ให้ไว้

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