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
אם קורא נמצא ברמה הבסיסית (root) של רכיב נתיב WDM, קוראים את התגים הרלוונטיים ומספקים את נקודת האחיזה המקבילה לנתיב.
MapPathToHandle(const char *aPathString, PropertyPathHandle & aHandle) const
בהינתן ייצוג במחרוזת של נתיב WDM, קוראים את התגים הרלוונטיים ומספקים את הכינוי המקביל לנתיב.
MatchesProfileId(uint32_t aProfileId) const
bool
הפונקציה מחזירה true אם הערך שמועבר ב-ProfileId תואם ששמור בסכימה.
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
בהינתן כינוי לנתיב וקורא שממוקם על רכיב הנתונים המתאים, מעבדים את מאגר הנתונים הזמני שהקורא מפנה אליו ומאחסנים אותו ב-sink על ידי הפעלה של הקריאה 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
מספר התגים שנכתבו ל-aTags
החזרות
WEAVE_NO_ERROR במקרה של הצלחה; WEAVE_ERROR_NO_MEMORY אם aTags קטן מדי ולא מאפשר לאחסן את הנתיב המלא.

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 

הפונקציה מחזירה true אם נקודת האחיזה נמצאת בתוך מילון (רכיב במילון).

משתמש שהועבר בנקודת אחיזה (aMusicItemHandle) מתעדכן כדי להצביע על נקודת האחיזה העליונה לרכיב המילון בתוך המילון.

פרטים
מוחזר ערכים
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 

אם קורא נמצא ברמה הבסיסית (root) של רכיב נתיב 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 

הפונקציה מחזירה true אם הערך שמועבר ב-ProfileId תואם ששמור בסכימה.

פרטים
מוחזר ערכים
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 

בהינתן כינוי לנתיב וקורא שממוקם על רכיב הנתונים המתאים, מעבדים את מאגר הנתונים הזמני שהקורא מפנה אליו ומאחסנים אותו ב-sink על ידי הפעלה של הקריאה SetLeafData בכל פעם שיש פריט נתונים מסוג עלה.

פרטים
מוחזר ערכים
WEAVE_NO_ERROR
הצלחה.
other
אירעו שגיאות בניתוח/עיבוד הנתונים.