nl:: বুনা:: প্রোফাইল:: সফটওয়্যার আপডেট:: 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
বিক্রেতা-নির্দিষ্ট ডেটা ক্ষেত্রটি দৈর্ঘ্যে পরিবর্তনশীল এবং উপরে বর্ণিত ক্ষেত্রগুলির বাইরে, ওয়েভ মেসেজ পেলোডের অবশিষ্টাংশ দখল করে।
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 &)
প্যাকেটবাফারে প্রদত্ত ইমেজ ক্যোয়ারী বার্তাটিকে প্রদত্ত ImageQuery- এ ডিসিরিয়ালাইজ করুন।

পাবলিক বৈশিষ্ট্য

অখণ্ডতার প্রকার

IntegrityTypeList integrityTypes

অখণ্ডতার প্রকারগুলি ডিভাইস দ্বারা সমর্থিত৷

localeSpec

ReferencedString localeSpec

একটি পরিবর্তনশীল দৈর্ঘ্য UTF-8 স্ট্রিং যার জন্য ইমেজ ক্যোয়ারী করা হচ্ছে সেই ডিভাইসে POSIX লোকেল কার্যকর।

স্ট্রিংয়ের বিষয়বস্তু অবশ্যই POSIX লোকেল শনাক্তকারী বিন্যাসের সাথে সঙ্গতিপূর্ণ হতে হবে, যেমনটি ISO/IEC 15897-এ উল্লেখ করা হয়েছে, যেমন অস্ট্রেলিয়ান ইংরেজির জন্য en_AU.UTF-8।

প্যাকেজ বিশেষ

ReferencedString packageSpec

একটি পরিবর্তনশীল দৈর্ঘ্য UTF-8 স্ট্রিং যেখানে একটি বিক্রেতা-নির্দিষ্ট প্যাকেজ স্পেসিফিকেশন স্ট্রিং রয়েছে৷

ক্ষেত্রের বিষয়বস্তু সফ্টওয়্যার চিত্রের জন্য পছন্দসই ধারক প্রকার বর্ণনা করে, যেমন 'rpm', 'deb', 'tgz', 'elf', ইত্যাদি। (দ্রষ্টব্য: এই ক্ষেত্রটি প্রোটোকলের নেস্ট বাস্তবায়নে অব্যবহৃত)

পণ্য বিশেষ

ProductSpec productSpec

পণ্যের স্পেসিফিকেশন যে ডিভাইসটি ইমেজ কোয়েরি করছে তার বর্ণনা দেয়।

targetNodeId

uint64_t targetNodeId

যে ডিভাইসটির জন্য ক্যোয়ারী করা হচ্ছে তার একটি ঐচ্ছিক নোড আইডি।

লক্ষ্য নোড আইডি ক্ষেত্র ঐচ্ছিক। অনুপস্থিত থাকলে, ক্যোয়ারীটির লক্ষ্য নোড আইডিটি অন্তর্নিহিতভাবে নোড যা ইমেজ ক্যোয়ারী বার্তার উৎস ছিল।

টার্গেট নোড আইডি ক্ষেত্রটি সাধারণত এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে IMAGE QUERY বার্তার উৎস নোডটি অন্য নোডের জন্য একটি সফ্টওয়্যার আপডেট প্রক্সি হিসাবে কাজ করছে৷

মেটাডেটা

ReferencedTLVData theMetaData

বিক্রেতা-নির্দিষ্ট ডেটা ক্ষেত্রটি দৈর্ঘ্যে পরিবর্তনশীল এবং উপরে বর্ণিত ক্ষেত্রগুলির বাইরে, ওয়েভ মেসেজ পেলোডের অবশিষ্টাংশ দখল করে।

যে ডিভাইসটির জন্য ক্যোয়ারী করা হচ্ছে সে সম্পর্কে ক্ষেত্রটি বিক্রেতা-নির্দিষ্ট তথ্য এনকোড করে। বিক্রেতা-নির্দিষ্ট ডেটা ক্ষেত্র ঐচ্ছিক। যদি উপস্থিত থাকে, ক্ষেত্রের একটি বেনামী TLV-এনকোডেড কাঠামো রয়েছে। এই কাঠামোর মধ্যে উপস্থাপিত ট্যাগগুলি সম্পূর্ণরূপে-যোগ্য প্রোফাইল-নির্দিষ্ট ট্যাগ হতে হবে।

আপডেট স্কিম

UpdateSchemeList updateSchemes

ডিভাইস দ্বারা সমর্থিত আপডেট স্কিম (ডাউনলোড প্রোটোকল)।

সংস্করণ

ReferencedString version

একটি পরিবর্তনশীল দৈর্ঘ্য UTF-8 স্ট্রিং যেখানে ডিভাইসটির বিক্রেতা-নির্দিষ্ট সফ্টওয়্যার সংস্করণ রয়েছে যার জন্য অনুসন্ধান করা হচ্ছে৷

দৈর্ঘ্য 32 বা ছোট হতে হবে।

পাবলিক ফাংশন

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 *
)

প্রদত্ত PacketBuffer-এ অন্তর্নিহিত ImageQuery-কে সিরিয়ালাইজ করুন।

বিস্তারিত
পরামিতি
[in] aBuffer
একটি প্যাকেট বাফার যার মধ্যে কোয়েরি প্যাক করতে হবে
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি ImageQuery প্রদত্ত বাফারে ফিট করার জন্য খুব বড় হয়।

মুদ্রণ

void print(
  void
)

পাবলিক স্ট্যাটিক ফাংশন

পার্স

WEAVE_ERROR parse(
  PacketBuffer *,
  ImageQuery &
)

প্যাকেটবাফারে প্রদত্ত ইমেজ ক্যোয়ারী বার্তাটিকে প্রদত্ত ImageQuery- এ ডিসিরিয়ালাইজ করুন।

বিস্তারিত
পরামিতি
[in] aBuffer
একটি প্যাকেটের একটি পয়েন্টার যেখান থেকে ইমেজ ক্যোয়ারী পার্স করা যায়
[in] aQuery
একটি বস্তু যেখানে ফলাফল রাখা
রিটার্নস
WEAVE_NO_ERROR সাফল্যে
রিটার্নস
WEAVE_ERROR_BUFFER_TOO_SMALL যদি ইমেজকোয়েরির সমস্ত ক্ষেত্র ধারণ করার জন্য বার্তাটি খুব ছোট হয়
রিটার্নস
WEAVE_ERROR_INVALID_LIST_LENGTH যদি বার্তাটিতে একটি IntegrityTypeList বা UpdateSchemeList থাকে যা খুব দীর্ঘ ছিল