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 ที่มีค่าเป็น Null (ตรงข้ามกับ 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
)

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

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

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 ยาวเกินไป