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) تعريف الكتابة
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، بمعنى، قم بإلغاء تحديده.

إعداد

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

إعداد الكائن ReferencedTLVData وفقًا لـ PacketBuffer.

عليك إعداد كائن ReferencedTLVData مع توفُّر مخزن مؤقت مليء بـ TLV. ويفترض ذلك أنّ المخزن المؤقت يحتوي فقط على النص TLV.

التفاصيل
المعلمات
[in] aBuffer
مخزن مؤقت للرسائل يتوفّر فيه TLV
قيم الإرجاع
WEAVE_NO_ERROR
غير مشروط

إعداد

WEAVE_ERROR init(
  MessageIterator & i
)

إعداد كائن ReferencedTLVData مع MessageIterator.

إعداد كائن ReferencedTLVData مع MessageIterator. وفي هذه الحالة، يكون الجزء TLV هو الجزء الأخير من المخزن المؤقت ونمرره في مكرّر رسالة يشير إليه.

التفاصيل
المعلمات
[in] i
مكرّر رسالة يشير إلى TLV المطلوب استخراجه
قيم الإرجاع
WEAVE_NO_ERROR
غير مشروط

إعداد

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
غير مشروط

إعداد

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

إعداد كائن RefererencedTLVData وفقًا لدالة استدعاء

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

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

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

فارغ

bool isEmpty(
  void
)

تحقَّق مما إذا كان هناك عنصر ReferencedTLVData يحتوي على أي محتوى.

ويمكن أن "يحتوي" مثل هذا الكائن على طريقتين شيء ما. يمكن أن يكون له طول 0 أو قد لا يحتوي على استدعاء كتابة.

التفاصيل
المرتجعات
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
)

إرجاع طول البيانات مع افتراض أن الكائن معبأ في مخزن مؤقت.

التفاصيل
المرتجعات
طول العدد الصحيح للبيانات المعبأة.

الدوال الثابتة العامة

تحليل

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

حلّل الكائن ReferencedTLVData من خلال أداة PacketBuffer المقدمة.

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