nl::Weave::Profiles::ReferencedTLVData

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

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

סיכום

ירושה

עובר בירושה מ: 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)
לאתחל אובייקט RefererencedTLVData תוך שימוש בפונקציית קריאה חוזרת.
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 --------------

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

בחינם

void free(
  void
)

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

להתחיל

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

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

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

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

להתחיל

WEAVE_ERROR init(
  MessageIterator & i
)

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

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

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

להתחיל

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
ללא תנאי

להתחיל

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

לאתחל אובייקט RefererencedTLVData תוך שימוש בפונקציית קריאה חוזרת.

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

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

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

ריק

bool isEmpty(
  void
)

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

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

פרטים
החזרות
true אם למערך הנתונים יש אורך של 0 או שאין קריאה חוזרת ליד, אחרת, צריך להזין 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
)

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

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

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

לנתח

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

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

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

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

לנתח

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

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

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

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

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