nl::Weave::TLV

הגדרות לעבודה עם נתונים שמקודדים בפורמט TLV של Weave.

סיכום

Weave TLV היא שיטת קידוד כללית לנתונים מובְנים פשוטים. הוא משתף מאפיינים רבים בפורמט סדרות JSON נפוץ, והוא קומפקטי הרבה יותר דרך הרשת.

ספירות

@71 טיפוסים בני מנייה (enum)
@73 טיפוסים בני מנייה (enum)
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
טיפוסים בני מנייה (enum)
@75 טיפוסים בני מנייה (enum)
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
טיפוסים בני מנייה (enum)
TLVElementType טיפוסים בני מנייה (enum)
TLVFieldSize טיפוסים בני מנייה (enum)
TLVTagControl טיפוסים בני מנייה (enum)
TLVTagFields טיפוסים בני מנייה (enum)
TLVType טיפוסים בני מנייה (enum)
ספירה שמזהה את הסוג של רכיב TLV.

משתנים

kWeaveTLVCopyChunkSize = 16
const size_t
מעתיק רכיב TLV מאובייקט של קורא אל הכותב.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

פונקציות

CommonTag(uint32_t tagNum)
uint64_t
יוצר את ייצוג ה-API של תג TLV של פרופיל משותף.
ContextTag(uint8_t tagNum)
uint64_t
יוצר את ייצוג ה-API עבור תג TLV ספציפי להקשר.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
מחזירה TRUE אם התג שסופק הוא תג ספציפי להקשר.
IsProfileTag(uint64_t tag)
bool
מחזירה TRUE לגבי התג שסופק הוא תג ספציפי לפרופיל.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין תקין.
ProfileIdFromTag(uint64_t tag)
uint32_t
הפונקציה מחזירה את מזהה הפרופיל מתג TLV.
ProfileNumFromTag(uint64_t tag)
uint16_t
מחזירה את מספר הפרופיל מתג TLV.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
יוצר את ייצוג ה-API של תג TLV ספציפי לפרופיל מתוך מזהה פרופיל ומספר תג.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
יוצרות את ייצוג ה-API של תג TLV ספציפי לפרופיל ממזהה ספק, מספר פרופיל ומספר תג.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין מרמז על נוכחות של שדה אורך משויך.
TLVTypeHasValue(uint8_t type)
bool
הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין מרמז על נוכחות של שדה ערך משויך.
TLVTypeIsContainer(uint8_t type)
bool
הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין הוא מאגר.
TLVTypeIsString(uint8_t type)
bool
הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין הוא מחרוזת UTF8 או בייטים.
TagNumFromTag(uint64_t tag)
uint32_t
מחזירה את מספר התג מתג TLV.
VendorIdFromTag(uint64_t tag)
uint16_t
מחזירה את מזהה הספק מתג TLV.

מחלקות

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

מספק מנתח יעיל בזיכרון עבור נתונים המקודדים בפורמט TLV של Weave.

nl::Weave::TLV::TLVUpdater

מספק ממשק מאוחד של Reader/Writer לעריכה, להוספה או למחיקה של רכיבים בקידוד TLV.

nl::Weave::TLV::TLVWriter

מספק מקודד יעיל בזיכרון לכתיבת נתונים בפורמט TLV של Weave.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer מספק אחסון מעגלי עבור nl::Weave::TLV::TLVWriter ו-nl::Weave::TLVTLVReader.

מרחבי שמות

nl::Weave::TLV::Debug

מרחב השמות הזה כולל סוגים וממשקים לניפוי באגים ולרישום ביומן של Weave TLV.

nl::Weave::TLV::Utilities

מרחב השמות הזה כולל סוגים וממשקי עזר לניהול ולעבודה עם Weave TLV.

ספירות

@71

 @71

@73

 @73

@74

 @74
תכונות
AnonymousTag

ערך שמסמן רכיב TLV שאין לו תג (כלומר

רכיב אנונימי).

75@

 @75

TLVCommonProfiles

 TLVCommonProfiles
תכונות
kProfileIdNotSpecified

משמש לציון ההיעדר של מזהה פרופיל במשתנה או בחבר.

זה בעצם זהה לערך kWeaveProfile_NotSpecified שהוגדר ב-WeaveProfiles.h

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

ספירה שמזהה את הסוג של רכיב TLV.

משתנים

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

מעתיק רכיב TLV מאובייקט של קורא אל הכותב.

השיטה CopyElement() מקודדת רכיב TLV חדש שהסוג והערך שלו נלקחים מאובייקט TLVReader. לאחר הפעלת השיטה, אובייקט הקורא שסופק אמור להיות ממוקם ברכיב המקור TLV. לרכיב המקודד החדש יהיו אותו סוג ותוכן כמו הגורם המכיל של הקלט, עם זאת, התג יוגדר לארגומנט שצוין. אם הרכיב שסופק הוא מאגר תגים מסוג TLV (מבנה, מערך או נתיב), כל התוכן של המאגר יועתק.

