nl:: বুনা:: TLV:: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer nl::Weave::TLV::TLVWriter এবং nl::Weave::TLVTLVReader-এর জন্য সার্কুলার স্টোরেজ প্রদান করে।
সারাংশ
nl::Weave::TLV::TLVWriter WeaveCircularTLVBuffer- এ একটি সীমাহীন সংখ্যক TLV এন্ট্রি লিখতে সক্ষম যতক্ষণ পর্যন্ত প্রতিটি পৃথক 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 (* একটি ফাংশন যা nl::Weave::TLV::WeaveCircularTLVBuffer থেকে উচ্ছেদ হওয়ার আগে একটি TLV উপাদানকে প্রক্রিয়া করতে বলা হয়। |
পাবলিক বৈশিষ্ট্য | |
---|---|
mAppData | void * একটি ঐচ্ছিক, ব্যবহারকারীর সরবরাহকৃত প্রসঙ্গ কলব্যাক প্রক্রিয়াকরণের সাথে উচ্ছেদ করা উপাদান ব্যবহার করার জন্য। |
mImplicitProfileId | uint32_t |
mProcessEvictedElement | একটি ঐচ্ছিক, ব্যবহারকারী দ্বারা সরবরাহ করা কলব্যাক যা উপাদানটিকে সার্কুলার বাফার থেকে উচ্ছেদ করার আগে প্রক্রিয়া করে৷ |
পাবলিক ফাংশন | |
---|---|
AvailableDataLength (void) const | size_t |
DataLength (void) const | size_t |
EvictHead (void) | WeaveCircularTLVBuffer- এ প্রাচীনতম শীর্ষ-স্তরের TLV উপাদানটিকে উচ্ছেদ করে৷ |
FinalizeBuffer ( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen) | FinalizeBuffer TLVWriter থেকে আউটপুট সম্পূর্ণ হলে WeaveCircularTLVBuffer অবস্থা সামঞ্জস্য করুন। |
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- এর জন্য একটি ট্রামপোলিন। |
পাবলিক প্রকার
Process EvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
একটি ফাংশন যা nl::Weave::TLV::WeaveCircularTLVBuffer থেকে উচ্ছেদ হওয়ার আগে একটি TLV উপাদানকে প্রক্রিয়া করতে বলা হয়।
এই ধরনের ফাংশনগুলি বাফার থেকে উচ্ছেদ করা একটি TLV উপাদান প্রক্রিয়া করতে ব্যবহৃত হয়। ফাংশনটিকে একটি nl::Weave::TLV::TLVReader দেওয়া হবে যে উপাদানটি মুছে ফেলা হবে, সেইসাথে void * প্রসঙ্গ যেখানে ব্যবহারকারী কলব্যাকের জন্য অতিরিক্ত পরিবেশ প্রদান করেছেন। যদি ফাংশনটি উপাদানটিকে সফলভাবে প্রক্রিয়া করে, তবে এটি অবশ্যই WEAVE_NO_ERROR ; এটি WeaveCircularTLVBuffer- কে নির্দেশ করে যে উপাদানটি নিরাপদে উচ্ছেদ করা যেতে পারে। অন্য যেকোন রিটার্ন মানকে একটি ত্রুটি হিসাবে বিবেচনা করা হয় এবং WeaveCircularTLVBuffer-কে বিবেচনাধীন উপাদানটি উচ্ছেদ করা থেকে বাধা দেবে।
দ্রষ্টব্য: এই কলব্যাকটি WeaveCircularTLVBuffer কে উপাদানটি উচ্ছেদ না করতে বাধ্য করতে ব্যবহার করা হতে পারে৷ এটি অনেক পরিস্থিতিতে উপযোগী হতে পারে, যখন এটি একটি অন্তর্নিহিত বৃত্তাকার বাফার থাকতে চায়, কিন্তু এটির মধ্যে কোনো উপাদানকে ওভাররাইড না করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
পাবলিক বৈশিষ্ট্য
mAppData
void * mAppData
একটি ঐচ্ছিক, ব্যবহারকারীর সরবরাহকৃত প্রসঙ্গ কলব্যাক প্রক্রিয়াকরণের সাথে উচ্ছেদ করা উপাদান ব্যবহার করার জন্য।
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
একটি ঐচ্ছিক, ব্যবহারকারী দ্বারা সরবরাহ করা কলব্যাক যা উপাদানটিকে সার্কুলার বাফার থেকে উচ্ছেদ করার আগে প্রক্রিয়া করে৷
mProcessEvictedElement ফাংশন বাস্তবায়নের অতিরিক্ত তথ্যের জন্য ProcessEvictedElementFunct প্রকারের সংজ্ঞা দেখুন।
পাবলিক ফাংশন
উপলভ্য ডেটা দৈর্ঘ্য
size_t AvailableDataLength( void ) const
ডেটা দৈর্ঘ্য
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
WeaveCircularTLVBuffer- এ প্রাচীনতম শীর্ষ-স্তরের TLV উপাদানটিকে উচ্ছেদ করে৷
এই ফাংশনটি বাফারের সবচেয়ে পুরানো শীর্ষ স্তরের TLV উপাদানটিকে সরিয়ে দেয়। ফাংশনটি অপসারণের আগে উপাদানটি প্রক্রিয়া করতে mProcessEvictedElement এ নিবন্ধিত কলব্যাকটিকে কল করবে৷ যদি কলব্যাক WEAVE_NO_ERROR ব্যতীত কিছু ফেরত দেয় তবে উপাদানটি সরানো হয় না। একইভাবে, অন্য কোনো ত্রুটি ঘটলে বাফারের মধ্যে কোনো উপাদান নেই, ইত্যাদি অন্তর্নিহিত WeaveCircularTLVBuffer অপরিবর্তিত থাকে।
বিস্তারিত | |||||
---|---|---|---|---|---|
রিটার্ন মান |
|
বাফার চূড়ান্ত করুন
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer TLVWriter থেকে আউটপুট সম্পূর্ণ হলে WeaveCircularTLVBuffer
অবস্থা সামঞ্জস্য করুন।
এই ফাংশন সারি লেজের অবস্থানকে প্রভাবিত করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
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
কিউ টেইল
uint8_t * QueueTail( void ) const
কিউ হেড সেট করুন
void SetQueueHead( uint8_t *aQueueHead )
সারির দৈর্ঘ্য সেট করুন
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 কনস্ট্রাক্টর।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
পাবলিক স্ট্যাটিক ফাংশন
চূড়ান্ত করুনBufferFunct
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- এর জন্য একটি ট্রামপোলিন।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|