nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
স্কিমা ইঞ্জিন একটি নির্দিষ্ট বৈশিষ্ট্যের সাথে সম্পর্কিত স্কিমা তথ্য নেয় এবং এটিকে পার্স ও অনুবাদ করার সুবিধা প্রদান করে যা WDM মেশিনের দ্বারা ব্যবহারযোগ্য একটি ফর্মে।
সারাংশ
এর মধ্যে রয়েছে PathHandles থেকে WDM পাথে রূপান্তর (এবং তদ্বিপরীত), স্কিমা নিজেই ব্যাখ্যা/ক্যোয়ারী করার পদ্ধতি এবং একটি হ্যান্ডেল দেওয়া TLV থেকে ডেটা পড়তে/লিখতে সাহায্য করার পদ্ধতি।
স্কিমা নিজেই ট্যাবুলার আকারে সংরক্ষিত হয়, যে কোনও নির্দিষ্ট বৈশিষ্ট্যের জন্য WDM পাথ/ডেটাগুলির জেনেরিক পার্সিং/কম্পোজিশনের অনুমতি দেওয়ার জন্য যথেষ্ট বর্ণনা করা হয়েছে। এই টেবিলগুলি হল 'কোড-জেন'-এর চূড়ান্ত আউটপুট (কোন তৈরি করা কোডের অনুপস্থিতির কারণে শব্দটি নিজেই কিছুটা বিভ্রান্তিকর :P)
পাবলিক স্ট্যাটিক বৈশিষ্ট্য | |
---|---|
kHandleTableOffset = 2 | const uint32_t |
পাবলিক বৈশিষ্ট্য | |
---|---|
mSchema | const Schema |
পাবলিক ফাংশন | |
---|---|
FindLowestCommonAncestor ( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild) const | দুটি প্রপার্টি হ্যান্ডেল দেওয়া হয়েছে, এই দুটি হ্যান্ডেলের অভিভাবক হিসাবে কাজ করে এমন সর্বনিম্ন হ্যান্ডেলটি গণনা করুন। |
GetChildHandle ( PropertyPathHandle aParentHandle, uint8_t aContextTag) const | |
GetDepth ( PropertyPathHandle aHandle) const | int32_t একটি প্রদত্ত হ্যান্ডেলের জন্য স্কিমা ট্রিতে গভীরতা গণনা করুন। |
GetDictionaryItemHandle ( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey) const | |
GetFirstChild ( PropertyPathHandle aParentHandle) const | একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত প্রথম চাইল্ড হ্যান্ডেল প্রদান করে। |
GetHighestForwardVersion (SchemaVersion aVersion) const | SchemaVersion একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বোচ্চ ফরওয়ার্ড সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে। |
GetLowestCompatibleVersion (SchemaVersion aVersion) const | SchemaVersion একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বনিম্ন সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে। |
GetMap ( PropertyPathHandle aHandle) const | const PropertyInfo * একটি নির্দিষ্ট পাথ হ্যান্ডেল বর্ণনা করে PropertyInfo কাঠামোতে একটি পয়েন্টার ফেরত দেয়। |
GetMaxVersion () const | SchemaVersion |
GetMinVersion () const | SchemaVersion |
GetNextChild ( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle) const | একটি বিদ্যমান শিশুকে একটি হ্যান্ডেল দেওয়া হলে, একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত পরবর্তী সন্তানের হ্যান্ডেলটি ফেরত দেয়। |
GetParent ( PropertyPathHandle aHandle) const | একটি প্রদত্ত চাইল্ড পাথ হ্যান্ডেলের প্যারেন্ট হ্যান্ডেল ফেরত দেয়। |
GetProfileId (void) const | uint32_t সংশ্লিষ্ট বৈশিষ্ট্যের প্রোফাইল আইডি প্রদান করে। |
GetRelativePathTags (const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags) const | একটি PropertyPathHandle কে কনটেক্সট ট্যাগের একটি অ্যারেতে রূপান্তর করে৷ |
GetTag ( PropertyPathHandle aHandle) const | uint64_t একটি পাথ হ্যান্ডেলের সাথে যুক্ত ট্যাগ প্রদান করে। |
GetVersionIntersection ( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection) const | bool একটি সংস্করণ পরিসর দেওয়া হয়েছে, এই ফাংশনটি এই স্কিমা ইঞ্জিনকে সমর্থন করছে এমন স্কিমা দ্বারা সমর্থিত এবং এর মধ্যে একটি সামঞ্জস্যপূর্ণ ছেদ আছে কিনা তা পরীক্ষা করে। |
IsDictionary ( PropertyPathHandle aHandle) const | bool হ্যান্ডেলটি একটি অভিধান হলে সত্য ফেরত দেয় (এবং অভিধানে নয় - নীচের পদ্ধতিটি দেখুন)। |
IsEphemeral ( PropertyPathHandle aHandle) const | bool |
IsInDictionary ( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const | bool হ্যান্ডেলটি অভিধানের (একটি অভিধান উপাদান) ভিতরে থাকলে সত্য প্রদান করে। |
IsLeaf ( PropertyPathHandle aPropertyHandle) const | bool যদি হ্যান্ডেলটি স্কিমা ট্রিতে একটি লিফ নোডকে নির্দেশ করে তবে সত্য দেখায়। |
IsNullable ( PropertyPathHandle aHandle) const | bool |
IsOptional ( PropertyPathHandle aHandle) const | bool |
IsParent ( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle) const | bool একটি প্রদত্ত হ্যান্ডেল অন্য হ্যান্ডেলের শিশু কিনা তা পরীক্ষা করে। |
MapHandleToPath ( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter) const | পাথ হ্যান্ডেলটিকে একটি TLV পাথে রূপান্তর করুন। |
MapPathToHandle ( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle) const | একটি WDM পাথ উপাদানের মূলে অবস্থিত একটি পাঠককে দেওয়া, প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন৷ |
MapPathToHandle (const char *aPathString, PropertyPathHandle & aHandle) const | একটি WDM পাথের একটি স্ট্রিং প্রতিনিধিত্ব দেওয়া প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন। |
MatchesProfileId (uint32_t aProfileId) const | bool যদি প্রোফাইল আইডিতে পাস করা স্কিমাতে সংরক্ষিত তার সাথে মেলে তাহলে সত্য দেখায়। |
RetrieveData ( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut) const | একটি পাথ হ্যান্ডেল এবং সংশ্লিষ্ট ডেটা উপাদানে লেখকের অবস্থান দেওয়া, উত্স থেকে পাতার ডেটা পুনরুদ্ধার করুন এবং স্কিমা অনুগত পদ্ধতিতে লেখক দ্বারা নির্দেশিত বাফারে এটি লিখুন৷ |
RetrieveUpdatableDictionaryData ( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom) const | |
StoreData ( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter) const | একটি পাথ হ্যান্ডেল এবং একটি পাঠক সংশ্লিষ্ট ডেটা উপাদানের উপর অবস্থান করে, পাঠকের দ্বারা নির্দেশিত ডেটা বাফারটি প্রক্রিয়া করুন এবং যখনই একটি পাতার ডেটা আইটেম সম্মুখীন হয় তখন SetLeafData কল আহ্বান করে এটিকে সিঙ্কে সংরক্ষণ করুন৷ |
ক্লাস | |
---|---|
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: TraitSchemaEngine:: IGetDataDelegate | |
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: TraitSchemaEngine:: ISetDataDelegate |
কাঠামো | |
---|---|
nl:: বুনা:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: TraitSchemaEngine:: PropertyInfo | |
nl:: বুনন:: প্রোফাইল:: ডেটা ম্যানেজমেন্ট_কারেন্ট:: ট্রেটস্কেমা ইঞ্জিন:: স্কিমা | মূল স্কিমা কাঠামো যেখানে স্কিমা তথ্য রয়েছে। |
পাবলিক স্ট্যাটিক বৈশিষ্ট্য
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
পাবলিক বৈশিষ্ট্য
mSchema
const Schema mSchema
পাবলিক ফাংশন
FindLowestCommonAncestor
PropertyPathHandle FindLowestCommonAncestor( PropertyPathHandle aHandle1, PropertyPathHandle aHandle2, PropertyPathHandle *aHandle1BranchChild, PropertyPathHandle *aHandle2BranchChild ) const
দুটি প্রপার্টি হ্যান্ডেল দেওয়া হয়েছে, এই দুটি হ্যান্ডেলের অভিভাবক হিসাবে কাজ করে এমন সর্বনিম্ন হ্যান্ডেলটি গণনা করুন।
অতিরিক্তভাবে, দুটি চাইল্ড শাখা ফেরত দিন যাতে দুটি হ্যান্ডেলের প্রতিটি রয়েছে (যদিও তারা একই হয়)।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetChildHandle
PropertyPathHandle GetChildHandle( PropertyPathHandle aParentHandle, uint8_t aContextTag ) const
GetDepth
int32_t GetDepth( PropertyPathHandle aHandle ) const
একটি প্রদত্ত হ্যান্ডেলের জন্য স্কিমা ট্রিতে গভীরতা গণনা করুন।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetDictionaryItemHandle
PropertyPathHandle GetDictionaryItemHandle( PropertyPathHandle aParentHandle, uint16_t aDictionaryKey ) const
GetFirstChild
PropertyPathHandle GetFirstChild( PropertyPathHandle aParentHandle ) const
একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত প্রথম চাইল্ড হ্যান্ডেল প্রদান করে।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetHighestForwardVersion
SchemaVersion GetHighestForwardVersion( SchemaVersion aVersion ) const
একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বোচ্চ ফরওয়ার্ড সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে।
GetLowest Compatible Version
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বনিম্ন সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে।
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
একটি নির্দিষ্ট পাথ হ্যান্ডেল বর্ণনা করে PropertyInfo কাঠামোতে একটি পয়েন্টার ফেরত দেয়।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetMaxVersion
SchemaVersion GetMaxVersion() const
GetMinVersion
SchemaVersion GetMinVersion() const
GetNextChild
PropertyPathHandle GetNextChild( PropertyPathHandle aParentId, PropertyPathHandle aChildHandle ) const
একটি বিদ্যমান শিশুকে একটি হ্যান্ডেল দেওয়া হলে, একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত পরবর্তী সন্তানের হ্যান্ডেলটি ফেরত দেয়।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetParent
PropertyPathHandle GetParent( PropertyPathHandle aHandle ) const
একটি প্রদত্ত চাইল্ড পাথ হ্যান্ডেলের প্যারেন্ট হ্যান্ডেল ফেরত দেয়।
হ্যান্ডেলের অভিধান কীগুলি সেই ক্ষেত্রে সংরক্ষিত থাকে যেখানে প্যারেন্ট হ্যান্ডেলটিও একটি অভিধান উপাদান।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetProfileId
uint32_t GetProfileId( void ) const
সংশ্লিষ্ট বৈশিষ্ট্যের প্রোফাইল আইডি প্রদান করে।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetRelativePathTags
WEAVE_ERROR GetRelativePathTags( const PropertyPathHandle aCandidateHandle, uint64_t *aTags, const uint32_t aTagsSize, uint32_t & aNumTags ) const
একটি PropertyPathHandle কে কনটেক্সট ট্যাগের একটি অ্যারেতে রূপান্তর করে৷
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্নস | সাফল্যের ক্ষেত্রে WEAVE_NO_ERROR; WEAVE_ERROR_NO_MEMORY যদি aTags সম্পূর্ণ পাথ সংরক্ষণ করার জন্য খুব ছোট হয়। |
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
একটি পাথ হ্যান্ডেলের সাথে যুক্ত ট্যাগ প্রদান করে।
এটি একটি অভিধান উপাদান হলে, এই ফাংশন ProfileTag প্রদান করে। অন্যথায়, এটি প্রসঙ্গ ট্যাগ প্রদান করে।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
একটি সংস্করণ পরিসর দেওয়া হয়েছে, এই ফাংশনটি এই স্কিমা ইঞ্জিনকে সমর্থন করছে এমন স্কিমা দ্বারা সমর্থিত এবং এর মধ্যে একটি সামঞ্জস্যপূর্ণ ছেদ আছে কিনা তা পরীক্ষা করে।
যদি একটি ছেদ থাকে, ফাংশনটি সত্যে ফিরে আসবে এবং সেই ইন্টারসেকশন পরীক্ষার ফলাফলগুলি প্রতিফলিত করতে পাস করা একটি ইন্টারসেকশন আর্গুমেন্ট আপডেট করবে।
অভিধান
bool IsDictionary( PropertyPathHandle aHandle ) const
হ্যান্ডেলটি একটি অভিধান হলে সত্য ফেরত দেয় (এবং অভিধানে নয় - নীচের পদ্ধতিটি দেখুন)।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
ইফেমেরাল
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
হ্যান্ডেলটি অভিধানের (একটি অভিধান উপাদান) ভিতরে থাকলে সত্য প্রদান করে।
হ্যান্ডেলে পাস করা ব্যবহারকারীকে (aDictionaryItemHandle) অভিধানের মধ্যে শীর্ষ-সর্বাধিক অভিধান উপাদান হ্যান্ডেল নির্দেশ করতে আপডেট করা হয়।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
আইসলিফ
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
যদি হ্যান্ডেলটি স্কিমা ট্রিতে একটি লিফ নোডকে নির্দেশ করে তবে সত্য দেখায়।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
বাতিলযোগ্য
bool IsNullable( PropertyPathHandle aHandle ) const
ঐচ্ছিক
bool IsOptional( PropertyPathHandle aHandle ) const
ইস প্যারেন্ট
bool IsParent( PropertyPathHandle aChildHandle, PropertyPathHandle aParentHandle ) const
একটি প্রদত্ত হ্যান্ডেল অন্য হ্যান্ডেলের শিশু কিনা তা পরীক্ষা করে।
এটি একটি অপ্রত্যক্ষ অভিভাবক হতে পারে।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
MapHandleToPath
WEAVE_ERROR MapHandleToPath( PropertyPathHandle aHandle, nl::Weave::TLV::TLVWriter & aPathWriter ) const
MapPathToHandle
WEAVE_ERROR MapPathToHandle( nl::Weave::TLV::TLVReader & aPathReader, PropertyPathHandle & aHandle ) const
একটি WDM পাথ উপাদানের মূলে অবস্থিত একটি পাঠককে দেওয়া, প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন৷
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
একটি WDM পাথের একটি স্ট্রিং প্রতিনিধিত্ব দেওয়া প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন।
WDM পাথ নিম্নলিখিত নিয়মগুলি ব্যবহার করে একটি স্ট্রিং হিসাবে উপস্থাপিত হয়:
- ট্যাগগুলি
/
দিয়ে আলাদা করা হয় - পথটি একটি অগ্রণী দিয়ে শুরু হতে হবে এবং একটি ট্রেলিং স্ল্যাশ থাকা উচিত নয়
/
- WDM পাথের সংখ্যাসূচক ট্যাগগুলি অবশ্যই স্ট্যান্ডার্ড C লাইব্রেরি ব্যবহার করে পূর্ণসংখ্যা থেকে স্ট্রিং এনকোডিং ব্যবহার করে এনকোড করা উচিত, যেমন দশমিক এনকোডিং (ডিফল্ট) একটি অগ্রণী 0 ধারণ করা উচিত নয়, একটি হেক্সাডেসিমেল এনকোডিং
0x
দিয়ে শুরু হওয়া আবশ্যক, এবং অক্টাল এনকোডিংয়ে অবশ্যই একটি অগ্রণী0
থাকতে হবে৷
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
রিটার্ন মান |
|
MachesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
যদি প্রোফাইল আইডিতে পাস করা স্কিমাতে সংরক্ষিত তার সাথে মেলে তাহলে সত্য দেখায়।
বিস্তারিত | |||
---|---|---|---|
রিটার্ন মান |
|
ডেটা পুনরুদ্ধার করুন
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
একটি পাথ হ্যান্ডেল এবং সংশ্লিষ্ট ডেটা উপাদানে লেখকের অবস্থান দেওয়া, উত্স থেকে পাতার ডেটা পুনরুদ্ধার করুন এবং স্কিমা অনুগত পদ্ধতিতে লেখক দ্বারা নির্দেশিত বাফারে এটি লিখুন৷
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|
আপডেটেবল ডিকশনারি ডেটা পুনরুদ্ধার করুন
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
স্টোর ডেটা
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
একটি পাথ হ্যান্ডেল এবং একটি পাঠক সংশ্লিষ্ট ডেটা উপাদানের উপর অবস্থান করে, পাঠকের দ্বারা নির্দেশিত ডেটা বাফারটি প্রক্রিয়া করুন এবং যখনই একটি পাতার ডেটা আইটেম সম্মুখীন হয় তখন SetLeafData কল আহ্বান করে এটিকে সিঙ্কে সংরক্ষণ করুন৷
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|