nl:: Weave:: Profiles:: 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
تعرض القيمة "صحيح" إذا كان رقم تعريف الملف الشخصي الذي تم تمريره يتطابق مع المعرّف الذي تم تخزينه في المخطّط.
|
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
يتم عرض true إذا كان الاسم المعرِّف داخل قاموس (عنصر في القاموس).
يتم تعديل اسم مستخدم تم تمريره في القاموس (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 عند العثور على عنصر بيانات ورقة شجر.
التفاصيل | |||||
---|---|---|---|---|---|
قيم الإرجاع |
|