nl:: बुनें:: प्रोफाइल:: सॉफ्टवेयर अपडेट:: इमेजक्वेरी

#include <src/lib/profiles/software-update/SoftwareUpdateProfile.h>

छवि क्वेरी संदेशों के निर्माण और डिकोडिंग का समर्थन करने के लिए एक वर्ग।

सारांश

छवि क्वेरी फ़्रेम का तार पर निम्न रूप है

लंबाई क्षेत्र का नाम
1 बाइट फ्रेम नियंत्रण
6 बाइट्स उत्पाद विनिर्देश
परिवर्तनशील संस्करण विनिर्देश
२..४ बाइट्स अखंडता प्रकार सूची
२.५ बाइट्स अद्यतन योजना सूची
परिवर्तनशील स्थानीय विशिष्टता (वैकल्पिक)
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
विक्रेता-विशिष्ट डेटा फ़ील्ड लंबाई में परिवर्तनशील है और ऊपर वर्णित फ़ील्ड से परे, शेष वेव संदेश पेलोड पर कब्जा कर लेता है।
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 में प्रदान की जाती संदेश deserialize ImageQuery

सार्वजनिक गुण

अखंडता प्रकार

IntegrityTypeList integrityTypes

डिवाइस द्वारा समर्थित अखंडता प्रकार।

लोकेलस्पेक

ReferencedString localeSpec

एक चर लंबाई UTF-8 स्ट्रिंग जिसमें POSIX लोकेल शामिल है, उस डिवाइस पर प्रभाव में है जिसके लिए छवि क्वेरी की जा रही है।

स्ट्रिंग की सामग्री को POSIX लोकेल पहचानकर्ता प्रारूप के अनुरूप होना चाहिए, जैसा कि ISO/IEC 15897 में निर्दिष्ट है, जैसे ऑस्ट्रेलियाई अंग्रेजी के लिए en_AU.UTF-8।

पैकेजस्पेक

ReferencedString packageSpec

एक चर लंबाई UTF-8 स्ट्रिंग जिसमें एक विक्रेता-विशिष्ट पैकेज विनिर्देश स्ट्रिंग होती है।

फ़ील्ड की सामग्री सॉफ़्टवेयर छवि के लिए वांछित कंटेनर प्रकार का वर्णन करती है, जैसे 'rpm', 'deb', 'tgz', 'elf', आदि। (नोट: प्रोटोकॉल के Nest कार्यान्वयन में यह फ़ील्ड अप्रयुक्त है)

उत्पाद विशिष्टता

ProductSpec productSpec

छवि क्वेरी करने वाले डिवाइस का वर्णन करने वाले उत्पाद विनिर्देश।

लक्ष्य नोड आईडीI

uint64_t targetNodeId

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

लक्ष्य नोड आईडी फ़ील्ड वैकल्पिक है। यदि अनुपस्थित है, तो क्वेरी के लिए लक्ष्य नोड आईडी परोक्ष रूप से वह नोड है जो छवि क्वेरी संदेश का स्रोत था।

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

मेटाडेटा

ReferencedTLVData theMetaData

विक्रेता-विशिष्ट डेटा फ़ील्ड लंबाई में परिवर्तनशील है और ऊपर वर्णित फ़ील्ड से परे, शेष वेव संदेश पेलोड पर कब्जा कर लेता है।

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

अद्यतन योजनाएं

UpdateSchemeList updateSchemes

डिवाइस द्वारा समर्थित योजनाओं को अपडेट करें (प्रोटोकॉल डाउनलोड करें)।

संस्करण

ReferencedString version

एक परिवर्तनीय लंबाई UTF-8 स्ट्रिंग जिसमें डिवाइस का विक्रेता-निर्दिष्ट सॉफ़्टवेयर संस्करण होता है जिसके लिए क्वेरी की जा रही है।

लंबाई 32 या उससे कम होनी चाहिए।

सार्वजनिक समारोह

इमेजक्वेरी

 ImageQuery()

के लिए डिफ़ॉल्ट निर्माता ImageQuery

ImageQuery फोन करके पॉप्युलेट हो सकता init () या संदेश से वस्तु deserializing द्वारा।

इस में

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
एक वैकल्पिक टीएलवी-एन्कोडेड विक्रेता डेटा ब्लॉब।
रिटर्न
WEAVE_NO_ERROR बिना शर्त।

ऑपरेटर ==

bool operator==(
  const ImageQuery &
) const 

एक समानता ऑपरेटर।

विवरण
मापदंडों
another
एक ImageQuery इस के खिलाफ जांच करने के लिए ImageQuery
रिटर्न
सत्य यदि दोनों वस्तुओं में सभी क्षेत्र समान हैं, अन्यथा गलत है

पैक

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 में प्रदान की जाती संदेश deserialize ImageQuery

विवरण
मापदंडों
[in] aBuffer
एक पैकेट के लिए एक सूचक जिससे छवि क्वेरी को पार्स करना है
[in] aQuery
एक वस्तु जिसमें परिणाम डालना है
रिटर्न
WEAVE_NO_ERROR सफलता पर
रिटर्न
WEAVE_ERROR_BUFFER_TOO_SMALL तो संदेश भी के सभी क्षेत्रों को शामिल करने के छोटा था ImageQuery
रिटर्न
WEAVE_ERROR_INVALID_LIST_LENGTH तो संदेश एक निहित IntegrityTypeList या UpdateSchemeList कि बहुत लंबा था