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:: |
|
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
אם קורא נמצא ברמה הבסיסית (root) של רכיב נתיב 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 אם הערך שמועבר ב-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 בכל פעם שיש פריט נתונים מסוג עלה.
פרטים | |||||
---|---|---|---|---|---|
מוחזר ערכים |
|