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(*
একটি ফাংশন যা 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 কে উপাদানটি উচ্ছেদ না করতে বাধ্য করতে ব্যবহার করা হতে পারে৷ এটি অনেক পরিস্থিতিতে উপযোগী হতে পারে, যখন এটি একটি অন্তর্নিহিত বৃত্তাকার বাফার থাকতে চায়, কিন্তু এটির মধ্যে কোনো উপাদানকে ওভাররাইড না করে।

বিস্তারিত
পরামিতি
[in] inBuffer
বাফারের একটি রেফারেন্স যা থেকে উচ্ছেদ করা হয়
[in] inAppData
এই কলব্যাকের জন্য অতিরিক্ত প্রসঙ্গ সহ ব্যবহারকারী-প্রদত্ত কাঠামোর একটি পয়েন্টার
[in] inReader
একটি TLVReader যে উপাদানটিকে উচ্ছেদ করতে হবে সেখানে অবস্থান করা হয়েছে৷
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর। উপাদান উচ্ছেদ করা হবে.
other
ইভেন্ট প্রক্রিয়াকরণের সময় একটি ত্রুটি ঘটেছে৷ উপাদানটি বাফারে থাকে। এই উপাদান উচ্ছেদ ট্রিগার যে লিখন ফাংশন ব্যর্থ হবে.

পাবলিক বৈশিষ্ট্য

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_NO_ERROR
সাফল্যের উপর।
other
কলব্যাক বা TLVReader দ্বারা প্রত্যাবর্তিত অন্য কোনো ত্রুটিতে।

বাফার চূড়ান্ত করুন

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

FinalizeBuffer TLVWriter থেকে আউটপুট সম্পূর্ণ হলে WeaveCircularTLVBuffer অবস্থা সামঞ্জস্য করুন।

এই ফাংশন সারি লেজের অবস্থানকে প্রভাবিত করে।

বিস্তারিত
পরামিতি
[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 

কিউহেড

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 কনস্ট্রাক্টর।

বিস্তারিত
পরামিতি
[in] inBuffer
সারির জন্য ব্যাকিং স্টোরের একটি পয়েন্টার
[in] inBufferLength
ব্যাকিং স্টোরের দৈর্ঘ্য, বাইটে

WeaveCircularTLVBuffer

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

WeaveCircularTLVBuffer কনস্ট্রাক্টর।

বিস্তারিত
পরামিতি
[in] inBuffer
সারির জন্য ব্যাকিং স্টোরের একটি পয়েন্টার
[in] inBufferLength
ব্যাকিং স্টোরের দৈর্ঘ্য, বাইটে
[in] inHead
মাথার জন্য প্রাথমিক বিন্দু। ইনহেড পয়েন্টার অবশ্যই বৃত্তাকার বাফারের জন্য ব্যাকিং স্টোরের মধ্যে পড়তে হবে, যেমন inBuffer এবং &( inBuffer [ inBufferLength ])

পাবলিক স্ট্যাটিক ফাংশন

চূড়ান্ত করুনBufferFunct

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
নিঃশর্তভাবে সফল হয়।