nl:: بافت:: پروفایل ها:: به روز رسانی نرم افزار:: 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 با پایان تهی هستند (برخلاف تاپل‌های (طول، کاراکترها)) و هر دو آیتم اختیاری به‌عنوان اشاره‌گر ته‌شونده نمایش داده می‌شوند، بنابراین یک بولی جداگانه برای بررسی وجود ندارد.

سازندگان و ویرانگرها

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

انواع یکپارچگی پشتیبانی شده توسط دستگاه

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

مشخصات محصول که دستگاهی را که درخواست تصویر را انجام می دهد را توصیف می کند.

targetNodeId

uint64_t targetNodeId

شناسه گره اختیاری دستگاهی که پرس و جو برای آن انجام می شود.

فیلد شناسه گره هدف اختیاری است. اگر وجود نداشته باشد، شناسه گره هدف برای پرس و جو به طور ضمنی همان گره ای است که منبع پیام پرس و جو تصویر بوده است.

فیلد شناسه گره هدف معمولاً در مواردی استفاده می‌شود که گرهی که منبع پیام IMAGE QUERY است به عنوان یک پروکسی به‌روزرسانی نرم‌افزار برای گره دیگر استفاده می‌شود.

متا دیتا

ReferencedTLVData theMetaData

طول فیلد داده خاص فروشنده متغیر است و باقیمانده بار پیام Weave را فراتر از فیلدهای توضیح داده شده در بالا اشغال می کند.

این فیلد اطلاعات خاص فروشنده را در مورد دستگاهی که پرس و جو برای آن انجام می شود رمزگذاری می کند. فیلد داده های خاص فروشنده اختیاری است. در صورت وجود، فیلد شکلی از ساختار کدگذاری شده با TLV ناشناس دارد. تگ های ارائه شده در این ساختار باید تگ های کاملا واجد شرایط پروفایل خاص باشند.

به روز رسانی طرح ها

UpdateSchemeList updateSchemes

به روز رسانی طرح ها (پروتکل های دانلود) پشتیبانی شده توسط دستگاه.

نسخه

ReferencedString version

یک رشته UTF-8 با طول متغیر که حاوی نسخه نرم افزاری مشخص شده توسط فروشنده دستگاهی است که درخواست برای آن انجام می شود.

طول آن باید 32 یا کمتر باشد.

توابع عمومی

ImageQuery

 ImageQuery()

سازنده پیش فرض برای ImageQuery .

ImageQuery ممکن است با فراخوانی init() یا با deserialized شی از یک پیام پر شود.

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
یک لکه داده فروشنده با کدگذاری 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 &
)

پیام پرس و جو تصویر ارائه شده در PacketBuffer را در ImageQuery ارائه شده از حالت سریال خارج کنید.

جزئیات
مولفه های
[in] aBuffer
اشاره گر به بسته ای که از آن کوئری تصویر تجزیه می شود
[in] aQuery
شیئی که نتیجه را در آن قرار می دهد
برمی گرداند
WEAVE_NO_ERROR در موفقیت
برمی گرداند
WEAVE_ERROR_BUFFER_TOO_SMALL اگر پیام خیلی کوچک بود که شامل تمام فیلدهای ImageQuery نمی شد
برمی گرداند
WEAVE_ERROR_INVALID_LIST_LENGTH اگر پیام حاوی IntegrityTypeList یا UpdateSchemeList بود که خیلی طولانی بود