Google is committed to advancing racial equity for Black communities. See how.

এনএল :: তাঁত :: টিএলভি :: ওয়েভক্রাইকুলার টিএলভিফার

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

WeaveCircularTLVBuffer জন্য বিজ্ঞপ্তি স্টোরেজ উপলব্ধnl এর :: বুনা :: TLV :: TLVWriter এবং nl এর :: বুনা :: TLVTLVReader।

সারসংক্ষেপ

nl এর :: বুনা :: TLV :: TLVWriter একজন সীমাবদ্ধ সংখ্যা লিখতে সক্ষম হয় TLV এন্ট্রি WeaveCircularTLVBuffer যতদিন প্রতিটি যেমন TLV সম্পূর্ণরূপে প্রদত্ত স্টোরেজ মধ্যে এন্ট্রি আছে।Nl এর :: বুনা :: TLV :: TLVReader বাফার অধিকাংশ আকারে পড়তে হবে, কিন্তু বাফার মধ্যে Wraparound মিটমাট করা হবে।

নির্মাণকারী এবং ধ্বংসকারী

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 এর :: বুনা :: TLV :: WeaveCircularTLVBuffer

জনসাধারণের গুণাবলী

mAppData
void *
একটি alচ্ছিক, ব্যবহারকারী সরবরাহ করা প্রসঙ্গটি বাতিল হওয়া উপাদানটির কলব্যাক প্রসেসিংয়ের সাথে ব্যবহার করতে।
mImplicitProfileId
uint32_t
mProcessEvictedElement
একটি alচ্ছিক, ব্যবহারকারী দ্বারা সরবরাহ করা কলব্যাক যা বিজ্ঞপ্তি বাফার থেকে বের করার আগে উপাদানটিকে প্রক্রিয়া করে।

পাবলিক ফাংশন

