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

סיכום

ירושה

Inherits from:
  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 יטפל בערכי כתיבה לכותב (כגון פתיחת קונטיינרים, ביטול ה-struct וכו'). אם צומת ללא עלים ריק או לא קיים, TDM לא יקרא ל-GetData עבור הצאצאים שלו.

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

פרטים
פרמטרים
[in] aHandle
ה-PropertyPathHandle המדובר.
[in] aTagToWrite
התג שצריך לכתוב עבור aHandle.
[in,out] aWriter
הכותב שאליו צריך לכתוב רכיבי TLV.
[out] aIsNull
האם AHandle בוטל? אם כן, TDM יכתוב רכיב null. אם aHandle אינו עלה, TDM ידלג על הצאצאים שלו.
[out] aIsPresent
האם יש AHandle? אם לא, ואם 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 לא יבטל את הכינוי והצאצאים שלו עד שבקשת העדכון תעובד. האפליקציה תקבל kEvent_OnUpdatecomplete קריאות חוזרות (callback) לכינוי הזה או לאחד מאבותיו עם התוצאה של פעולת העדכון. השינוי יכול להיות מותנה או לא. עדכוני נתונים מותנים יאבדו אם העותק המקומי של מופע ה-trait לא מסונכרן יותר עם זה של בעל התוכן הדיגיטלי, כי הוא השתנה על ידי בעל התוכן הדיגיטלי או על ידי לקוח אחר. אין תמיכה במוטציות מותנות ובלתי מותנות בו-זמנית באותו מופע תכונה.

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

TraitUpdatableDataSink

 TraitUpdatableDataSink(
  const TraitSchemaEngine *aEngine
)

ביטול הנעילה

void Unlock(
  SubscriptionClient *apSubClient
)