nl::Weave::Profiles::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 بالنظر إلى دالة رد اتصال.
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)

السمات العامة

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
)

تهيئة كائن RefererencedTLVData بالنظر إلى دالة رد اتصال.

عليك إعداد كائن ReferencedTLVData. وبدلاً من توفير البيانات بشكل صريح، يوفر هذا الإصدار الدالة استدعاء الدالة write وكائن المرجع الذي سيتم تمريره إليه مع كائن TLVWriter عندما من المفترض أن يتم تجميع البيانات المشار إليها وإرسالها. وفي ما يلي توقيع معاودة الاتصال هذه:

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

التفاصيل
المَعلمات
[in] aWriteCallback
الدالة التي سيتم طلبها عندما يحين وقت كتابة بعض TLV.
[in] anAppState
كائن حالة التطبيق ليتم تمريره إلى رد الاتصال مع الكاتب.
قيم الإرجاع
WEAVE_NO_ERROR
عند النجاح
WEAVE_ERROR_INVALID_ARGUMENT
في حال عدم توفير معاودة الاتصال بـ "الكتابة".

isEmpty

bool isEmpty(
  void
)

تحقَّق من أنّ الكائن ReferencedTLVData يتضمّن أي محتوى.

هناك طريقتان محتملتان يمكن من خلالهما أن "يحتوي" هذا الكائن على شيء ما. يمكن أن يكون طوله صفرًا أو لا يمكن كتابة معاودة الاتصال به.

التفاصيل
المرتجعات
true إذا كانت مجموعة البيانات تحتوي على طول 0 أو لم يكن هناك رد اتصال في اليد، أو false إذا لم يكن هناك أي رد اتصال.

isFree

bool isFree(
  void
)

تحقَّق مما إذا كان الكائن ReferencedTLVData "مجانيًا"، أي

غير محددة.

التفاصيل
المرتجعات
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 من المخزن المؤقت للإدخال (بافتراض أنّه يحتوي فقط على 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
بدون شروط