nl:: Weave:: Profiles:: DataManagement_Current:: 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
لعرض true إذا كان الاسم المعرِّف قاموسًا (وليس في قاموس - انظر الطريقة أدناه).
|
IsEphemeral(PropertyPathHandle aHandle) const
|
bool
|
IsInDictionary(PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle) const
|
bool
تعرض القيمة "صحيح" إذا كان الاسم المعرِّف داخل قاموسًا (عنصر قاموس).
|
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
تعرض القيمة "صحيح" إذا كانت قيمة معرّف الملف الشخصي التي تم تمريرها تتطابق مع القيمة المخزَّنة في المخطط.
|
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:: |
|
nl:: |
بُنى |
|
---|---|
nl:: |
|
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
وفقًا لإصدار مخطط البيانات المقدَّم، سيؤدي ذلك إلى عرض أعلى إصدار متوافق للمخطط المتوافق مع إعادة التوجيه.
GetLowestCompatibleVersion
SchemaVersion GetLowestCompatibleVersion( SchemaVersion aVersion ) const
وفقًا لإصدار مخطط البيانات المقدَّم، سيعرض ذلك الحد الأدنى لإصدار مخطط البيانات المتوافق.
GetMap
const PropertyInfo * GetMap( PropertyPathHandle aHandle ) const
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 إذا كانت علامات aTag صغيرة جدًا لتخزين المسار بالكامل.
|
GetTag
uint64_t GetTag( PropertyPathHandle aHandle ) const
تعرض العلامة المرتبطة بمؤشر مسار.
إذا كان عنصرًا في القاموس، ستعرض هذه الدالة ProfileTag. وإلّا، فسيعرض علامات السياق.
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
GetVersionIntersection
bool GetVersionIntersection( SchemaVersionRange & aVersion, SchemaVersionRange & aIntersection ) const
استنادًا إلى نطاق الإصدار، تتحقّق هذه الدالة من أنّ هناك تقاطع توافق بين ذلك النطاق والمحتوى المتوافق مع المخطّط الذي يستند إلى محرّك المخطّط هذا.
إذا كان هناك تقاطع، فستعرض الدالة القيمة "true" وتحدث وسيطة aIntersection التي تم تمريرها لتعكس نتائج اختبار التقاطع هذا.
IsDictionary
bool IsDictionary( PropertyPathHandle aHandle ) const
لعرض true إذا كان الاسم المعرِّف قاموسًا (وليس في قاموس - انظر الطريقة أدناه).
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
IsEphemeral
bool IsEphemeral( PropertyPathHandle aHandle ) const
IsInDictionary
bool IsInDictionary( PropertyPathHandle aHandle, PropertyPathHandle & aDictionaryItemHandle ) const
تعرض القيمة "صحيح" إذا كان الاسم المعرِّف داخل قاموسًا (عنصر قاموس).
يتم تحديث المستخدم الذي تم تمريره إلى الاسم المعرِّف (aDictionaryItemHandle) للإشارة إلى أعلى مؤشر لعنصر القاموس في القاموس.
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
تعرض القيمة true إذا كان الاسم المعرِّف يشير إلى عقدة ورقة شجر في شجرة المخطط.
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
IsNullable
bool IsNullable( PropertyPathHandle aHandle ) const
IsOptional
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
بادئة.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
قيم الإرجاع |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
تعرض القيمة "صحيح" إذا كانت قيمة معرّف الملف الشخصي التي تم تمريرها تتطابق مع القيمة المخزَّنة في المخطط.
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
RetrieveData
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 كلما تم اكتشاف عنصر بيانات ورقة.
التفاصيل | |||||
---|---|---|---|---|---|
قيم الإرجاع |
|