nl:: بافت:: پروفایل ها:: ReferencedTLVData

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

به طور مشابه، ما باید بتوانیم یک لکه بزرگ قدیمی از داده های 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 را با یک تابع callback راه اندازی کنید.
isEmpty (void)
bool
بررسی کنید که آیا یک شی ReferencedTLVData چیزی در آن وجود دارد یا خیر.
isFree (void)
bool
بررسی کنید که آیا یک شی ReferencedTLVData "رایگان" است یا خیر
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)

صفات عمومی

داده ها

uint8_t * theData

طول

uint16_t theLength

حداکثر طول

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
)

یک آبجکت RefererencedTLVData را با یک تابع callback راه اندازی کنید.

یک شی ReferencedTLVData را راه اندازی کنید. این نسخه به‌جای ارائه صریح داده‌ها، تابع، پاسخ به نوشتن و یک شی مرجع را ارائه می‌کند که به همراه یک شی TLVWriter، زمانی که داده‌های ارجاع‌شده قرار است بسته‌بندی و ارسال شوند، به آن ارسال می‌شود. امضای آن callback این است:

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

جزئیات
پارامترها
[in] aWriteCallback
تابعی که هنگام نوشتن مقداری TLV فراخوانی می شود.
[in] anAppState
یک شیء حالت برنامه که باید به همراه نویسنده به callback ارسال شود.
ارزش های بازگشتی
WEAVE_NO_ERROR
در مورد موفقیت
WEAVE_ERROR_INVALID_ARGUMENT
اگر پاسخ تماس نوشتن ارائه نشده باشد.

خالی است

bool isEmpty(
  void
)

بررسی کنید که آیا یک شی ReferencedTLVData چیزی در آن وجود دارد یا خیر.

دو راه ممکن وجود دارد که چنین شیئی بتواند چیزی "داشته باشد". یا می‌تواند 0 طول داشته باشد یا می‌تواند بدون نوشتن پاسخ تماس داشته باشد.

جزئیات
برمی گرداند
درست است اگر مجموعه داده 0 طول داشته باشد یا هیچ پاسخی برای نوشتن وجود نداشته باشد، در غیر این صورت نادرست است.

رایگان است

bool isFree(
  void
)

بررسی کنید که آیا یک شی ReferencedTLVData "رایگان" است یا خیر

تعریف نشده

جزئیات
برمی گرداند
درست است اگر شی تعریف نشده باشد، در غیر این صورت نادرست است.

اپراتور==

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
)

طول بسته بندی شده

uint16_t packedLength(
  void
)

طول داده را با فرض اینکه شی در یک بافر بسته بندی شده است، برگردانید.

جزئیات
برمی گرداند
طول عدد صحیح داده های بسته بندی شده

توابع استاتیک عمومی

تجزیه

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

یک شی ReferencedTLVData را از یک PacketBuffer ارائه شده تجزیه کنید.

یک شی ReferencedTLVData را از یک بافر inet تجزیه کنید (با فرض اینکه فقط حاوی TLV باشد).

جزئیات
پارامترها
[in] buff
بافر برای خواندن
[out] aTarget
یک شی ReferencedTLVData برای "پر کردن" با نتیجه.
برمی گرداند
یک WEAVE_ERROR که منعکس کننده موفقیت فراخوان تجزیه اساسی است.

تجزیه

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

یک شی ReferencedTLVData را از یک MessageIterator ارائه شده تجزیه کنید.

یک شی ReferenceTLVData را از یک شی MessageIterator که فرض می شود به قسمت TLV یک پیام اشاره می کند، تجزیه کنید.

توجه داشته باشید که هیچ "تجزیه" واقعی در اینجا انجام نمی شود زیرا TLV در بافر باقی مانده و اصلا دستکاری نشده است. این روش عمدتاً ساختار ReferencedTLVData را برای استفاده بعدی تنظیم می کند.

جزئیات
پارامترها
[in] i
یک تکرار کننده روی پیام در حال تجزیه.
[out] aTarget
مکانی برای قرار دادن نتیجه تجزیه.
ارزش های بازگشتی
WEAVE_NO_ERROR
بدون قید و شرط