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
הפונקציה מחזירה את הערך 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
הפונקציה מחזירה את הערך True אם ה-pass ב-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 בכל פעם שיש פריט נתונים עם עלים (leafData).
|
מחלקות |
|
---|---|
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 אם נקודת האחיזה נמצאת בתוך מילון (רכיב במילון).
משתמש שהועבר בכינוי (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
הפונקציה מחזירה את הערך True אם ה-pass ב-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
כשיש מזהה נתיב וקורא שממוקמים על רכיב הנתונים המתאים, מעבדים את מאגר הנתונים שהקורא מפנה אליו ושומרים אותו ב-sink. לשם כך, צריך להפעיל את הקריאה ל-SetLeafData בכל פעם שיש פריט נתונים עם עלים (leafData).
פרטים | |||||
---|---|---|---|---|---|
ערכים מוחזרים |
|