nl::Weave::الملفات الشخصية::ReferencedTLVData

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

وبالمثل، يجب أن نتمكّن من تمثيل كائن ثنائي كبير جدًا لبيانات TLV.

الملخّص

الاكتساب

يكتسب من: nl::Weave::Profiles::KeepedPacketBuffer

الماكينات والبناء

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)
يؤدي ذلك إلى إعداد كائن إحالة مرجعي.
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)

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

البيانات

uint8_t * theData

الطول

uint16_t theLength

أقصى طول

uint16_t theMaxLength

وظائف عامة

البيانات المرجعية لـ LLV

 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
)

يؤدي ذلك إلى إعداد كائن إحالة مرجعي.

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

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

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

isblank

bool isEmpty(
  void
)

تحقّق مما إذا كان هناك كائن ReferencedTLVData يتضمّن أي عنصر.

ثمة طريقتان محتمَلتان لتحقيق هذا الهدف: إمّا أنّه يمكن أن يتضمّن 0 طول أو لا يمكن الردّ على طلب الكتابة.

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

مجاني

bool isFree(
  void
)

تحقّق ممّا إذا كان عنصر ReferencedTLVData هو &"free" أي

غير محدّد.

التفاصيل
المرتجعات
صحيح إذا كان الكائن غير محدد أو خطأ بخلاف ذلك.

عامل التشغيل==

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