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

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

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

סיכום

שימו לב שלשתי הבקשות יש אותו פורמט. הן נבדלות רק לפי סוג ההודעה, שלא נכלל במסגרת האובייקט הזה.

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

בונים והורסים

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 של המטען הייעודי (payload).
WEAVE_ERROR_BUFFER_TOO_SMALL
הרכיב DataElement הראשון לא נכנס למטען הייעודי (payload).
WEAVE_ERROR_INVALID_ARGUMENT
aContext הופעל עם ערכים לא חוקיים.
other
שגיאות אחרות מאובייקטים ברמה נמוכה יותר (TLVWriter, Schema Engine וכו').

InsertInProgressUpdateItem

WEAVE_ERROR InsertInProgressUpdateItem(
  const TraitPath & aItem
)

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

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

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

UpdateEncoder

 UpdateEncoder()

~UpdateEncoder

 ~UpdateEncoder()