AvailableDataLength (void) const
size_t
DataLength (void) const
size_t
EvictHead (void)
প্রাচীনতম টপ লেভেল Evicts 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)
থেকে একটি trampoline WeaveCircularTLVBuffer :: FinalizeBuffer
GetNewBufferFunct (TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
একটি trampoline জন্য আরও স্থান আনতেTLVWriter
GetNextBufferFunct (TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
থেকে একটি trampoline WeaveCircularTLVBuffer :: GetNextBuffer

পাবলিক প্রকার

প্রক্রিয়াএভিটিক্টেলমেন্টফান্ট

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

একটি ফাংশন একটি প্রক্রিয়া করতে বলা হয় যে TLV এটি পূর্বে উপাদান থেকে উচ্ছেদ করা হচ্ছে nl এর :: বুনা :: TLV :: WeaveCircularTLVBuffer

এই ধরনের কার্যাবলী একটি প্রক্রিয়া ব্যবহার করা হয় TLV সম্পর্কে বাফার থেকে উচ্ছেদ করা উপাদান। ফাংশন দেওয়া হবে একটিnl এর :: বুনা :: TLV :: TLVReader সম্পর্কে মুছে ফেলা হবে উপাদান, সেইসাথে অকার্যকর * প্রসঙ্গ যেখানে ব্যবহারকারী কলব্যাক জন্য অতিরিক্ত পরিবেশ প্রদান করে পারে স্থান। ফাংশন উপাদান সফলভাবে প্রক্রিয়াকরণ, তাহলে এটি ফিরে আসবে WEAVE_NO_ERROR ; এই প্রকাশ করে WeaveCircularTLVBuffer যে উপাদান নিরাপদে উচ্ছেদ করা হতে পারে। অন্য যে কোন ফেরত মান একটি ত্রুটি হিসেবে বিবেচিত হয় এবং প্রতিরোধ করবে WeaveCircularTLVBuffer বিবেচনা অধীন উপাদান উচ্ছেদ থেকে।

দ্রষ্টব্য: এই কলব্যাক বলপূর্বক ব্যবহার করা যেতে পারে WeaveCircularTLVBuffer উচ্ছেদ না উপাদানে। এটি অন্তর্নিহিত বিজ্ঞপ্তি বাফার করার ইচ্ছা থাকলেও এটির মধ্যে কোনও উপাদানকে ওভাররাইড না করার জন্য এটি বেশ কয়েকটি পরিস্থিতিতে কার্যকর হতে পারে।

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

জনসাধারণের গুণাবলী

mAppData

void * mAppData

একটি alচ্ছিক, ব্যবহারকারী সরবরাহ করা প্রসঙ্গটি উচ্ছেদ উপাদানটির প্রক্রিয়াকরণের কলব্যাকের সাথে ব্যবহার করতে।

এমআইপ্লিকেটপ্রোফাইলআইডি

uint32_t mImplicitProfileId

mProcessEvictElement

ProcessEvictedElementFunct mProcessEvictedElement

একটি alচ্ছিক, ব্যবহারকারী দ্বারা সরবরাহ করা কলব্যাক যা বিজ্ঞপ্তি বাফার থেকে বের করার আগে উপাদানটিকে প্রক্রিয়া করে।

MProcessEvictElement ফাংশন বাস্তবায়নের বিষয়ে অতিরিক্ত তথ্যের জন্য প্রসেসিভিক্টেড এলিমেন্টফ্যান্ট ধরণের সংজ্ঞাটি দেখুন।

পাবলিক ফাংশন

উপলভ্যডেটলাংথ

size_t AvailableDataLength(
  void
) const 

ডাটালেন্থ th

size_t DataLength(
  void
) const 

EvictHead

WEAVE_ERROR EvictHead(
  void
)

প্রাচীনতম টপ লেভেল Evicts TLV উপাদান WeaveCircularTLVBuffer

এই ফাংশনটি প্রাচীনতম শীর্ষ স্তরের সরিয়ে ফেলা হবে TLV বাফারে উপাদান। অনুষ্ঠানে নিবন্ধিত কলব্যাক ডাকব mProcessEvictedElement উপাদান অপসারণ করার পূর্বে প্রক্রিয়া। কলব্যাক কিন্তু কিছু ফেরৎ তাহলে WEAVE_NO_ERROR উপাদান মুছে ফেলা না হয়। একইভাবে, অন্য কোন ত্রুটি বাফার মধ্যে কোন উপাদান পরিস্থিতিতে, ইত্যাদি অন্তর্নিহিত WeaveCircularTLVBuffer অপরিবর্তিত রয়ে গেছে।

বিশদ
রিটার্ন মান
WEAVE_NO_ERROR
সাফল্যের উপর।
other
অন্য কোন ত্রুটি কলব্যাক দ্বারা বা পারেন ফিরেTLVReader

ফাইনালাইজবাফার

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
শর্তহীন।

গেটনিউউফার

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 বাফার মধ্যে wraparound করা যেতে পারে। এই ফাংশনটি আমাদের কাছে বৃত্তাকার বাফার বাফারিং মেলে একটি ক্ষমতা প্রদান করেTLVReader সীমাবদ্ধতার। পাঠক সর্বাধিক পড়তে হবে mQueueSize বাফার থেকে বাইট।

বিশদ
পরামিতি
[in] ioReader
TLVReader এই ফাংশন কলিং।
[in,out] outBufStart
ডেটা বাফারের রেফারেন্স। ফিরে আসার পরে, এটি এই বাফারের মধ্যে একটি মান সেট করা হয়।
[out] outBufLen
ফিরে আসার পরে, বাফার থেকে পড়া যেতে পারে এমন একটানা বাইটের সংখ্যায় সেট করুন।
রিটার্ন মান
WEAVE_NO_ERROR
নিঃশর্ত সফল।

গেটকিউ

uint8_t * GetQueue(
  void
) const 

গেটকিউসাইজ

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(
  uint8_t *inBuffer,
  size_t inBufferLength
)

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

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

ওয়েভক্রাইকুলার টিএলভিফার

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

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

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

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

ফাইনালাইজবাফারফান্ট

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

থেকে একটি trampoline 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
)

একটি trampoline জন্য আরও স্থান আনতে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
)

থেকে একটি trampoline WeaveCircularTLVBuffer :: GetNextBuffer

বিশদ
পরামিতি
[in,out] ioReader
TLVReader এই ফাংশন কলিং
[in,out] inBufHandle
একটি হাতল CircularTLVWriter বস্তুর
[in,out] outBufStart
ডেটা বাফারের রেফারেন্স। ফিরে আসার পরে, এটি এই বাফারের মধ্যে একটি মান সেট করা হয়।
[out] outBufLen
ফিরে আসার পরে, বাফার থেকে পড়া যেতে পারে এমন একটানা বাইটের সংখ্যাতে সেট করুন।
রিটার্ন মান
WEAVE_NO_ERROR
নিঃশর্ত সফল।