nl::Weave::Profiles::ReferencedTLVData

#include <src/lib/profiles/common/WeaveMessage.h>

באופן דומה, אנחנו צריכים להיות מסוגלים לייצג blob גדול וישן של נתוני TLV.

סיכום

ירושה

Inherits from: nl::Weave::Profiles::RetainedPacketBuffer

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

ReferencedTLVData(void)
-------------- הגדרות של נתוני TLV --------------

סוגים ציבוריים

TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState) typedef
void(*

מאפיינים ציבוריים

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

תפקידים ציבוריים

free(void)
void
שולחים אובייקט ReferencedTLVData, כלומר לבטל את ההגדרה שלו.
init(System::PacketBuffer *aBuffer)
מאתחלים את האובייקט ReferencedTLVData בהינתן לו PacketBuffer.
init(MessageIterator & i)
מפעילים אובייקט ReferencedTLVData בהינתן לו MessageIterator.
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
מאתחלים אובייקט ReferencedTLVObject בהינתן מחרוזת בייט.
init(TLVWriteCallback aWriteCallback, void *anAppState)
מפעילים אובייקט ReferenceerencedTLVData בהינתן פונקציית קריאה חוזרת.
isEmpty(void)
bool
בודקים אם יש באובייקט ReferencedTLVData משהו.
isFree(void)
bool
בודקים אם האובייקט ReferencedTLVData מופיע כ-"free", כלומר.
operator==(const ReferencedTLVData &) const
bool
מסמנים אובייקט ReferencedTLVData לעומת אובייקט אחר כדי לקבוע אם הוא זהה.
pack(System::PacketBuffer *buff)
אריזת אובייקט ReferencedTLVData ישירות ב-PacketBuffer.
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
מחזירה את אורך הנתונים בהנחה שהאובייקט נארז למאגר נתונים זמני.

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

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
מנתחים אובייקט ReferencedTLVData מ-PacketBuffer שסופק.
parse(MessageIterator & i, ReferencedTLVData & aTarget)
מנתחים אובייקט ReferencedTLVData מ-MessageIterator שסופק.

סוגים ציבוריים

TLVWriteCallback

void(* TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)

מאפיינים ציבוריים

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

תפקידים ציבוריים

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- הגדרות של נתוני TLV --------------

הבנאי ללא ארגומנט של נתוני TLV. הוא מספק אובייקט חופשי/לא מאותחל, שחייב להיות כפוף לאחת משיטות ה-init() שמוגדרות כאן כדי להפיק תועלת.

בחינם

void free(
  void
)

שולחים אובייקט ReferencedTLVData, כלומר לבטל את ההגדרה שלו.

init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

מאתחלים את האובייקט ReferencedTLVData בהינתן לו PacketBuffer.

מפעילים אובייקט ReferencedTLVData בהינתן מאגר נתונים זמני שמלא ב-TLV. ההנחה היא שמאגר הנתונים הזמני מכיל רק TLV.

פרטים
פרמטרים
[in] aBuffer
מאגר הודעות זמני שבו נמצא ה-TLV.
ערכים מוחזרים
WEAVE_NO_ERROR
ללא תנאי

init

WEAVE_ERROR init(
  MessageIterator & i
)

מפעילים אובייקט ReferencedTLVData בהינתן לו MessageIterator.

מפעילים אובייקט ReferencedTLVData בהינתן לו MessageIterator. במקרה הזה, ה-TLV הוא החלק האחרון של המאגר, ואנחנו מעבירים איטרטור הודעה שמפנה אליו.

פרטים
פרמטרים
[in] i
איטרטור הודעה שמצביע על TLV לחילוץ.
ערכים מוחזרים
WEAVE_NO_ERROR
ללא תנאי

init

WEAVE_ERROR init(
  uint16_t aLength,
  uint16_t aMaxLength,
  uint8_t *aByteString
)

מאתחלים אובייקט ReferencedTLVObject בהינתן מחרוזת בייט.

מפעילים את האובייקט ReferencedTLVData עם מחרוזת בייט שמכילה TLV. אנחנו משתמשים במאתחל הזה אם אין PacketrBuffer כי אנחנו יוצרים אחד מהמאתחל, שאותו אנחנו יוצרים לאריזה ולשליחה.

פרטים
פרמטרים
[in] aLength
אורך לנתוני TLV
[in] aMaxLength
האורך הכולל של המאגר
[in] aByteString
הפניה לנתוני המחרוזת
ערכים מוחזרים
WEAVE_NO_ERROR
ללא תנאי

init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

מפעילים אובייקט ReferenceerencedTLVData בהינתן פונקציית קריאה חוזרת.

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

typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);

