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
לשדה הנתונים הספציפי לספק יש אורך שונה, והוא תופס את שאר המטען הייעודי של הודעות ב-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

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

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

updateSchemes

UpdateSchemeList updateSchemes

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

גרסה

ReferencedString version

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

חייב להיות באורך 32 לכל היותר.

תפקידים ציבוריים

ImageQuery

 ImageQuery()

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

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

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

חבילה

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

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

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