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, एक स्ट्रक्चर है, जो फ़्लाइट में मौजूद रेंडर होने के तरीके से थोड़ा अलग है. खास तौर पर, वर्शन और स्थान-भाषा, शून्य के बाद वाली सी-स्ट्रिंग (लंबाई, वर्ण) टूपल के उलट होती है. साथ ही, दोनों वैकल्पिक आइटम को शून्य होने वाले पॉइंटर के तौर पर दिखाया जाता है, इसलिए जांच करने के लिए कोई अलग बूलियन नहीं होता.

कंस्ट्रक्टर और डिस्ट्रक्टर

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 *)
दिए गए PacketBuffer में, पहले से मौजूद ImageQuery को क्रम से लगाएं.
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’.

productSpec

ProductSpec productSpec

प्रॉडक्ट की खास बातें, जो उस डिवाइस के बारे में बताती हैं जिससे इमेज क्वेरी की जा रही है.

targetNodeId

uint64_t targetNodeId

डिवाइस का एक वैकल्पिक नोड आईडी, जिसके लिए क्वेरी की जा रही है.

टारगेट नोड आईडी का फ़ील्ड ज़रूरी नहीं है. अगर मौजूद नहीं है, तो क्वेरी के लिए टारगेट नोड आईडी, साफ़ तौर पर वह नोड है जो इमेज क्वेरी के मैसेज का सोर्स था.

टारगेट नोड आईडी फ़ील्ड का इस्तेमाल आम तौर पर उन मामलों में किया जाता है जहां IMAGE QUERY के मैसेज का सोर्स नोड, किसी दूसरे नोड के लिए सॉफ़्टवेयर अपडेट प्रॉक्सी के तौर पर काम कर रहा हो.

theMetaData

ReferencedTLVData theMetaData

वेंडर के डेटा फ़ील्ड की लंबाई अलग-अलग होती है. साथ ही, ऊपर बताए गए फ़ील्ड के अलावा, Weave मैसेज के पेलोड के बाकी हिस्से का इस्तेमाल किया जाता है.

फ़ील्ड, वेंडर के हिसाब से उस डिवाइस की जानकारी को कोड में बदल देता है जिसके लिए क्वेरी की जा रही है. वेंडर के लिए डेटा फ़ील्ड ज़रूरी नहीं है. अगर यह फ़ील्ड मौजूद होता है, तो इसमें पहचान ज़ाहिर न करने वाला टीएलवी कोड में बदला गया स्ट्रक्चर होता है. इस संरचना में प्रस्तुत किए गए टैग पूरी तरह से योग्य प्रोफ़ाइल-विशिष्ट टैग होंगे.

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-एन्कोड किया गया वेंडर डेटा BLOB.
लौटाए जाने वाले प्रॉडक्ट
WEAVE_NO_ERROR बिना किसी शर्त के.

ऑपरेटर==

bool operator==(
  const ImageQuery &
) const 

इक्वलिटी ऑपरेटर.

जानकारी
पैरामीटर
another
इस ImageQuery से जुड़ी जांच करने के लिए कोई ImageQuery
लौटाए जाने वाले प्रॉडक्ट
सही है अगर दोनों ऑब्जेक्ट के सभी फ़ील्ड बराबर हैं, नहीं तो गलत

पैक

WEAVE_ERROR pack(
  PacketBuffer *
)

दिए गए PacketBuffer में, पहले से मौजूद ImageQuery को क्रम से लगाएं.

जानकारी
पैरामीटर
[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 को बहुत लंबा रखा गया था