nl:: بافت:: TLV

تعاریف کار با داده های کدگذاری شده در قالب Weave TLV .

خلاصه

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
برگردان واقعی تگ ارائه شده یک تگ مخصوص پروفایل است.
IsSpecialTag (uint64_t tag)
bool
IsValidTLVType (uint8_t type)
bool
اگر نوع TLV مشخص شده معتبر باشد، true را برمی‌گرداند.
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
اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد طول مرتبط داشته باشد، true را برمی‌گرداند.
TLVTypeHasValue (uint8_t type)
bool
اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد مقدار مرتبط داشته باشد، true را برمی‌گرداند.
TLVTypeIsContainer (uint8_t type)
bool
اگر نوع TLV مشخص شده یک ظرف باشد، مقدار true را برمی‌گرداند.
TLVTypeIsString (uint8_t type)
bool
اگر نوع TLV مشخص شده یک رشته UTF8 یا بایت باشد، مقدار true را برمی‌گرداند.
TagNumFromTag (uint64_t tag)
uint32_t
شماره برچسب را از یک برچسب TLV برمی‌گرداند.
VendorIdFromTag (uint64_t tag)
uint16_t
شناسه فروشنده را از یک تگ TLV برمی‌گرداند.

کلاس ها

nl:: بافت:: TLV:: CircularTLVReader
nl:: بافت:: TLV:: دایره ایTLVWriter
nl:: بافت:: TLV:: TLVReader

یک تجزیه کننده کارآمد حافظه برای داده های کدگذاری شده در قالب Weave TLV فراهم می کند.

nl:: بافت:: TLV:: TLVUpdater

یک رابط Reader/Writer یکپارچه برای ویرایش/افزودن/حذف عناصر در رمزگذاری TLV فراهم می کند.

nl:: بافت:: TLV:: TLVWriter

یک رمزگذار کارآمد حافظه برای نوشتن داده ها در قالب Weave TLV ارائه می دهد.

nl:: بافت:: TLV:: WeaveCircularTLVBuffer

WeaveCircularTLVBuffer ذخیره سازی دایره ای برای nl::Weave::TLV::TLVWriter و nl::Weave::TLVTLVReader فراهم می کند.

فضاهای نام

nl:: بافت:: TLV:: اشکال زدایی

این فضای نام شامل انواع و رابط‌هایی برای اشکال‌زدایی و ورود به سیستم Weave TLV است.

nl:: بافت:: TLV:: ابزار

این فضای نام شامل انواع و رابط های کاربردی برای مدیریت و کار با 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
)

برگردان واقعی تگ ارائه شده یک تگ مخصوص پروفایل است.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

اگر نوع TLV مشخص شده معتبر باشد، true را برمی‌گرداند.

جزئیات
برمی گرداند
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 مخصوص پروفایل.
برمی گرداند
شماره نمایه مرتبط

تگ پروفایل

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

نمایش API یک تگ TLV مخصوص پروفایل را از شناسه و شماره تگ نمایه ایجاد می کند.

جزئیات
پارامترها
[in] profileId
شناسه پروفایلی که تگ در آن تعریف شده است.
[in] tagNum
شماره تگ مخصوص پروفایل که به تگ اختصاص داده شده است.
برمی گرداند
یک عدد صحیح 64 بیتی که نشان دهنده تگ است.

تگ پروفایل

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
)

اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد طول مرتبط داشته باشد، true را برمی‌گرداند.

جزئیات
برمی گرداند
true اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد طول مرتبط داشته باشد. در غیر این صورت false .

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد مقدار مرتبط داشته باشد، true را برمی‌گرداند.

جزئیات
برمی گرداند
true اگر نوع TLV مشخص شده دلالت بر وجود یک فیلد مقدار مرتبط داشته باشد. در غیر این صورت false .

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

اگر نوع TLV مشخص شده یک ظرف باشد، مقدار true را برمی‌گرداند.

جزئیات
برمی گرداند
true اگر نوع TLV مشخص شده یک ظرف باشد. در غیر این صورت false .

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

اگر نوع TLV مشخص شده یک رشته UTF8 یا بایت باشد، مقدار true را برمی‌گرداند.

جزئیات
برمی گرداند
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 مخصوص پروفایل.
برمی گرداند
شناسه فروشنده مرتبط