nl:: بافت:: پروفایل ها:: DataManagement_Current:: TraitSchemaEngine
#include <src/lib/profiles/data-management/Current/TraitData.h>
موتور طرحواره اطلاعات طرحواره مرتبط با یک ویژگی خاص را می گیرد و امکاناتی را برای تجزیه و ترجمه آن به شکلی قابل استفاده توسط ماشین های WDM فراهم می کند.
خلاصه
این شامل تبدیل از PathHandles به مسیرهای WDM (و بالعکس)، روشهایی برای تفسیر/پرسوجو از خود طرح و روشهایی برای کمک به خواندن/نوشتن دادهها به/از TLV است.
خود طرحواره به شکل جدولی ذخیره می شود و به اندازه کافی توصیف شده است تا امکان تجزیه/ترکیب عمومی مسیرها/داده های WDM را برای هر صفت داده شده فراهم کند. این جداول همان خروجی نهایی 'code-gen' هستند (این اصطلاح با توجه به عدم وجود کد تولید شده تا حدودی گمراه کننده است :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 اگر دسته یک فرهنگ لغت باشد (و نه در فرهنگ لغت - به روش زیر مراجعه کنید) true برمیگرداند. |
IsEphemeral ( PropertyPathHandle aHandle) const | bool |
IsInDictionary ( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const | bool اگر دستگیره داخل دیکشنری (عنصر فرهنگ لغت) باشد، true را برمیگرداند. |
IsLeaf ( PropertyPathHandle aPropertyHandle) const | bool اگر دسته به یک گره برگ در درخت طرحواره اشاره داشته باشد، true برمیگرداند. |
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 اگر مقدار ارسال شده در profileId با آنچه در طرح ذخیره شده است مطابقت داشته باشد، مقدار true را برمی گرداند. |
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:: بافت:: پروفایل ها:: DataManagement_Current:: TraitSchemaEngine:: IGetDataDelegate | |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: TraitSchemaEngine:: ISetDataDelegate |
سازه ها | |
---|---|
nl:: بافت:: پروفایل ها:: DataManagement_Current:: TraitSchemaEngine:: PropertyInfo | |
nl:: بافت:: پروفایل ها:: DataManagement_Current:: TraitSchemaEngine:: طرحواره | ساختار طرحواره اصلی که اطلاعات طرحواره را در خود جای داده است. |
صفات استاتیک عمومی
kHandleTableOffset
const uint32_t kHandleTableOffset = 2
صفات عمومی
mSchema
const Schema mSchema
توابع عمومی
FindLowestCommon Ancestor
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
با توجه به یک نسخه طرح داده ارائه شده، بالاترین نسخه طرحواره سازگار با جلو را برمی گرداند.
GetLowestCompatibleVersion
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 را برمی گرداند. در غیر این صورت، تگ های زمینه را برمی گرداند.
جزئیات | |||
---|---|---|---|
ارزش های بازگشتی |
|
GetVersion Intersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
با توجه به یک محدوده نسخه، این تابع بررسی می کند که آیا یک تقاطع سازگاری بین آن و آنچه توسط طرحی که پشتیبان این موتور طرحواره است، وجود دارد یا خیر.
اگر یک تقاطع وجود داشته باشد، تابع true را برمیگرداند و آرگومان aIntersection ارسال شده را بهروزرسانی میکند تا نتایج آن تست تقاطع را منعکس کند.
دیکشنری است
bool IsDictionary( PropertyPathHandle aHandle ) const
اگر دسته یک فرهنگ لغت باشد (و نه در فرهنگ لغت - روش زیر را ببینید) true برمیگرداند.
جزئیات | |||
---|---|---|---|
ارزش های بازگشتی |
|
زودگذر است
bool IsEphemeral( PropertyPathHandle aHandle ) const
دیکشنری است
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
اگر دستگیره داخل دیکشنری (عنصر فرهنگ لغت) باشد، true را برمیگرداند.
یک کاربر در دسته (aDictionaryItemHandle) به روز می شود تا به بالاترین دسته عنصر فرهنگ لغت در فرهنگ لغت اشاره کند.
جزئیات | |||
---|---|---|---|
ارزش های بازگشتی |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
اگر دسته به یک گره برگ در درخت طرحواره اشاره داشته باشد، true برمیگرداند.
جزئیات | |||
---|---|---|---|
ارزش های بازگشتی |
|
قابل حذف است
bool IsNullable( PropertyPathHandle aHandle ) const
اختیاری است
bool IsOptional( PropertyPathHandle aHandle ) const
IsParent
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
اگر مقدار ارسال شده در profileId با آنچه در طرح ذخیره شده است مطابقت داشته باشد، مقدار true را برمی گرداند.
جزئیات | |||
---|---|---|---|
ارزش های بازگشتی |
|
بازیابی داده ها
WEAVE_ERROR RetrieveData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, IDirtyPathCut *apDirtyPathCut ) const
با توجه به یک دسته مسیر و یک موقعیت نویسنده در عنصر داده مربوطه، داده های برگ را از منبع بازیابی کنید و آن را در بافری که نویسنده به آن اشاره می کند به روشی مطابق با طرحواره بنویسید.
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
RetrieveUpdatableDictionaryData
WEAVE_ERROR RetrieveUpdatableDictionaryData( PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, IGetDataDelegate *aDelegate, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom ) const
StoreData
WEAVE_ERROR StoreData( PropertyPathHandle aHandle, nl::Weave::TLV::TLVReader & aReader, ISetDataDelegate *aDelegate, IPathFilter *aPathFilter ) const
با توجه به یک دسته مسیر و یک خواننده که روی عنصر داده مربوطه قرار دارد، بافر داده را که توسط خواننده به آن اشاره شده است پردازش کنید و با فراخوانی SetLeafData هر زمان که با آیتم داده برگ مواجه شد، آن را در سینک ذخیره کنید.
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. The OPENTHREAD and related marks are trademarks of the Thread Group and are used under license.
تاریخ آخرین بهروزرسانی 2024-11-11 بهوقت ساعت هماهنگ جهانی.