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 के लिए डिफ़ॉल्ट कंस्ट्रक्टर.
|
सार्वजनिक एट्रिब्यूट |
|
---|---|
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 में डीसीरियलाइज़ करें.
|
सार्वजनिक एट्रिब्यूट
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 ऑब्जेक्ट को साफ़ तौर पर शुरू करें.
जानकारी | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||
लौटाए गए सामान |
WEAVE_NO_ERROR बिना किसी शर्त के.
|
ऑपरेटर==
bool operator==( const ImageQuery & ) const
इक्वलिटी ऑपरेटर.
जानकारी | |||
---|---|---|---|
पैरामीटर |
|
||
लौटाए गए सामान |
अगर दोनों ऑब्जेक्ट के सभी फ़ील्ड बराबर हैं, तो 'सही' है, नहीं तो 'गलत'
|
पैक
WEAVE_ERROR pack( PacketBuffer * )
दिए गए BoxetBuffer में, ImageQuery के क्रम को क्रम से लगाएं.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
रिटर्न वैल्यू |
|
प्रिंट करें
void print( void )
सार्वजनिक स्टैटिक फ़ंक्शन
parse
WEAVE_ERROR parse( PacketBuffer *, ImageQuery & )
एक पैकेट में दिए गए इमेज क्वेरी मैसेज को, दी गई ImageQuery में डीसीरियलाइज़ करें.
जानकारी | |||||
---|---|---|---|---|---|
पैरामीटर |
|
||||
लौटाए गए सामान |
WEAVE_NO_ERROR सफल होने पर
|
||||
लौटाए गए सामान |
WEAVE_ERROR_BUFFER_TOO_SMALL अगर मैसेज बहुत छोटा था, तो उसमें ImageQuery के सभी फ़ील्ड शामिल नहीं थे
|
||||
लौटाए गए सामान |
WEAVE_ERROR_INVALID_LIST_LENGTH अगर मैसेज में IntegrityTypeList या UpdateSchemeList की वैल्यू बहुत लंबी थी
|