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::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate
nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::ISetDataDelegate

بُنى

nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::PropertyInfo
nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::Schema

يشير ذلك المصطلح إلى بنية المخطّط الرئيسية التي تتضمّن معلومات المخطط.

السمات الثابتة العامة

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 

وفقًا لإصدار مخطط البيانات المقدَّم، سيؤدي ذلك إلى عرض أعلى إصدار متوافق للمخطط المتوافق مع إعادة التوجيه.

GetLowestCompatibleVersion

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
عدد العلامات المكتوبة في علامة aTag
المرتجعات
WEAVE_NO_ERROR في حالة النجاح؛ WEAVE_ERROR_NO_MEMORY إذا كانت علامات aTag صغيرة جدًا لتخزين المسار بالكامل.

GetTag

uint64_t GetTag(
  PropertyPathHandle aHandle
) const 

تعرض العلامة المرتبطة بمؤشر مسار.

إذا كان عنصرًا في القاموس، ستعرض هذه الدالة ProfileTag. وإلّا، فسيعرض علامات السياق.

التفاصيل
قيم الإرجاع
uint64_t

GetVersionIntersection

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

استنادًا إلى نطاق الإصدار، تتحقّق هذه الدالة من أنّ هناك تقاطع توافق بين ذلك النطاق والمحتوى المتوافق مع المخطّط الذي يستند إلى محرّك المخطّط هذا.

إذا كان هناك تقاطع، فستعرض الدالة القيمة "true" وتحدث وسيطة aIntersection التي تم تمريرها لتعكس نتائج اختبار التقاطع هذا.

IsDictionary

bool IsDictionary(
  PropertyPathHandle aHandle
) const 

لعرض true إذا كان الاسم المعرِّف قاموسًا (وليس في قاموس - انظر الطريقة أدناه).

التفاصيل
قيم الإرجاع
bool

IsEphemeral

bool IsEphemeral(
  PropertyPathHandle aHandle
) const 

IsInDictionary

bool IsInDictionary(
  PropertyPathHandle aHandle,
  PropertyPathHandle & aDictionaryItemHandle
) const 

تعرض القيمة "صحيح" إذا كان الاسم المعرِّف داخل قاموسًا (عنصر قاموس).

يتم تحديث المستخدم الذي تم تمريره إلى الاسم المعرِّف (aDictionaryItemHandle) للإشارة إلى أعلى مؤشر لعنصر القاموس في القاموس.

التفاصيل
قيم الإرجاع
bool

IsLeaf

bool IsLeaf(
  PropertyPathHandle aPropertyHandle
) const 

تعرض القيمة true إذا كان الاسم المعرِّف يشير إلى عقدة ورقة شجر في شجرة المخطط.

التفاصيل
قيم الإرجاع
bool

IsNullable

bool IsNullable(
  PropertyPathHandle aHandle
) const 

IsOptional

bool IsOptional(
  PropertyPathHandle aHandle
) const 

IsParent

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
في حال كتابة سلسلة مسار بشكل غير صحيح

MatchesProfileId

bool MatchesProfileId(
  uint32_t aProfileId
) const 

تعرض القيمة "صحيح" إذا كانت قيمة معرّف الملف الشخصي التي تم تمريرها تتطابق مع القيمة المخزَّنة في المخطط.

التفاصيل
قيم الإرجاع
bool

RetrieveData

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

استنادًا إلى مؤشر المسار ووضع كاتب في عنصر البيانات المقابل، يمكنك استرداد بيانات الورقة من المصدر واكتبها في المخزن المؤقت الذي أشار إليه الكاتب بطريقة متوافقة مع المخطط.

التفاصيل
قيم الإرجاع
WEAVE_NO_ERROR
عند النجاح.
other
حدثت أخطاء أثناء كتابة البيانات.

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 كلما تم اكتشاف عنصر بيانات ورقة.

التفاصيل
قيم الإرجاع
WEAVE_NO_ERROR
عند النجاح.
other
حدثت أخطاء أثناء تحليل/معالجة البيانات.