nl:: Weave:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
يوفّر WeaveCircularTLVBuffer مساحة تخزين دائرية لكل من nl::Weave::TLV::TLVWriter وnl::Weave::TLVTLVReader.
ملخّص
nl::Weave::TLV::TLVWriter قادرًا على كتابة عدد غير محدود من إدخالات TLV في WeaveCircularTLVBuffer طالما أنّ كل إدخال فردي في TLV يناسب مساحة التخزين المتوفرة بالكامل. ويمكن قراءة nl::Weave::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 قبل إخراجه من nl::Weave::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 قبل إخراجه من nl::Weave::TLV::WeaveCircularTLVBuffer.
يتم استخدام الدوال من هذا النوع لمعالجة عنصر TLV على وشك التخلص منه من المخزن المؤقت. سيتم منح الدالة nl::Weave::TLV::TLVReader موضوعة على العنصر على وشك حذفه، بالإضافة إلى سياق * باطل حيث قد يكون المستخدم قد وفّر بيئة إضافية لمعاودة الاتصال. إذا عالجت الدالة العنصر بنجاح، يجب أن تعرض WEAVE_NO_ERROR؛ ويشير هذا إلى WeaveCircularTLVBuffer بإمكانية التخلص من العنصر بأمان. يتم التعامل مع أي قيمة معروضة أخرى على أنّها خطأ وستمنع WeaveCircularTLVBuffer من إزالة العنصر المعنيّ.
ملاحظة: يمكن استخدام عملية الاستدعاء هذه لفرض عدم استبعاد العنصر WeaveCircularTLVBuffer. قد يكون هذا مفيدًا في عدد من الحالات، عندما يكون مطلوبًا أن يكون لديك مورد احتياطي دائري أساسي، ولكن ليس لإلغاء أي عناصر بداخله.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
السمات العامة
mAppData
void * mAppData
سياق اختياري يقدّمه المستخدم لاستخدامه مع معالجة معاودة الاتصال للعنصر الذي تم إخراجه
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
يشير ذلك المصطلح إلى استدعاء اختياري يوفّره المستخدم ويعالج العنصر قبل إزالته من المخزن المؤقت الدائري.
اطّلِع على تعريف النوع ProcessEvictedElementFunct للحصول على معلومات إضافية حول تنفيذ دالة mProcessEvictedElement.
وظائف عامة
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
لإلغاء أقدم عنصر TLV ذي مستوى أعلى في WeaveCircularTLVBuffer.
تزيل هذه الدالة أقدم عنصر TLV من المستوى الأعلى في المخزن المؤقت. ستستدعي الدالة دالة الاستدعاء المسجّلة في mProcessEvictedElement لمعالجة العنصر قبل الإزالة. إذا عرض رد الاستدعاء أي شيء باستثناء WEAVE_NO_ERROR، لن تتم إزالة العنصر. وبالمثل، إذا لم يحدث أي خطأ آخر أي عناصر داخل المخزن المؤقت، وما إلى ذلك يظل WeaveCircularTLVBuffer الأساسي بدون تغيير.
التفاصيل | |||||
---|---|---|---|---|---|
قيم الإرجاع |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
يعدّل FinalizeBuffer حالة WeaveCircularTLVBuffer
عند اكتمال الإخراج من TLVWriter.
تؤثر هذه الدالة في موضع ذيل قائمة الانتظار.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
يمكنك الحصول على مساحة إضافية لـ TLVWriter.
في الواقع، تُخرج الدالة عنصرًا من المخزن المؤقت الدائري، وتضبط رأس قائمة انتظار المخزن المؤقت هذه
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
يمكنك الحصول على مساحة إضافية لـ TLVReader.
قد تكون مساحة التخزين التي يوفّرها WeaveCircularTLVBuffer مرتبطة بالمخزن المؤقت. وتتيح لنا هذه الدالة مطابقة التخزين المؤقت للمخزن المؤقت الدائري مع قيود TLVReader. سيقرأ القارئ mQueueSize
بايت كحد أقصى من المخزن المؤقت.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
||||||
قيم الإرجاع |
|
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.
التفاصيل | |||||
---|---|---|---|---|---|
المعلمات |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
الدالة الإنشائية WeaveCircularTLVBuffer.
التفاصيل | |||||||
---|---|---|---|---|---|---|---|
المعلمات |
|
الدوال الثابتة العامة
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
ترامبولين إلى WeaveCircularTLVBuffer::FinalizeBuffer
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||
قيم الإرجاع |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
ترامبولين لجلب مساحة أكبر لـ TLVWriter
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||
قيم الإرجاع |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
ترامبولين إلى WeaveCircularTLVBuffer::GetNextBuffer
التفاصيل | |||||||||
---|---|---|---|---|---|---|---|---|---|
المعلمات |
|
||||||||
قيم الإرجاع |
|