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
تعرِض القيمة "صحيح" إذا كان الاسم المعرِّف يشير إلى عقدة ورقة في شجرة المخطّط.
|
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
تعرض العلامة المرتبطة بمؤشر مسار.
إذا كان عنصرًا في القاموس، ستعرض هذه الدالة علامة الملف الشخصي. بخلاف ذلك، يتم عرض علامات السياق.
التفاصيل | |||
---|---|---|---|
عرض القيم |
|
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
تعرِض هذه الدالة القيمة true إذا كان الاسم المعرِّف داخل قاموس (عنصر قاموس).
يتم تعديل الاسم المعرِّف الذي تم تمريره للمستخدم (aDictionaryItemHandle) للإشارة إلى الاسم المعرِّف لأعلى عنصر في القاموس ضمن القاموس.
التفاصيل | |||
---|---|---|---|
قيم الإرجاع |
|
IsLeaf
bool IsLeaf( PropertyPathHandle aPropertyHandle ) const
تعرِض القيمة "صحيح" إذا كان الاسم المعرِّف يشير إلى عقدة ورقة في شجرة المخطّط.
التفاصيل | |||
---|---|---|---|
عرض القيم |
|
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 كلما تم اكتشاف عنصر بيانات ورقة.
التفاصيل | |||||
---|---|---|---|---|---|
عرض القيم |
|