ไม่มี:: สาน:: โปรไฟล์:: อัพเดตซอฟต์แวร์:: ImageQuery

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

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

สรุป

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

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

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

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

ImageQuery ()
คอนสตรัคเริ่มต้นสำหรับ ImageQuery

คุณลักษณะสาธารณะ

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

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

parse (PacketBuffer *, ImageQuery &)
deserialize ข้อความแบบสอบถามภาพที่มีให้บริการใน PacketBuffer เป็นที่จัดไว้ให้ ImageQuery

คุณลักษณะสาธารณะ

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

IntegrityTypeList integrityTypes

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

localeSpec

ReferencedString localeSpec

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

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

packageSpec

ReferencedString packageSpec

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

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

สินค้าSpec

ProductSpec productSpec

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

targetNodeId

uint64_t targetNodeId

node id ทางเลือกของอุปกรณ์ที่ทำการสืบค้น

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

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

theMetaData

ReferencedTLVData theMetaData

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

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

updateSchemes

UpdateSchemeList updateSchemes

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

รุ่น

ReferencedString version

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

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

งานสาธารณะ

ImageQuery

 ImageQuery()

คอนสตรัคเริ่มต้นสำหรับ ImageQuery

ImageQuery อาจจะมีประชากรโดยการเรียก init () หรือโดยการ deserializing วัตถุจากข้อความ

ในนั้น

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
ID โหนดเป้าหมายที่เป็นทางเลือก
[in] aMetaData
หยดข้อมูลผู้ขายที่เข้ารหัส 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
)

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

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

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

deserialize ข้อความแบบสอบถามภาพที่มีให้บริการใน PacketBuffer เป็นที่จัดไว้ให้ ImageQuery

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