nl::Weave::Profiles::DataManagement_Current::UpdateEncoder

#include <src/lib/profiles/data-management/Current/UpdateEncoder.h>

האובייקט הזה מקודד מטענים ייעודיים (payloads) מסוג UpdateRequest ו-PartialUpdateRequest מסוג WDM.

סיכום

שימו לב שלשתי הבקשות יש פורמט זהה. ההבדל ביניהם רק לפי סוג ההודעה, שנמצא מחוץ להיקף של האובייקט הזה.

הקידוד מתבצע באופן סינכרוני באמצעות ה-method EncodeRequest. השיטה הציבורית היחידה הנוספת היא InsertInProgressUpdateItem, ונקראים על ידי Schema Engine כשהוא צריך להעביר מילון בחזרה לתור.

בנייה

UpdateEncoder()
~UpdateEncoder()

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

EncodeRequest(Context & aContext)
מקודדים מטען ייעודי (payload) של בקשת עדכון WDM.
InsertInProgressUpdateItem(const TraitPath & aItem)
מוסיפים נתיב פרטי לרשימת הנתיבים שמתבצעים, ומוסיפים אותו אחרי הנתיבים שמקודדים באותו רגע.

מבנים

nl::Weave::Profiles::DataManagement_Current::UpdateEncoder::Context

המבנה הזה מכיל את ארגומנטים מסוג קלט/פלט (I/O) של שיטת EncodeRequest.

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

EncodeRequest

WEAVE_ERROR EncodeRequest(
  Context & aContext
)

מקודדים מטען ייעודי (payload) של בקשת עדכון WDM.

פרטים נוספים זמינים בקטע UpdateEncoder::Context. אורך הנתונים של PacketBuffer מתעדכן רק במקרה של הצלחה, אבל התוכן של מאגר הנתונים הזמני לא נשמר.

פרטים
מוחזר ערכים
WEAVE_NO_ERROR
לפחות DataElement אחד קודד ב-DataList של המטען הייעודי (payList).
WEAVE_ERROR_BUFFER_TOO_SMALL
ה-DataElement הראשון לא נכנס למטען הייעודי (Payload).
WEAVE_ERROR_INVALID_ARGUMENT
aContext אותחל עם ערכים לא חוקיים.
other
שגיאות אחרות מאובייקטים ברמה נמוכה יותר (TLVWriter, SchemaEngine וכו').

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

מוסיפים נתיב פרטי לרשימת הנתיבים שמתבצעים, ומוסיפים אותו אחרי הנתיבים שמקודדים באותו רגע.

לשיטה הזו אמורה להתבצע קריאה על ידי SchemaEngine מפני שהיא חוצה את עץ הסכימה וצריך לדחוף מילונים חזרה לרשימה.

פרטים
פרמטרים
[in] aItem
ה-TraitPath שיש להוסיף לרשימה המקודדת.
מוחזר ערכים
WEAVE_NO_ERROR
הפריט נוסף בהצלחה.
WEAVE_NO_MEMORY
לא היה רווח ב-TraitPathStore להוספת הפריט.

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()