nl :: نسج:: TLV :: WeaveCircularTLVBuffer

#include <src/lib/core/WeaveCircularTLVBuffer.h>

WeaveCircularTLVBuffer يوفر تخزين دائري لنيكولا لانغ :: :: نسج TLV :: TLVWriter ونيكولا لانغ :: :: نسج TLVTLVReader.

ملخص

نيكولا لانغ :: :: نسج TLV :: TLVWriter غير قادرة على إرسال عدد غير محدود من TLV إدخالات إلى WeaveCircularTLVBuffer طالما كل الفردية TLV نوبات دخول بالكامل داخل التخزين المقدم. ونيكولا لانغ :: :: نسج TLV :: TLVReader سيقرأ في معظم حجم المخزن المؤقت، ولكن استيعاب ملفوف داخل المخزن المؤقت.

البنائين والمدمرين

WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer المنشئ.
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer المنشئ.

الأنواع العامة

ProcessEvictedElementFunct )(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader) WEAVE_ERROR (*
وظيفة الذي يسمى لمعالجة TLV العنصر قبل أن يتم طرد من نيكولا لانغ :: :: نسج TLV :: WeaveCircularTLVBuffer .

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

mAppData
void *
سياق اختياري يوفره المستخدم لاستخدامه مع معالجة رد النداء للعنصر الذي تم إخلاؤه.
mImplicitProfileId
uint32_t
mProcessEvictedElement
رد اتصال اختياري يوفره المستخدم يعالج العنصر قبل إخراجه من المخزن المؤقت الدائري.

الوظائف العامة

AvailableDataLength (void) const
size_t
DataLength (void) const
size_t
EvictHead (void)
باجلاء أقدم المستوى الأعلى TLV عنصر في WeaveCircularTLVBuffer .
FinalizeBuffer (TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
FinalizeBuffer ضبط WeaveCircularTLVBuffer دولة على الانتهاء من الإخراج منTLVWriter .
GetNewBuffer (TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
الحصول على مساحة إضافية للTLVWriter .
GetNextBuffer (TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
الحصول على مساحة إضافية للTLVReader .
GetQueue (void) const
uint8_t *
GetQueueSize (void) const
size_t
QueueHead (void) const
uint8_t *
QueueTail (void) const
uint8_t *
SetQueueHead (uint8_t *aQueueHead)
void
SetQueueLength (size_t aQueueLength)
void

وظائف ثابتة عامة

FinalizeBufferFunct (TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
والترامبولين ل WeaveCircularTLVBuffer :: FinalizeBuffer .
GetNewBufferFunct (TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
والترامبولين لجلب المزيد من المساحة للTLVWriter .
GetNextBufferFunct (TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
والترامبولين ل WeaveCircularTLVBuffer :: GetNextBuffer .

الأنواع العامة

ProcessEvictedElementFunct

WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)

وظيفة الذي يسمى لمعالجة TLV العنصر قبل أن يتم طرد من نيكولا لانغ :: :: نسج TLV :: WeaveCircularTLVBuffer .

وتستخدم وظائف من هذا النوع لمعالجة TLV عنصر على وشك أن يطرد من المخزن المؤقت. سيتم منح وظيفة لنيكولا لانغ :: :: نسج TLV :: TLVReader المتمركزة على العنصر حول المراد حذفه، وكذلك * السياق باطل حيث أن المستخدم قد وفرت بيئة إضافية لرد. إذا كانت وظيفة معالجتها العنصر بنجاح، يجب أن تعيد WEAVE_NO_ERROR . هذا يدل على WeaveCircularTLVBuffer أن العنصر قد طرد بأمان. يتم معاملة أي قيمة الإرجاع أخرى خطأ وسوف تمنع WeaveCircularTLVBuffer من طرد العناصر قيد النظر.

ملاحظة: هذا الاستدعاء يمكن أن تستخدم لإجبار WeaveCircularTLVBuffer لعدم طرد عنصر. قد يكون هذا مفيدًا في عدد من الحالات ، عندما يكون من المطلوب وجود مخزن مؤقت دائري أساسي ، ولكن ليس لتجاوز أي عناصر بداخله.

تفاصيل
المعلمات
[in] inBuffer
إشارة إلى المخزن المؤقت الذي يتم منه الإخلاء
[in] inAppData
مؤشر إلى البنية التي يوفرها المستخدم والتي تحتوي على سياق إضافي لرد الاتصال هذا
[in] inReader
ATLVReader المتمركزة على العنصر المراد إخلاؤهم.
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح. سيتم إخلاء العنصر.
other
حدث خطأ أثناء معالجة الحدث. العنصر يبقى في المخزن المؤقت. ستفشل وظيفة الكتابة التي تسببت في طرد هذا العنصر.

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

mAppData

void * mAppData

سياق اختياري يوفره المستخدم ليتم استخدامه مع معالجة رد الاتصال للعنصر الذي تم إخلاؤه.

mImplicitProfileId

uint32_t mImplicitProfileId

mProcessEvictedElement

ProcessEvictedElementFunct mProcessEvictedElement

رد اتصال اختياري يوفره المستخدم يعالج العنصر قبل إخراجه من المخزن المؤقت الدائري.

راجع تعريف نوع ProcessEvictedElementFunct للحصول على معلومات إضافية حول تنفيذ وظيفة mProcessEvictedElement.

الوظائف العامة

متاح DataLength

size_t AvailableDataLength(
  void
) const 

طول البيانات

size_t DataLength(
  void
) const 

إخلاء الرأس

WEAVE_ERROR EvictHead(
  void
)

باجلاء أقدم المستوى الأعلى TLV عنصر في WeaveCircularTLVBuffer .

هذه الوظيفة يزيل أقدم مستوى أعلى TLV عنصر في المخزن المؤقت. فإن وظيفة استدعاء رد الاتصال المسجلة في mProcessEvictedElement لمعالجة عنصر قبل الإزالة. إذا كان الاستدعاء بإرجاع أي شيء ولكن WEAVE_NO_ERROR ، لا يتم إزالة هذا العنصر. وبالمثل، إذا حدث أي خطأ آخر لا عناصر داخل المنطقة العازلة وغيرها الكامنة WeaveCircularTLVBuffer لم يتغير.

تفاصيل
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
other
على أية أخطاء أخرى عاد إما عن طريق الاستدعاء أو من قبلTLVReader .

FinalizeBuffer

WEAVE_ERROR FinalizeBuffer(
  TLVWriter & ioWriter,
  uint8_t *inBufStart,
  uint32_t inBufLen
)

FinalizeBuffer ضبط WeaveCircularTLVBuffer دولة على الانتهاء من الإخراج منTLVWriter .

تؤثر هذه الوظيفة على موضع ذيل قائمة الانتظار.

تفاصيل
المعلمات
[in,out] ioWriter
TLVWriter استدعاء هذه الوظيفة
[in] inBufStart
مؤشر إلى بداية البيانات (من TLVWriter منظور)
[in] inBufLen
وأشار طول البيانات في المخزن المؤقت من قبل inbufStart
إرجاع القيم
WEAVE_NO_ERROR
دون قيد أو شرط.

GetNewBuffer

WEAVE_ERROR GetNewBuffer(
  TLVWriter & ioWriter,
  uint8_t *& outBufStart,
  uint32_t & outBufLen
)

الحصول على مساحة إضافية للTLVWriter .

في الواقع ، تستخرج الوظيفة عنصرًا من المخزن المؤقت الدائري ، وتضبط رأس قائمة انتظار المخزن المؤقت

تفاصيل
المعلمات
[in,out] ioWriter
TLVWriter استدعاء هذه الوظيفة
[out] outBufStart
المؤشر إلى المخزن المؤقت الجديد
[out] outBufLen
الطول المتاح للكتابة
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
other
إذا لم تتمكن من رخم كاملة على مستوى أعلى وظيفة TLV عنصر.

GetNextBuffer

WEAVE_ERROR GetNextBuffer(
  TLVReader & ioReader,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

الحصول على مساحة إضافية للTLVReader .

التخزين التي توفرها WeaveCircularTLVBuffer يمكن ملفوف داخل المخزن المؤقت. توفر هذه الوظيفة لنا القدرة على مطابقة التخزين المؤقت المخزن المؤقت دائري إلىTLVReader القيود. سيجد القارئ يقرأ في معظم mQueueSize بايت من المخزن المؤقت.

تفاصيل
المعلمات
[in] ioReader
TLVReader استدعاء هذه الوظيفة.
[in,out] outBufStart
الإشارة إلى المخزن المؤقت للبيانات. عند العودة ، يتم تعيينه على قيمة داخل هذا المخزن المؤقت.
[out] outBufLen
عند العودة ، قم بتعيين عدد البايتات المستمرة التي يمكن قراءتها من المخزن المؤقت.
إرجاع القيم
WEAVE_NO_ERROR
ينجح دون قيد أو شرط.

GetQueue

uint8_t * GetQueue(
  void
) const 

GetQueueSize

size_t GetQueueSize(
  void
) const 

QueueHead

uint8_t * QueueHead(
  void
) const 

QueueTail

uint8_t * QueueTail(
  void
) const 

SetQueueHead

void SetQueueHead(
  uint8_t *aQueueHead
)

SetQueueLength

void SetQueueLength(
  size_t aQueueLength
)

WeaveCircularTLVBuffer

 WeaveCircularTLVBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength
)

WeaveCircularTLVBuffer المنشئ.

تفاصيل
المعلمات
[in] inBuffer
مؤشر إلى مخزن الدعم لقائمة الانتظار
[in] inBufferLength
طول مخزن الدعم بالبايت

WeaveCircularTLVBuffer

 WeaveCircularTLVBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength,
  uint8_t *inHead
)

WeaveCircularTLVBuffer المنشئ.

تفاصيل
المعلمات
[in] inBuffer
مؤشر إلى مخزن الدعم لقائمة الانتظار
[in] inBufferLength
طول مخزن الدعم بالبايت
[in] inHead
النقطة الأولية للرأس. مؤشر inHead هو يجب أن تدخل في متجر دعم للالمخزن المؤقت دائري، أي داخل inBuffer وو(inBuffer [inBufferLength])

وظائف ثابتة عامة

FinalizeBufferFunct

WEAVE_ERROR FinalizeBufferFunct(
  TLVWriter & ioWriter,
  uintptr_t inBufHandle,
  uint8_t *inBufStart,
  uint32_t inBufLen
)

والترامبولين ل WeaveCircularTLVBuffer :: FinalizeBuffer .

تفاصيل
المعلمات
[in,out] ioWriter
TLVWriter استدعاء هذه الوظيفة
[in,out] inBufHandle
مؤشر إلى CircularTLVWriter الكائن
[in] inBufStart
مؤشر إلى بداية البيانات (من TLVWriter منظور)
[in] inBufLen
وأشار طول البيانات في المخزن المؤقت من قبل inbufStart
إرجاع القيم
WEAVE_NO_ERROR
دون قيد أو شرط.

GetNewBufferFunct

WEAVE_ERROR GetNewBufferFunct(
  TLVWriter & ioWriter,
  uintptr_t & inBufHandle,
  uint8_t *& outBufStart,
  uint32_t & outBufLen
)

والترامبولين لجلب المزيد من المساحة للTLVWriter .

تفاصيل
المعلمات
[in,out] ioWriter
TLVWriter استدعاء هذه الوظيفة
[in,out] inBufHandle
مؤشر إلى CircularTLVWriter الكائن
[out] outBufStart
المؤشر إلى المخزن المؤقت الجديد
[out] outBufLen
الطول المتاح للكتابة
إرجاع القيم
WEAVE_NO_ERROR
عن النجاح.
other
إذا لم تتمكن من رخم كاملة على مستوى أعلى وظيفة TLV عنصر.

GetNextBufferFunct

WEAVE_ERROR GetNextBufferFunct(
  TLVReader & ioReader,
  uintptr_t & inBufHandle,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

والترامبولين ل WeaveCircularTLVBuffer :: GetNextBuffer .

تفاصيل
المعلمات
[in,out] ioReader
TLVReader استدعاء هذه الوظيفة
[in,out] inBufHandle
مؤشر إلى CircularTLVWriter الكائن
[in,out] outBufStart
الإشارة إلى المخزن المؤقت للبيانات. عند العودة ، يتم تعيينه على قيمة داخل هذا المخزن المؤقت.
[out] outBufLen
عند العودة ، قم بتعيين عدد البايتات المستمرة التي يمكن قراءتها من المخزن المؤقت.
إرجاع القيم
WEAVE_NO_ERROR
ينجح دون قيد أو شرط.