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

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

מחלקה לתמיכה ביצירה ובפענוח של הודעות שאילתת תמונה.

סיכום

למסגרת של שאילתת התמונה יש את הצורה הבאה מעל החוט

אורך שם השדה
בייט אחד שליטה בפריים
6 בייטים מפרט מוצרים
משתנה מפרט הגרסה
2..4 בייטים רשימת סוגי תקינות
2.5 בייטים עדכון רשימת סכמות
משתנה מפרט לוקאל (אופציונלי)
8 בייטים מזהה של צומת יעד
משתנה נתונים ספציפיים לספק (אופציונלי)
בשדה של בקרת הפריימים יש שדות ביט באופן הבא:

מקדח משמעות
0 1 – קיימים נתונים ספציפיים לספק, 0 – לא קיים
1 1 – מפרט מקומי קיים, 0 – לא קיים
2 1 - מזהה צומת יעד קיים, 0 - לא קיים
3..7 בוצעה הזמנה
ה-ImageQuery, כמבנה, נקרא באופן מעט שונה מהייצוג בזמן ההפעלה. באופן ספציפי, הגרסה והלוקאל הם מחרוזות c עם סיום null (בניגוד לצמדים (אורך, תווים) ושני הפריטים האופציונליים מיוצגים כמצביעים בעלי ערך null, כך שאין ערך בוליאני נפרד לבדיקה.

בנייה

ImageQuery()
בנאי ברירת המחדל של ImageQuery.

מאפיינים ציבוריים

integrityTypes
סוגי התקינות שנתמכים במכשיר.
localeSpec
מחרוזת UTF-8 באורך משתנה שמכילה את הלוקאל של ה-POSIX בתוקף במכשיר שעבורו נשלחת שאילתת התמונה.
packageSpec
מחרוזת UTF-8 באורך משתנה שמכילה מחרוזת של מפרט חבילה ספציפי לספק.
productSpec
מפרט המוצר שמתאר את המכשיר שממנו מתבצעת שאילתת התמונה.
targetNodeId
uint64_t
מזהה צומת אופציונלי של המכשיר שעבורו נשלחת השאילתה.
theMetaData
שדה הנתונים הספציפי לספק משתנה באורך משתנה והוא מכיל את שארית המטען הייעודי (payload) של הודעות 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 &)
מבצעים deserialize את ההודעה של שאילתת התמונה שנשלחה ב-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 משמש כשרת Proxy לעדכון תוכנה עבור צומת אחר.

theMetaData

ReferencedTLVData theMetaData

שדה הנתונים הספציפי לספק משתנה באורך משתנה והוא מכיל את שארית המטען הייעודי (payload) של הודעות Weave, מעבר לשדות המתוארים למעלה.

השדה מקודד מידע ספציפי לספק לגבי המכשיר שעבורו השאילתה נשלחת. השדה של הנתונים הספציפיים לספק הוא אופציונלי. אם השדה קיים, המבנה של השדה יהיה אנונימי בקידוד TLV. התגים שמוצגים במבנה הזה יהיו תגים ספציפיים לפרופיל, בעלי הרשאה מלאה.

updateSchemes

UpdateSchemeList updateSchemes

סכמות עדכון (פרוטוקולים להורדה) שנתמכים על ידי המכשיר.

גרסה

ReferencedString version

מחרוזת UTF-8 באורך משתנה שמכילה את גרסת התוכנה שצוינה על ידי הספק, שעבורה נשלחת השאילתה.

האורך המותר הוא 32 לכל היותר.

פונקציות ציבוריות

ImageQuery

 ImageQuery()

בנאי ברירת המחדל של ImageQuery.

אפשר לאכלס את ה-ImageQuery על ידי קריאה ל-init() או על ידי deserialing של האובייקט מהודעה.

להתחיל

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
החזרות
True אם כל השדות בשני האובייקטים שווים, false אם לא

חבילה

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 &
)

מבצעים deserialize את ההודעה של שאילתת התמונה שנשלחה ב-packetBuffer ל-ImageQuery שסופק.

פרטים
פרמטרים
[in] aBuffer
מצביע על חבילה שממנה אפשר לנתח את שאילתת התמונה
[in] aQuery
אובייקט שבו יש להציב את התוצאה
החזרות
WEAVE_NO_ERRORבהצלחה
החזרות
WEAVE_ERROR_BUFFER_TOO_CUSTOM אם ההודעה הייתה קטנה מדי ולא יכולה להכיל את כל השדות של ImageQuery
החזרות
WEAVE_ERROR_INVALID_LIST_LENGTH אם ההודעה הכילה IntegrityTypeList או UpdateSchemeList ארוכים מדי