nl::Weave::Profiles::DataManagement_Current::TraitUpdatableDataSink

סיכום

ירושה

עובר בירושה מ:
  nl::Weave::Profiles::DataManagement_Current::TraitDataSink
  nl::Weave::Profiles::DataManagement_Current::TraitSchemaEngine::IGetDataDelegate

בנייה

TraitUpdatableDataSink(const TraitSchemaEngine *aEngine)

פונקציות ציבוריות

ClearUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle)
GetData(PropertyPathHandle aHandle, uint64_t aTagToWrite, nl::Weave::TLV::TLVWriter & aWriter, bool & aIsNull, bool & aIsPresent) __OVERRIDE
virtual WEAVE_ERROR
מקבלים את הנתונים מהמקור של התכונה שיצור התראה, אם מזינים את כינוי הנתיב לצומת, את כותב TLV ואת הערך הבוליאני שמציין אם הערך הוא null או לא קיים.
GetSubscriptionClient() __OVERRIDE
virtual SubscriptionClient *
GetUpdateEncoder() __OVERRIDE
virtual UpdateEncoder *
IsUpdatableDataSink(void) __OVERRIDE
virtual bool
Lock(SubscriptionClient *apSubClient)
void
ReadData(TraitDataHandle aTraitDataHandle, PropertyPathHandle aHandle, uint64_t aTagToWrite, TLV::TLVWriter & aWriter, PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom)
SetSubscriptionClient(SubscriptionClient *apSubClient) __OVERRIDE
virtual WEAVE_ERROR
SetUpdateEncoder(UpdateEncoder *apEncoder) __OVERRIDE
virtual WEAVE_ERROR
SetUpdated(SubscriptionClient *apSubClient, PropertyPathHandle aPropertyHandle, bool aIsConditional)
הצהרה שה-propertyPathHandle הנתון כולל שינויים מקומיים.
Unlock(SubscriptionClient *apSubClient)
void

פונקציות ציבוריות

ClearUpdated

WEAVE_ERROR ClearUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle
)

GetData

virtual WEAVE_ERROR GetData(
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  nl::Weave::TLV::TLVWriter & aWriter,
  bool & aIsNull,
  bool & aIsPresent
) __OVERRIDE

מקבלים את הנתונים מהמקור של התכונה שיצור התראה, אם מזינים את כינוי הנתיב לצומת, את כותב TLV ואת הערך הבוליאני שמציין אם הערך הוא null או לא קיים.

אם נקודת האחיזה לנתיב אינה צומת עלה, TDM יטפל בערכי הכתיבה עבור הכותב (כגון פתיחת קונטיינרים, ביטול המבנה וכו'). אם צומת ללא עלים הוא null או לא קיים, TDM לא יקרא ל-GetData עבור הצאצאים שלו.

הפונקציה הזו תופעל רק עבור כינויי null, אופציונליים, ארעיים או עלים. הציפייה היא שלכל תכונה עם כינויים שמופעלות בהן האפשרויות האלה תטמיע לוגיקה מתאימה לאכלוס aIsNull ו-aIspresent.

פרטים
פרמטרים
[in] aHandle
ה-PropertyPathHandle הרלוונטי.
[in] aTagToWrite
התג שצריך לכתוב עבור הכינוי.
[in,out] aWriter
הכותב שיכתוב בו רכיבי TLV.
[out] aIsNull
האם הכינוי בוטל? אם כן, פעולת ה-TDM תכתוב רכיב null. אם aHandle הוא לא עלה, TDM ידלג על הצאצאים שלו.
[out] aIsPresent
האם יש כינוי? אם לא ואם aHandle הוא לא עלה, TDM ידלג על הנתיב ועל הצאצאים שלו.
ערכים מוחזרים
WEAVE_NO_ERROR
הצלחה.
other
לא ניתן לאחזר נתונים ולכתוב אותם בכותב.

GetSubscriptionClient

virtual SubscriptionClient * GetSubscriptionClient() __OVERRIDE

GetUpdateEncoder

virtual UpdateEncoder * GetUpdateEncoder() __OVERRIDE

IsUpdatableDataSink

virtual bool IsUpdatableDataSink(
  void
) __OVERRIDE

נעילה

void Lock(
  SubscriptionClient *apSubClient
)

ReadData

WEAVE_ERROR ReadData(
  TraitDataHandle aTraitDataHandle,
  PropertyPathHandle aHandle,
  uint64_t aTagToWrite,
  TLV::TLVWriter & aWriter,
  PropertyPathHandle & aPropertyPathHandleOfDictItemToStartFrom
)

SetSubscriptionClient

virtual WEAVE_ERROR SetSubscriptionClient(
  SubscriptionClient *apSubClient
) __OVERRIDE

SetUpdateEncoder

virtual WEAVE_ERROR SetUpdateEncoder(
  UpdateEncoder *apEncoder
) __OVERRIDE

SetUpdated

WEAVE_ERROR SetUpdated(
  SubscriptionClient *apSubClient,
  PropertyPathHandle aPropertyHandle,
  bool aIsConditional
)

הצהרה שה-propertyPathHandle הנתון כולל שינויים מקומיים.

NotificationEngine לא יבטל את הכינוי ואת הצאצאים שלו עד שבקשת העדכון תעובד. האפליקציה תקבל קריאות חוזרות (callback) של kEvent_OnUpdateComplete עבור הכינוי הזה או עבור אחד מישויות האב שלה כתוצאה מפעולת העדכון. השינוי יכול להיות מותנה או לא. עדכונים של נתונים מותנים יאבדו אם העותק המקומי של המופע של התכונה לא מסונכרן יותר עם העותק של בעל התוכן הדיגיטלי, כי בעל התוכן הדיגיטלי עצמו או לקוח אחר שינהו אותו. אין תמיכה במוטציות מותנות ולא מותנות בו-זמנית באותו מופע מאפיין.

פרטים
פרמטרים
[in] apSubClient
מצביע אל SubscriptionClient לניהול ה-sink הזה.
[in] aPropertyHandle
כל מאפיין PropertyPathHandle חוקי עבור מופע תכונה זו.
[in] aIsConditional
True לעדכון מותנה; אחרת, False.
ערכים מוחזרים
WEAVE_NO_ERROR
אם הכינוי של הנכס נוסף בהצלחה לקבוצת הנכסים שיישלחו לבעלים של התכונה.
WEAVE_ERROR_INVALID_ARGUMENT
אם הכינוי או המצביע SubscriptionClient לא חוקיים.
WEAVE_ERROR_WDM_INCONSISTENT_CONDITIONALITY
אם המופע של המאפיין כבר מתעדכן עם התנאי ההפוך.
WEAVE_ERROR_WDM_LOCAL_DATA_INCONSISTENT
אם aIsConditional הוא True אבל למופע של ה-trait אין גרסה תקינה.
WEAVE_ERROR_WDM_PATH_STORE_FULL
אם אין זיכרון לאחסן את הנתיב.
Other
קודי WEAVE_ERROR בהתאם לכשל.

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ביטול הנעילה

void Unlock(
  SubscriptionClient *apSubClient
)