nl:: بافت:: 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(*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
طول داده
size_t DataLength( void ) const
اخراج سر
WEAVE_ERROR EvictHead( void )
قدیمی ترین عنصر TLV سطح بالا را در WeaveCircularTLVBuffer خارج می کند.
این تابع قدیمی ترین عنصر TLV سطح بالا را در بافر حذف می کند. تابع فراخوانی ثبت شده در mProcessEvictedElement را برای پردازش عنصر قبل از حذف فراخوانی می کند. اگر پاسخ تماس چیزی جز WEAVE_NO_ERROR را برگرداند، عنصر حذف نمیشود. به طور مشابه، اگر خطای دیگری رخ دهد، هیچ عنصری در بافر، و غیره رخ ندهد، WeaveCircularTLVBuffer اساسی بدون تغییر باقی میماند.
جزئیات | |||||
---|---|---|---|---|---|
ارزش های بازگشتی |
|
Finalize Buffer
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
سر صف
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 .
جزئیات | |||||||||
---|---|---|---|---|---|---|---|---|---|
پارامترها |
| ||||||||
ارزش های بازگشتی |
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates. The OPENTHREAD and related marks are trademarks of the Thread Group and are used under license.
تاریخ آخرین بهروزرسانی 2024-08-27 بهوقت ساعت هماهنگ جهانی.