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 

দুটি প্রপার্টি হ্যান্ডেল দেওয়া হয়েছে, এই দুটি হ্যান্ডেলের অভিভাবক হিসাবে কাজ করে এমন সর্বনিম্ন হ্যান্ডেলটি গণনা করুন।

অতিরিক্তভাবে, দুটি চাইল্ড শাখা ফেরত দিন যাতে দুটি হ্যান্ডেলের প্রতিটি রয়েছে (যদিও তারা একই হয়)।

বিস্তারিত
রিটার্ন মান
PropertyPathHandle
সর্বনিম্ন পিতামাতার কাছে হ্যান্ডেল করুন।

GetChildHandle

PropertyPathHandle GetChildHandle(
  PropertyPathHandle aParentHandle,
  uint8_t aContextTag
) const 

GetDepth

int32_t GetDepth(
  PropertyPathHandle aHandle
) const 

একটি প্রদত্ত হ্যান্ডেলের জন্য স্কিমা ট্রিতে গভীরতা গণনা করুন।

বিস্তারিত
রিটার্ন মান
int32_t
গাছের গভীরতা

GetDictionaryItemHandle

PropertyPathHandle GetDictionaryItemHandle(
  PropertyPathHandle aParentHandle,
  uint16_t aDictionaryKey
) const 

GetFirstChild

PropertyPathHandle GetFirstChild(
  PropertyPathHandle aParentHandle
) const 

একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত প্রথম চাইল্ড হ্যান্ডেল প্রদান করে।

বিস্তারিত
রিটার্ন মান
PropertyPathHandle
প্রথম সন্তানের হাতল।

GetHighestForwardVersion

SchemaVersion GetHighestForwardVersion(
  SchemaVersion aVersion
) const 

একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বোচ্চ ফরওয়ার্ড সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে।

GetLowest Compatible Version

SchemaVersion GetLowestCompatibleVersion(
  SchemaVersion aVersion
) const 

একটি প্রদত্ত ডেটা স্কিমা সংস্করণ দেওয়া হলে, এটি সর্বনিম্ন সামঞ্জস্যপূর্ণ স্কিমা সংস্করণটি ফিরিয়ে দেবে।

GetMap

const PropertyInfo * GetMap(
  PropertyPathHandle aHandle
) const 

একটি নির্দিষ্ট পাথ হ্যান্ডেল বর্ণনা করে PropertyInfo কাঠামোতে একটি পয়েন্টার ফেরত দেয়।

বিস্তারিত
রিটার্ন মান
PropertyInfo*

GetMaxVersion

SchemaVersion GetMaxVersion() const 

GetMinVersion

SchemaVersion GetMinVersion() const 

GetNextChild

PropertyPathHandle GetNextChild(
  PropertyPathHandle aParentId,
  PropertyPathHandle aChildHandle
) const 

একটি বিদ্যমান শিশুকে একটি হ্যান্ডেল দেওয়া হলে, একটি নির্দিষ্ট পিতামাতার সাথে যুক্ত পরবর্তী সন্তানের হ্যান্ডেলটি ফেরত দেয়।

বিস্তারিত
রিটার্ন মান
PropertyPathHandle
পরের সন্তানের হ্যান্ডেল।

GetParent

PropertyPathHandle GetParent(
  PropertyPathHandle aHandle
) const 

একটি প্রদত্ত চাইল্ড পাথ হ্যান্ডেলের প্যারেন্ট হ্যান্ডেল ফেরত দেয়।

হ্যান্ডেলের অভিধান কীগুলি সেই ক্ষেত্রে সংরক্ষিত থাকে যেখানে প্যারেন্ট হ্যান্ডেলটিও একটি অভিধান উপাদান।

বিস্তারিত
রিটার্ন মান
PropertyPathHandle
পিতামাতার হ্যান্ডেল।

GetProfileId

uint32_t GetProfileId(
  void
) const 

সংশ্লিষ্ট বৈশিষ্ট্যের প্রোফাইল আইডি প্রদান করে।

বিস্তারিত
রিটার্ন মান
Trait
প্রোফাইল আইডি

GetRelativePathTags

