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 *)
दिए गए BoxetBuffer में, ImageQuery के क्रम को क्रम से लगाएं.
print(void)
void

सार्वजनिक स्टैटिक फ़ंक्शन

parse(PacketBuffer *, ImageQuery &)
एक पैकेट में दिए गए इमेज क्वेरी मैसेज को, दी गई ImageQuery में डीसीरियलाइज़ करें.

सार्वजनिक एट्रिब्यूट

integrityTypes

IntegrityTypeList integrityTypes

इस डिवाइस के साथ काम करने वाले, इंटिग्रिटी के टाइप.

localeSpec

ReferencedString localeSpec

अलग-अलग लंबाई वाली UTF-8 स्ट्रिंग, जिसमें POSIX स्थान-भाषा के साथ उस डिवाइस पर लागू होती है जिसके लिए इमेज क्वेरी की जा रही है.

स्ट्रिंग का कॉन्टेंट, ISO/IEC 15897 में बताए गए POSIX स्थान-भाषा पहचानकर्ता फ़ॉर्मैट के मुताबिक होना चाहिए. जैसे, ऑस्ट्रेलियन अंग्रेज़ी के लिए 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 मैसेज पेलोड का इस्तेमाल करता है.

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

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
लौटाए गए सामान
अगर दोनों ऑब्जेक्ट के सभी फ़ील्ड बराबर हैं, तो 'सही' है, नहीं तो 'गलत'

पैक

WEAVE_ERROR pack(
  PacketBuffer *
)

दिए गए BoxetBuffer में, ImageQuery के क्रम को क्रम से लगाएं.

जानकारी
पैरामीटर
[in] aBuffer
एक पैकेट बफ़र जिसमें क्वेरी को पैक किया जाता है
रिटर्न वैल्यू
WEAVE_NO_ERROR
सफल होने पर
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर ImageQuery दिए गए बफ़र में फ़िट होने के लिए बहुत बड़ा है.

प्रिंट करें

void print(
  void
)

सार्वजनिक स्टैटिक फ़ंक्शन

parse

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

एक पैकेट में दिए गए इमेज क्वेरी मैसेज को, दी गई ImageQuery में डीसीरियलाइज़ करें.

जानकारी
पैरामीटर
[in] aBuffer
उस पैकेट का पॉइंटर जिससे इमेज क्वेरी को पार्स करना है
[in] aQuery
वह ऑब्जेक्ट जिसमें नतीजा डालना है
लौटाए गए सामान
WEAVE_NO_ERROR सफल होने पर
लौटाए गए सामान
WEAVE_ERROR_BUFFER_TOO_SMALL अगर मैसेज बहुत छोटा था, तो उसमें ImageQuery के सभी फ़ील्ड शामिल नहीं थे
लौटाए गए सामान
WEAVE_ERROR_INVALID_LIST_LENGTH अगर मैसेज में IntegrityTypeList या UpdateSchemeList की वैल्यू बहुत लंबी थी