פרטים
פרמטרים
[in] tag
התג TLV שיש לקודד עם מאגר התגים, או AnonymousTag אם צריך לקודד את המאגר ללא תג. יש לבנות את ערכי התג באמצעות אחת מהפונקציות של הגדרת התג ProfileTag(), ContextTag() או CommonTag().
[in] reader
הפניה לאובייקט TLVReader שמזהה רכיב TLV מקודד מראש שיש להעתיק את הסוג והערך שלו.
ערכים מוחזרים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INCORRECT_STATE
אם הקורא שסופק לא ממוקם על רכיב.
WEAVE_ERROR_TLV_CONTAINER_OPEN
אם כותב מאגר תגים נפתח אצל הכותב הנוכחי ועדיין לא נסגר.
WEAVE_ERROR_TLV_UNDERRUN
אם קידוד ה-TLV הבסיסי שמשויך לקורא שסופק הסתיים מוקדם מדי.
WEAVE_ERROR_INVALID_TLV_ELEMENT
אם הקורא שסופק נתקל ברכיב TLV לא תקין או שאינו נתמך.
WEAVE_ERROR_INVALID_TLV_TAG
אם הקורא שסופק נתקל בתג TLV בהקשר לא חוקי, או אם התג שסופק לא תקין או לא הולם בהקשר שבו נכתב מאגר התגים החדש.
WEAVE_ERROR_BUFFER_TOO_SMALL
אם כתיבת הערך תחרוג מהמגבלה על מספר הבייטים המקסימלי שצוין כאשר הכותב אותחל.
WEAVE_ERROR_NO_MEMORY
אם ניסיון להקצות מאגר נתונים זמני פלט נכשל עקב מחסור בזיכרון.
other
שגיאות אחרות ב-Weave או בפלטפורמה ספציפית, שהוחזרו על ידי הפונקציות GetNewBuffer() או FinalizeBuffer() שהוגדרו, או על ידי הפונקציה GetNextBuffer() המשויכת לאובייקט הקורא.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

פונקציות

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

יוצר את ייצוג ה-API של תג TLV של פרופיל משותף.

פרטים
פרמטרים
[in] tagNum
המספר של תג הפרופיל המשותף שהוקצה לתג.
החזרות
מספר שלם ב-64 ביט שמייצג את התג.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

יוצר את ייצוג ה-API עבור תג TLV ספציפי להקשר.

פרטים
פרמטרים
[in] tagNum
מספר התג הספציפי להקשר שהוקצה לתג.
החזרות
מספר שלם ב-64 ביט שמייצג את התג.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

מחזירה TRUE אם התג שסופק הוא תג ספציפי להקשר.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

מחזירה TRUE לגבי התג שסופק הוא תג ספציפי לפרופיל.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין תקין.

פרטים
החזרות
true אם סוג ה-TLV שצוין תקין; אחרת, false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

הפונקציה מחזירה את מזהה הפרופיל מתג TLV.

פרטים
פרמטרים
[in] tag
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מזהה הפרופיל.

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

מחזירה את מספר הפרופיל מתג TLV.

פרטים
פרמטרים
[in] tag
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מספר הפרופיל המשויך.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

יוצר את ייצוג ה-API של תג TLV ספציפי לפרופיל מתוך מזהה פרופיל ומספר תג.

פרטים
פרמטרים
[in] profileId
המזהה של הפרופיל שבו התג מוגדר.
[in] tagNum
מספר התג הספציפי לפרופיל שהוקצה לתג.
החזרות
מספר שלם ב-64 ביט שמייצג את התג.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

יוצרות את ייצוג ה-API של תג TLV ספציפי לפרופיל ממזהה ספק, מספר פרופיל ומספר תג.

פרטים
פרמטרים
[in] vendorId
המזהה של הספק שהגדיר את התג.
[in] profileNum
המספר שהוקצה על ידי הספק לפרופיל שבו התג מוגדר.
[in] tagNum
מספר התג הספציפי לפרופיל שהוקצה לתג.
החזרות
מספר שלם ב-64 ביט שמייצג את התג.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין מרמז על נוכחות של שדה אורך משויך.

פרטים
החזרות
true אם סוג ה-TLV שצוין מרמז על נוכחות של שדה אורך משויך; אחרת, false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין מרמז על נוכחות של שדה ערך משויך.

פרטים
החזרות
true אם סוג ה-TLV שצוין מרמז על נוכחות של שדה ערך משויך; אחרת, false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין הוא מאגר.

פרטים
החזרות
true אם הסוג שצוין הוא TLV הוא מאגר. אחרת, false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

הפונקציה מחזירה את הערך True אם סוג ה-TLV שצוין הוא מחרוזת UTF8 או בייטים.

פרטים
החזרות
true אם הסוג TLV שצוין הוא מחרוזת UTF8 או בייטים; אחרת, false.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

מחזירה את מספר התג מתג TLV.

פרטים
פרמטרים
[in] tag
הייצוג של ה-API של תג TLV ספציפי לפרופיל או לפי הקשר.
החזרות
מספר התג המשויך.
ראו גם:
IsProfileTag() ו-IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

מחזירה את מזהה הספק מתג TLV.

פרטים
פרמטרים
[in] tag
ייצוג ה-API של תג TLV ספציפי לפרופיל.
החזרות
מזהה הספק המשויך.