WEAVE_ERROR GetRelativePathTags(
  const PropertyPathHandle aCandidateHandle,
  uint64_t *aTags,
  const uint32_t aTagsSize,
  uint32_t & aNumTags
) const 

একটি PropertyPathHandle কে কনটেক্সট ট্যাগের একটি অ্যারেতে রূপান্তর করে৷

বিস্তারিত
পরামিতি
[in] aCandidateHandle
PropertyPathHandle রূপান্তর করতে হবে।
[in] aTags
আউটপুট অ্যারে পয়েন্টার.
[in] aTagsSize
aTags অ্যারের আকার, উপাদান সংখ্যা.
[out] aNumTags
aTags-এ লেখা ট্যাগের সংখ্যা
রিটার্নস
সাফল্যের ক্ষেত্রে WEAVE_NO_ERROR; WEAVE_ERROR_NO_MEMORY যদি aTags সম্পূর্ণ পাথ সংরক্ষণ করার জন্য খুব ছোট হয়।

GetTag

uint64_t GetTag(
  PropertyPathHandle aHandle
) const 

একটি পাথ হ্যান্ডেলের সাথে যুক্ত ট্যাগ প্রদান করে।

এটি একটি অভিধান উপাদান হলে, এই ফাংশন ProfileTag প্রদান করে। অন্যথায়, এটি প্রসঙ্গ ট্যাগ প্রদান করে।

বিস্তারিত
রিটার্ন মান
uint64_t

GetVersionIntersection

bool GetVersionIntersection(
  SchemaVersionRange & aVersion,
  SchemaVersionRange & aIntersection
) const 

একটি সংস্করণ পরিসর দেওয়া হয়েছে, এই ফাংশনটি এই স্কিমা ইঞ্জিনকে সমর্থন করছে এমন স্কিমা দ্বারা সমর্থিত এবং এর মধ্যে একটি সামঞ্জস্যপূর্ণ ছেদ আছে কিনা তা পরীক্ষা করে।

যদি একটি ছেদ থাকে, ফাংশনটি সত্যে ফিরে আসবে এবং সেই ইন্টারসেকশন পরীক্ষার ফলাফলগুলি প্রতিফলিত করতে পাস করা একটি ইন্টারসেকশন আর্গুমেন্ট আপডেট করবে।

অভিধান

bool IsDictionary(
  PropertyPathHandle aHandle
) const 

হ্যান্ডেলটি একটি অভিধান হলে সত্য ফেরত দেয় (এবং অভিধানে নয় - নীচের পদ্ধতিটি দেখুন)।

বিস্তারিত
রিটার্ন মান
bool

ইফেমেরাল

bool IsEphemeral(
  PropertyPathHandle aHandle
) const 

IsInDictionary

bool IsInDictionary(
  PropertyPathHandle aHandle,
  PropertyPathHandle & aDictionaryItemHandle
) const 

হ্যান্ডেলটি অভিধানের (একটি অভিধান উপাদান) ভিতরে থাকলে সত্য প্রদান করে।

হ্যান্ডেলে পাস করা ব্যবহারকারীকে (aDictionaryItemHandle) অভিধানের মধ্যে শীর্ষ-সর্বাধিক অভিধান উপাদান হ্যান্ডেল নির্দেশ করতে আপডেট করা হয়।

বিস্তারিত
রিটার্ন মান
bool

আইসলিফ

bool IsLeaf(
  PropertyPathHandle aPropertyHandle
) const 

যদি হ্যান্ডেলটি স্কিমা ট্রিতে একটি লিফ নোডকে নির্দেশ করে তবে সত্য দেখায়।

বিস্তারিত
রিটার্ন মান
bool

বাতিলযোগ্য

bool IsNullable(
  PropertyPathHandle aHandle
) const 

ঐচ্ছিক

bool IsOptional(
  PropertyPathHandle aHandle
) const 

ইস প্যারেন্ট

bool IsParent(
  PropertyPathHandle aChildHandle,
  PropertyPathHandle aParentHandle
) const 

একটি প্রদত্ত হ্যান্ডেল অন্য হ্যান্ডেলের শিশু কিনা তা পরীক্ষা করে।