פרטים
פרמטרים
[in] aWriteCallback
הפונקציה שאליו תתבצע קריאה כשיגיע הזמן לכתוב כמה פקודות TLV.
[in] anAppState
אובייקט של מצב האפליקציה שיועבר לקריאה החוזרת יחד עם הכותב.
ערכים מוחזרים
WEAVE_NO_ERROR
בהצלחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם לא סופק קריאה חוזרת (callback) לכתיבה.

isEmpty

bool isEmpty(
  void
)

בודקים אם יש באובייקט ReferencedTLVData משהו.

יש שתי דרכים אפשריות לכך שעצם כזה יכול "להיות" בו. הוא יכול להיות באורך 0 או שאין לו קריאה חוזרת (callback).

פרטים
החזרות
True אם אורכה של מערך הנתונים הוא 0 או אם אין קריאה חוזרת (callback) לכתיבה, אחרת, false.

isFree

bool isFree(
  void
)

בודקים אם האובייקט ReferencedTLVData מופיע כ-"free", כלומר.

לא מוגדר.

פרטים
החזרות
TRUE אם האובייקט לא מוגדר, False אם לא.

אופרטור==

bool operator==(
  const ReferencedTLVData &
) const 

מסמנים אובייקט ReferencedTLVData לעומת אובייקט אחר כדי לקבוע אם הוא זהה.

שימו לב שזה הגיוני רק במקרה של שני אובייקטים שיש בהם נתונים ממשיים שמגובים על ידי מאגר נתונים זמני או מחרוזת.

פרטים
פרמטרים
[in] Another
אובייקט שצריך לבדוק מולו
ערכים מוחזרים
true
האובייקטים שווים.
false
מחרוזות האובייקטים אינן שוות.

חבילה

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

אריזת אובייקט ReferencedTLVData ישירות ב-PacketBuffer.

פרטים
פרמטרים
[in] buff
את המאגר שצריך למלא.
החזרות
WEAVE_ERROR המשקפת את הצלחת שיחת החבילה הבסיסית.

חבילה

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

מחזירה את אורך הנתונים בהנחה שהאובייקט נארז למאגר נתונים זמני.

פרטים
החזרות
אורך המספר השלם של הנתונים הדחוסים.

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

parse

WEAVE_ERROR parse(
  System::PacketBuffer *buff,
  ReferencedTLVData & aTarget
)

מנתחים אובייקט ReferencedTLVData מ-PacketBuffer שסופק.

מנתחים אובייקט ReferencedTLVData מתוך מאגר נתונים זמני inet (בהנחה שהוא מכיל רק TLV).

פרטים
פרמטרים
[in] buff
את המאגר שממנו רוצים לקרוא.
[out] aTarget
אובייקט ReferencedTLVData שימלא את התוצאה.
החזרות
WEAVE_ERROR המשקפת את ההצלחה של קריאת הניתוח הבסיסית.

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

מנתחים אובייקט ReferencedTLVData מ-MessageIterator שסופק.

מנתחים אובייקט ReferenceTLVData מאובייקט MessageIterator, בהנחה שהוא מפנה לחלק TLV של ההודעה.

שימו לב שלא מתבצע כאן "ניתוח" בפועל כי ה-TLV נשאר במאגר ולא משתנה בכלל. השיטה הזו רק מגדירה את המבנה ReferencedTLVData לשימוש מאוחר יותר.

פרטים
פרמטרים
[in] i
הוספת איטרטור להודעה שמנותחים.
[out] aTarget
מקום שבו ניתן להוסיף את תוצאת הניתוח.
ערכים מוחזרים
WEAVE_NO_ERROR
ללא תנאי