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 ذات قيمة فارغة (مقابل صفوف (الطول والأحرف)) ويتم تمثيل كلا العنصرين الاختياريين كمؤشرات قابلة للقيم الفارغة لذا لا توجد قيمة منطقية منفصلة يجب التحقق منها.

الدلالة والهياكل

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
كائن بيانات مورّد اختياري بترميز 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 &
)

عليك الاطّلاع على رسالة طلب البحث عن الصورة المقدَّمة في PacketBuffer باستخدام دالة ImageQuery المقدَّمة.

التفاصيل
المَعلمات
[in] aBuffer
مؤشر يشير إلى حزمة يمكن تحليل استعلام الصورة منها
[in] aQuery
كائن يتم وضع النتيجة فيه
المرتجعات
WEAVE_NO_ERROR عند النجاح
المرتجعات
WEAVE_ERROR_BUFFER_TOO_SMALL إذا كانت الرسالة صغيرة جدًا بحيث لا يمكن أن تحتوي على جميع حقول ImageQuery
المرتجعات
WEAVE_ERROR_INVALID_LIST_LENGTH إذا كانت الرسالة تحتوي على IntegrityTypeList أو UpdateSchemeList الذي كان طويلاً جدًا