এটি একটি অপ্রত্যক্ষ অভিভাবক হতে পারে।

বিস্তারিত
রিটার্ন মান
bool

MapHandleToPath

WEAVE_ERROR MapHandleToPath(
  PropertyPathHandle aHandle,
  nl::Weave::TLV::TLVWriter & aPathWriter
) const 

পাথ হ্যান্ডেলটিকে একটি TLV পাথে রূপান্তর করুন।

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
other
একটি TLV পাথে হ্যান্ডেল রূপান্তর করতে অক্ষম ছিল

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  nl::Weave::TLV::TLVReader & aPathReader,
  PropertyPathHandle & aHandle
) const 

একটি WDM পাথ উপাদানের মূলে অবস্থিত একটি পাঠককে দেওয়া, প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন৷

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
WEAVE_ERROR_TLV_TAG_NOT_FOUND
যদি একটি বিকৃত/ভুলভাবে নির্দিষ্ট পথের কারণে একটি ম্যাচিং হ্যান্ডেল খুঁজে না পাওয়া যায়।

MapPathToHandle

WEAVE_ERROR MapPathToHandle(
  const char *aPathString,
  PropertyPathHandle & aHandle
) const 

একটি WDM পাথের একটি স্ট্রিং প্রতিনিধিত্ব দেওয়া প্রাসঙ্গিক ট্যাগগুলি পড়ুন এবং সমতুল্য পাথ হ্যান্ডেল প্রদান করুন।

WDM পাথ নিম্নলিখিত নিয়মগুলি ব্যবহার করে একটি স্ট্রিং হিসাবে উপস্থাপিত হয়:

  • ট্যাগগুলি / দিয়ে আলাদা করা হয়
  • পথটি একটি অগ্রণী দিয়ে শুরু হতে হবে এবং একটি ট্রেলিং স্ল্যাশ থাকা উচিত নয় /
  • WDM পাথের সংখ্যাসূচক ট্যাগগুলি অবশ্যই স্ট্যান্ডার্ড C লাইব্রেরি ব্যবহার করে পূর্ণসংখ্যা থেকে স্ট্রিং এনকোডিং ব্যবহার করে এনকোড করা উচিত, যেমন দশমিক এনকোডিং (ডিফল্ট) একটি অগ্রণী 0 ধারণ করা উচিত নয়, একটি হেক্সাডেসিমেল এনকোডিং 0x দিয়ে শুরু হওয়া আবশ্যক, এবং অক্টাল এনকোডিংয়ে অবশ্যই একটি অগ্রণী 0 থাকতে হবে৷

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
WEAVE_ERROR_TLV_TAG_NOT_FOUND
যদি একটি ম্যাচিং হ্যান্ডেল পাওয়া যায়নি.
WEAVE_ERROR_INVALID_ARGUMENT
যদি একটি পাথ স্ট্রিং বিকৃত হয়

MachesProfileId

bool MatchesProfileId(
  uint32_t aProfileId
) const 

যদি প্রোফাইল আইডিতে পাস করা স্কিমাতে সংরক্ষিত তার সাথে মেলে তাহলে সত্য দেখায়।

বিস্তারিত
রিটার্ন মান
bool

ডেটা পুনরুদ্ধার করুন

WEAVE_ERROR RetrieveData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  IGetDataDelegate *aDelegate,
  IDirtyPathCut *apDirtyPathCut
) const 

একটি পাথ হ্যান্ডেল এবং সংশ্লিষ্ট ডেটা উপাদানে লেখকের অবস্থান দেওয়া, উত্স থেকে পাতার ডেটা পুনরুদ্ধার করুন এবং স্কিমা অনুগত পদ্ধতিতে লেখক দ্বারা নির্দেশিত বাফারে এটি লিখুন৷

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
other
তথ্য লিখতে ত্রুটির সম্মুখীন হয়েছে.

আপডেটেবল ডিকশনারি ডেটা পুনরুদ্ধার করুন

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 কল আহ্বান করে এটিকে সিঙ্কে সংরক্ষণ করুন৷

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
other
ডেটা পার্সিং/প্রসেস করার সময় সমস্যা হয়েছে।