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
|
הפונקציה מחזירה את ה-handle של ההורה של ה-handle של נתיב הצאצא הנתון.
|
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, הקריאה של התגים הרלוונטיים ומתן ה-handle המקביל של הנתיב.
|
MatchesProfileId(uint32_t aProfileId) const
|
bool
הפונקציה מחזירה את הערך True אם מזהה הפרופיל שהוענק תואם למזהה ששמור בסכימה.
|
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:: |
|
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 אם aTags קטן מדי כדי לאחסן את הנתיב המלא.
|
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 אם נקודת האחיזה נמצאת בתוך מילון (רכיב במילון).
משתמש שהועבר בנקודת אחיזה (aMusicItemHandle) מתעדכן כדי להצביע על נקודת האחיזה העליונה לרכיב המילון בתוך המילון.
פרטים | |||
---|---|---|---|
ערכים שמוחזרים |
|
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
קוראים את התגים הרלוונטיים ומספקים את ה-handle המקביל של הנתיב, כשקורא ממוקם ברמה הבסיסית של רכיב נתיב WDM.
פרטים | |||||
---|---|---|---|---|---|
ערכים מוחזרים |
|
MapPathToHandle
WEAVE_ERROR MapPathToHandle( const char *aPathString, PropertyPathHandle & aHandle ) const
בהינתן ייצוג מחרוזת של נתיב WDM, קוראים את התגים הרלוונטיים ומספקים את ה-handle המקביל של הנתיב.
הנתיב של WDM מיוצג כמחרוזת לפי הכללים הבאים:
- התגים מופרדים באמצעות
/
- הנתיב חייב להתחיל ב
/
בהתחלה ואסור שהוא יכלול קו נטוי בסוף המסלול - תגים מספריים בנתיב WDM חייבים להיות מקודדים באמצעות ספריית C הסטנדרטית עבור מספרים שלמים לקידוד מחרוזות, כלומר קידוד עשרוני (ברירת מחדל) לא יכולים להכיל 0 בהתחלה, קידוד הקסדצימלי חייב להתחיל ב-
0x
, וקידוד אוקטלי חייב להכיל0
מוביל.
פרטים | |||||||
---|---|---|---|---|---|---|---|
ערכים מוחזרים |
|
MatchesProfileId
bool MatchesProfileId( uint32_t aProfileId ) const
הפונקציה מחזירה true אם הערך שהועבר ב-ProfileId תואם ששמור בסכימה.
פרטים | |||
---|---|---|---|
ערכים שמוחזרים |
|
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 בכל פעם שמוצאים פריט נתונים של עלה.
פרטים | |||||
---|---|---|---|---|---|
ערכים מוחזרים |
|