nl:: বুনা:: TLV:: TLVWriter
#include <src/lib/core/WeaveTLV.h>
Weave TLV ফরম্যাটে ডেটা লেখার জন্য একটি মেমরি দক্ষ এনকোডার প্রদান করে।
সারাংশ
TLVWriter ওয়েভ TLV ডেটার জন্য শুধুমাত্র ফরওয়ার্ড-স্টাইল এনকোডার প্রয়োগ করে। অ্যাপ্লিকেশানগুলি লেখকের Put() পদ্ধতিগুলির একটিতে কল করে, প্রয়োজনীয় হিসাবে সংশ্লিষ্ট ট্যাগ এবং মান তথ্য পাস করে একটি এনকোডিংয়ে ডেটা লেখে। একইভাবে অ্যাপ্লিকেশনগুলি লেখকের OpenContainer() বা EnterContainer() পদ্ধতিতে কল করে TLV কন্টেইনার প্রকার (কাঠামো, অ্যারে বা পাথ) এনকোড করতে পারে।
একটি TLVWriter অবজেক্ট সরাসরি একটি নির্দিষ্ট আউটপুট বাফারে বা এক বা একাধিক প্যাকেটবাফার অবজেক্টের চেইনে ডেটা লিখতে পারে। অতিরিক্তভাবে, অ্যাপ্লিকেশনগুলি তাদের নিজস্ব GetNewBuffer
এবং FinalizeBuffer
ফাংশনগুলিকে একটি নির্বিচারে গন্তব্যে সরাসরি আউটপুট সরবরাহ করতে পারে, যেমন একটি সকেট বা একটি ইভেন্ট সারি৷
উত্তরাধিকার
সরাসরি পরিচিত সাবক্লাস: nl::Weave::TLV::CircularTLVWriterসুরক্ষিত প্রকার | |
---|---|
@72 { | enum |
পাবলিক প্রকার | |
---|---|
FinalizeBufferFunct )(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen) | WEAVE_ERROR(*WEAVE_ERROR (* একটি TLVWriter অবজেক্ট থেকে আউটপুট চূড়ান্ত করার জন্য ব্যবহৃত একটি ফাংশন। |
GetNewBufferFunct )(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen) | WEAVE_ERROR(*WEAVE_ERROR (* একটি ফাংশন যা একটি TLVWriter- এ নতুন আউটপুট বাফার স্পেস সরবরাহ করে। |
পাবলিক বৈশিষ্ট্য | |
---|---|
AppData | void * একটি পয়েন্টার ক্ষেত্র যা অ্যাপ্লিকেশন-নির্দিষ্ট ডেটার জন্য ব্যবহার করা যেতে পারে। |
FinalizeBuffer | একটি ফাংশনের একটি পয়েন্টার যা TLVWriter চূড়ান্ত হলে কল করা হবে। |
GetNewBuffer | একটি ফাংশনের একটি পয়েন্টার যা একটি TLVWriter এ নতুন আউটপুট বাফার স্পেস সরবরাহ করবে। |
ImplicitProfileId | uint32_t ট্যাগের প্রোফাইল আইডি যা অন্তর্নিহিত আকারে এনকোড করা উচিত। |
সুরক্ষিত বৈশিষ্ট্য | |
---|---|
mBufHandle | uintptr_t |
mBufStart | uint8_t * |
mContainerType | |
mLenWritten | uint32_t |
mMaxLen | uint32_t |
mRemainingLen | uint32_t |
mWritePoint | uint8_t * |
পাবলিক ফাংশন | |
---|---|
CloseContainer ( TLVWriter & containerWriter) | OpenContainer() এ কল করার পর একটি TLV কন্টেইনার লেখা সম্পূর্ণ করে। |
ContinuePutBytes (const uint8_t *buf, uint32_t len) | একটি TLV বাইট স্ট্রিং মান এনকোড করে। |
CopyContainer ( TLVReader & container) | |
CopyContainer (uint64_t tag, TLVReader & container) | সদস্য উপাদানগুলির একটি প্রাক-এনকোড করা সেট থেকে একটি TLV কন্টেইনার উপাদান এনকোড করে। |
CopyContainer (uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen) | একটি TLV কন্টেইনার উপাদান এনকোড করে যাতে একটি প্রাক-এনকোডেড কন্টেইনার থেকে সদস্য উপাদান থাকে। |
CopyElement ( TLVReader & reader) | পাঠক বস্তু থেকে লেখকের মধ্যে একটি TLV উপাদান কপি করে। |
CopyElement (uint64_t tag, TLVReader & reader) | |
EndContainer ( TLVType outerContainerType) | একটি TLV কন্টেইনার উপাদানের এনকোডিং সম্পূর্ণ করে। |
Finalize (void) | একটি TLV এনকোডিং লেখা শেষ করুন। |
GetContainerType (void) const | TLVWriter বর্তমানে যে পাত্রে লিখছে তার ধরন প্রদান করে। |
GetLengthWritten (void) | uint32_t লেখক শুরু হওয়ার পর থেকে লেখা মোট বাইট সংখ্যা প্রদান করে। |
Init (uint8_t *buf, uint32_t maxLen) | void একটি একক আউটপুট বাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে। |
Init ( PacketBuffer *buf, uint32_t maxLen) | void একটি একক প্যাকেটবাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে। |
Init ( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers) | void এক বা একাধিক প্যাকেটবাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে। |
InitMalloced (uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen) | void ডায়নামিক বাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে। |
OpenContainer (uint64_t tag, TLVType containerType, TLVWriter & containerWriter) | |
Put (uint64_t tag, int8_t v) | একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে। |
Put (uint64_t tag, int8_t v, bool preserveSize) | একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে। |
Put (uint64_t tag, int16_t v) | |
Put (uint64_t tag, int16_t v, bool preserveSize) | |
Put (uint64_t tag, int32_t v) | |
Put (uint64_t tag, int32_t v, bool preserveSize) | |
Put (uint64_t tag, int64_t v) | |
Put (uint64_t tag, int64_t v, bool preserveSize) | |
Put (uint64_t tag, uint8_t v) | একটি TLV স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে। |
Put (uint64_t tag, uint8_t v, bool preserveSize) | একটি TLV স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে। |
Put (uint64_t tag, uint16_t v) | |
Put (uint64_t tag, uint16_t v, bool preserveSize) | |
Put (uint64_t tag, uint32_t v) | |
Put (uint64_t tag, uint32_t v, bool preserveSize) | |
Put (uint64_t tag, uint64_t v) | |
Put (uint64_t tag, uint64_t v, bool preserveSize) | |
Put (uint64_t tag, float v) | |
Put (uint64_t tag, double v) | একটি TLV ফ্লোটিং পয়েন্ট মান এনকোড করে। |
PutBoolean (uint64_t tag, bool v) | একটি TLV বুলিয়ান মান এনকোড করে। |
PutBytes (uint64_t tag, const uint8_t *buf, uint32_t len) | একটি TLV বাইট স্ট্রিং মান এনকোড করে। |
PutNull (uint64_t tag) | একটি TLV নাল মান এনকোড করে। |
PutPreEncodedContainer (uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen) | সদস্য উপাদানগুলির একটি প্রাক-এনকোড করা সেট থেকে একটি TLV কন্টেইনার উপাদান এনকোড করে। |
PutString (uint64_t tag, const char *buf) | একটি TLV UTF8 স্ট্রিং মান এনকোড করে। |
PutString (uint64_t tag, const char *buf, uint32_t len) | একটি TLV UTF8 স্ট্রিং মান এনকোড করে। |
PutStringF (uint64_t tag, const char *fmt, ...) | TLV উপাদানে বিন্যাস অনুযায়ী স্ট্রিং আউটপুট বিন্যাস এনকোড করুন। |
StartContainer (uint64_t tag, TLVType containerType, TLVType & outerContainerType) | একটি নতুন TLV কন্টেইনার উপাদান এনকোডিং শুরু করে। |
StartPutBytes (uint64_t tag, uint32_t totalLen) | একাধিক খণ্ডে একটি TLV বাইট স্ট্রিং এনকোড করে। |
VPutStringF (uint64_t tag, const char *fmt, va_list ap) | TLV উপাদানে বিন্যাস অনুযায়ী স্ট্রিং আউটপুট বিন্যাস এনকোড করুন। |
পাবলিক স্ট্যাটিক ফাংশন | |
---|---|
FinalizePacketBuffer ( TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen) | প্যাকেটবাফারের একটি চেইনে লেখার জন্য একটি TLVWriter FinalizeBuffer ফাংশনের বাস্তবায়ন। |
GetNewBuffer_Malloced ( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen) | একটি ডায়নামিক বাফারে লেখার জন্য একটি TLVWriter GetNewBuffer ফাংশনের বাস্তবায়ন। |
GetNewPacketBuffer ( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen) | প্যাকেটবাফারের একটি চেইনে লেখার জন্য একটি TLVWriter GetNewBuffer ফাংশনের বাস্তবায়ন। |
সুরক্ষিত ফাংশন | |
---|---|
IsCloseContainerReserved (void) const | bool কন্টেইনার শুরু/খোলার সময় ক্লোজকন্টেইনার চিহ্নের জন্য কন্টেইনারটি স্থান সংরক্ষণ করবে কিনা তা নির্ধারণ করুন। |
IsContainerOpen (void) const | bool |
SetCloseContainerReserved (bool aCloseContainerReserved) | void কন্টেইনারটি শুরু/খোলার সময় ক্লোজকন্টেইনার চিহ্নের জন্য কন্টেইনারটি স্পেস রিজার্ভ করবে কিনা তা সেট করুন। |
SetContainerOpen (bool aContainerOpen) | void |
WriteData (const uint8_t *p, uint32_t len) | |
WriteElementHead (TLVElementType elemType, uint64_t tag, uint64_t lenOrVal) | |
WriteElementWithData ( TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen) |
সুরক্ষিত প্রকার
@৭২
@72
পাবলিক প্রকার
চূড়ান্ত করুনBufferFunct
WEAVE_ERROR(* FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen)
একটি TLVWriter অবজেক্ট থেকে আউটপুট চূড়ান্ত করার জন্য ব্যবহৃত একটি ফাংশন।
যখন একটি TLVWriter এর Finalize() মেথড কল করা হয় তখন এই ধরনের ফাংশন বলা হয়। ফাংশনটি লেখক অবজেক্টের আউটপুট গ্রহণের সাথে সম্পর্কিত যেকোন প্রয়োজনীয় পরিচ্ছন্নতা বা চূড়ান্তকরণ সম্পাদন করবে বলে আশা করা হচ্ছে। এর উদাহরণগুলির মধ্যে এনকোডিংয়ের চূড়ান্ত দৈর্ঘ্য রেকর্ড করা বা একটি ফাইল বর্ণনাকারী বন্ধ করার মতো জিনিসগুলি অন্তর্ভুক্ত রয়েছে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
GetNewBufferFunct
WEAVE_ERROR(* GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)
একটি ফাংশন যা একটি TLVWriter- এ নতুন আউটপুট বাফার স্পেস সরবরাহ করে।
এই ধরনের ফাংশনগুলি একটি TLVWriter-কে লেখার জন্য নতুন বাফার স্পেস প্রস্তুত করতে ব্যবহৃত হয়। কল করা হলে, ফাংশনটি একটি মেমরি অবস্থানে একটি পয়েন্টার ফেরত দেবে বলে আশা করা হয় যেখানে একটি সংশ্লিষ্ট সর্বোচ্চ দৈর্ঘ্য সহ নতুন ডেটা লেখা উচিত। ফাংশনটি ডেটা ধরে রাখার জন্য একটি নতুন বাফার বরাদ্দ করে বা বিদ্যমান বাফার থেকে পূর্বে লিখিত ডেটা সাফ করে লেখার স্থান সরবরাহ করতে পারে।
বিস্তারিত | |||||||||
---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||
রিটার্ন মান |
|
পাবলিক বৈশিষ্ট্য
অ্যাপডেটা
void * AppData
একটি পয়েন্টার ক্ষেত্র যা অ্যাপ্লিকেশন-নির্দিষ্ট ডেটার জন্য ব্যবহার করা যেতে পারে।
বাফার চূড়ান্ত করুন
FinalizeBufferFunct FinalizeBuffer
একটি ফাংশনের একটি পয়েন্টার যা TLVWriter চূড়ান্ত হলে কল করা হবে।
একটি TLVWriter অবজেক্ট FinalizeBuffer ফাংশনকে কল করবে যখনই এর Finalize() পদ্ধতি কল করা হবে। অ্যাপ্লিকেশনগুলি Finalize() কল করার আগে যেকোনো সময়ে ফাংশন পয়েন্টার সেট করতে পারে। ডিফল্টরূপে পয়েন্টারটি NULL-এ সেট করা থাকে, যার ফলে Finalize() পদ্ধতিটি ফাংশনটিকে কল করা থেকে বিরত থাকে।
একটি FinalizeBuffer ফাংশন বাস্তবায়নের অতিরিক্ত তথ্যের জন্য FinalizeBufferFunct প্রকারের সংজ্ঞা দেখুন।
GetNewBuffer
GetNewBufferFunct GetNewBuffer
একটি ফাংশনের একটি পয়েন্টার যা একটি TLVWriter এ নতুন আউটপুট বাফার স্পেস সরবরাহ করবে।
একটি TLVWriter অবজেক্ট GetNewBuffer ফাংশনকে কল করবে যখনই বর্তমান আউটপুট বাফারের আকার অতিক্রম করে এমন ডেটা লেখার চেষ্টা করা হয়। যদি NULL (ডিফল্ট মান) তে সেট করা হয়, তাহলে লেখক একটি WEAVE_ERROR_NO_MEMORY ফেরত দেবেন যদি আউটপুট ডেটা বর্তমান বাফারকে ওভারফ্লো করে।
GetNewBuffer যেকোন সময় একটি অ্যাপ্লিকেশন দ্বারা সেট করা যেতে পারে, কিন্তু সাধারণত যখন লেখক শুরু হয় তখন সেট করা হয়।
একটি GetNewBuffer ফাংশন বাস্তবায়নের অতিরিক্ত তথ্যের জন্য GetNewBufferFunct প্রকারের সংজ্ঞা দেখুন।
অন্তর্নিহিত প্রোফাইল আইডি
uint32_t ImplicitProfileId
ট্যাগের প্রোফাইল আইডি যা অন্তর্নিহিত আকারে এনকোড করা উচিত।
যখন একজন লেখককে একটি নতুন উপাদান এনকোড করতে বলা হয়, যদি নতুন উপাদানের সাথে যুক্ত ট্যাগের প্রোফাইল আইডি ImplicitProfileId
সদস্যের মানের সাথে মেলে, লেখক প্রক্রিয়ায় প্রোফাইল আইডি বাদ দিয়ে ট্যাগটিকে অন্তর্নিহিত আকারে এনকোড করবেন।
ডিফল্টরূপে, ImplicitProfileId
বৈশিষ্ট্যটি kProfileIdNotSpecified-এ সেট করা থাকে, যা লেখককে নির্দেশ দেয় যে অন্তর্নিহিতভাবে এনকোড করা ট্যাগগুলি নির্গত না করতে। এনকোডিংয়ের বর্তমান বিন্দু থেকে শুরু করে অন্তর্নিহিত আকারে এনকোডিং ট্যাগগুলি সক্ষম করতে অ্যাপ্লিকেশনগুলি যে কোনও সময় ImplicitProfileId
সেট করতে পারে৷ সেট করার জন্য উপযুক্ত প্রোফাইল আইডি সাধারণত অ্যাপ্লিকেশন বা প্রোটোকলের প্রেক্ষাপটের উপর নির্ভর করে।
সুরক্ষিত বৈশিষ্ট্য
mBufHandle
uintptr_t mBufHandle
mBufStart
uint8_t * mBufStart
mContainerType
TLVType mContainerType
mLen লিখিত
uint32_t mLenWritten
mMaxLen
uint32_t mMaxLen
mRemainingLen
uint32_t mRemainingLen
mWritePoint
uint8_t * mWritePoint
পাবলিক ফাংশন
ক্লোজ কনটেইনার
WEAVE_ERROR CloseContainer( TLVWriter & containerWriter )
OpenContainer() এ কল করার পর একটি TLV কন্টেইনার লেখা সম্পূর্ণ করে।
OpenContainer() এ কল করার পর CloseContainer() পদ্ধতিটি একটি প্যারেন্ট TLVWriter অবজেক্টের অবস্থা পুনরুদ্ধার করে। OpenContainer() এপ্লিকেশনের প্রতি কলের জন্য অবশ্যই CloseContainer() এ একটি অনুরূপ কল করতে হবে, উভয় পদ্ধতিতে একই কন্টেইনার লেখকের একটি রেফারেন্স পাস করতে হবে।
যখন CloseContainer() ফিরে আসে, তখন অ্যাপ্লিকেশনগুলি ধারক উপাদানের পরে প্রদর্শিত অতিরিক্ত TLV উপাদানগুলি লিখতে মূল লেখককে ব্যবহার করা চালিয়ে যেতে পারে। এই মুহুর্তে সরবরাহকৃত কন্টেইনার লেখককে 'ডি-ইনিশিয়ালাইজড' হিসাবে বিবেচনা করা উচিত এবং পুনরায় আরম্ভ না করে ব্যবহার করা উচিত নয়।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটবাইট চালিয়ে যান
WEAVE_ERROR ContinuePutBytes( const uint8_t *buf, uint32_t len )
একটি TLV বাইট স্ট্রিং মান এনকোড করে।
এটি StartPutBytes এর সাথে ব্যবহার করা উচিত।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
কপি কন্টেইনার
WEAVE_ERROR CopyContainer( TLVReader & container )
TLVReader অবজেক্ট থেকে একটি TLV কন্টেইনার উপাদান কপি করে।
CopyContainer() একটি TLVReader অবজেক্টের বর্তমান অবস্থানে অবস্থিত একটি প্রাক-এনকোডেড কন্টেইনার উপাদান অনুলিপি করে একটি নতুন TLV কন্টেইনার উপাদান এনকোড করে। পদ্ধতিটি একটি কলে নতুন কন্টেইনার উপাদানের সম্পূর্ণতা লেখে, উৎস এনকোডিং থেকে কন্টেইনারের ধরন, ট্যাগ এবং উপাদানগুলি অনুলিপি করে। যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।
বিস্তারিত | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||||
রিটার্ন মান |
|
কপি কন্টেইনার
WEAVE_ERROR CopyContainer( uint64_t tag, TLVReader & container )
সদস্য উপাদানগুলির একটি প্রাক-এনকোড করা সেট থেকে একটি TLV কন্টেইনার উপাদান এনকোড করে।
CopyContainer() পদ্ধতিটি একটি নতুন TLV কন্টেইনার উপাদান (একটি কাঠামো, অ্যারে বা পথ) এনকোড করে যাতে একটি TLVReader অবজেক্ট থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট থাকে। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত পাঠক বস্তুটি একটি TLV কন্টেইনার উপাদানে অবস্থান করা হবে বলে আশা করা হয়। নতুন এনকোড করা ধারকটিতে ইনপুট কন্টেইনারের মতো একই প্রকার এবং সদস্য থাকবে৷ নতুন ধারকটির জন্য ট্যাগটি একটি ইনপুট পরামিতি হিসাবে নির্দিষ্ট করা হয়েছে৷
যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।
বিস্তারিত | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||||
রিটার্ন মান |
|
কপি কন্টেইনার
WEAVE_ERROR CopyContainer( uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen )
একটি TLV কন্টেইনার উপাদান এনকোড করে যাতে একটি প্রাক-এনকোডেড কন্টেইনার থেকে সদস্য উপাদান থাকে।
CopyContainer() পদ্ধতিটি একটি নতুন TLV কন্টেইনার উপাদান (একটি কাঠামো, অ্যারে বা পাথ) এনকোড করে যাতে একটি সরবরাহকৃত প্রাক-এনকোড করা কন্টেইনারের বিষয়বস্তু থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট থাকে। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত ইনপুট বাফারের ডেটা একটি TLV কন্টেইনার উপাদান হিসাবে পার্স করা হয় এবং একটি নতুন ধারক লেখা হয় যাতে ইনপুট ধারক হিসাবে একই প্রকার এবং সদস্য থাকে। নতুন ধারকটির জন্য ট্যাগটি একটি ইনপুট পরামিতি হিসাবে নির্দিষ্ট করা হয়েছে৷
যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।
বিস্তারিত | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||
রিটার্ন মান |
|
কপি এলিমেন্ট
WEAVE_ERROR CopyElement( TLVReader & reader )
পাঠক বস্তু থেকে লেখকের মধ্যে একটি TLV উপাদান কপি করে।
CopyElement() পদ্ধতিটি একটি নতুন TLV উপাদানকে এনকোড করে যার প্রকার, ট্যাগ এবং মান একটি TLVReader অবজেক্ট থেকে নেওয়া হয়। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত পাঠক বস্তুটি উৎস TLV উপাদানে অবস্থান করা হবে বলে আশা করা হয়। নতুন এনকোড করা উপাদানটিতে ইনপুট কন্টেইনারের মতো একই প্রকার, ট্যাগ এবং বিষয়বস্তু থাকবে। যদি সরবরাহ করা উপাদানটি একটি TLV কন্টেইনার (কাঠামো, অ্যারে বা পথ) হয়, তাহলে ধারকটির সম্পূর্ণ বিষয়বস্তু অনুলিপি করা হবে।
বিস্তারিত | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||||||
রিটার্ন মান |
|
কপি এলিমেন্ট
WEAVE_ERROR CopyElement( uint64_t tag, TLVReader & reader )
শেষ কন্টেইনার
WEAVE_ERROR EndContainer( TLVType outerContainerType )
একটি TLV কন্টেইনার উপাদানের এনকোডিং সম্পূর্ণ করে।
EndContainer() পদ্ধতিটি একটি TLV কন্টেইনার উপাদানের এনকোডিং সম্পূর্ণ করে এবং StartContainer() এ পূর্বে কল করার পরে একটি TLVWrite অবজেক্টের অবস্থা পুনরুদ্ধার করে। StartContainer() অ্যাপ্লিকেশানগুলিতে প্রতিটি কলের জন্য অবশ্যই EndContainer() -এ একটি সংশ্লিষ্ট কল করতে হবে, StartContainer() কল দ্বারা প্রত্যাবর্তিত TLVType মান পাস করে। যখন EndContainer() ফিরে আসে, লেখক অবজেক্টটি অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে যা কন্টেইনার উপাদান অনুসরণ করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
চূড়ান্ত করা
WEAVE_ERROR Finalize( void )
একটি TLV এনকোডিং লেখা শেষ করুন।
Finalize() পদ্ধতি অন্তর্নিহিত আউটপুট বাফারে একটি TLV এনকোডিং লেখার প্রক্রিয়া সম্পন্ন করে। পদ্ধতিটি বাফারের বিষয়বস্তু ব্যবহার করার আগে অ্যাপ্লিকেশন দ্বারা কল করা আবশ্যক। Finalize() শুধুমাত্র তখনই কল করা যাবে যখন বর্তমান লেখকের জন্য কোন কন্টেইনার রাইটার খোলা থাকবে না। (দেখুন OpenContainer()
)।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
রিটার্ন মান |
|
GetContainerType
TLVType GetContainerType( void ) const
TLVWriter বর্তমানে যে পাত্রে লিখছে তার ধরন প্রদান করে।
GetContainerType() পদ্ধতি TLV কন্টেইনারের ধরন প্রদান করে যার মধ্যে TLVWriter বর্তমানে লিখছে। যদি TLVWriter একটি পাত্রের মধ্যে উপাদান না লিখছে (যেমন যদি একটি এনকোডিংয়ের বাইরের-সবচেয়ে স্তরে লেখা হয়) পদ্ধতিটি kTLVType_NotSpecified প্রদান করে।
বিস্তারিত | |
---|---|
রিটার্নস | বর্তমান কন্টেইনারের TLVType, অথবা kTLVType_NotSpecified যদি TLVWriter একটি কন্টেইনারের মধ্যে উপাদান না লিখছে। |
GetLengthWritten
uint32_t GetLengthWritten( void )
লেখক শুরু হওয়ার পর থেকে লেখা মোট বাইট সংখ্যা প্রদান করে।
বিস্তারিত | |
---|---|
রিটার্নস | লেখক শুরু হওয়ার পর থেকে লেখা মোট বাইট সংখ্যা। |
ইনিট
void Init( uint8_t *buf, uint32_t maxLen )
ইনিট
void Init( PacketBuffer *buf, uint32_t maxLen )
ইনিট
void Init( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers )
এক বা একাধিক প্যাকেটবাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।
নির্দিষ্ট বাফারে বিদ্যমান ডেটার শেষ বাইটের পরপরই লেখা শুরু হয়। যদি allowDiscontiguousBuffers
সত্য হয়, তবে অতিরিক্ত প্যাকেটবাফারগুলি বরাদ্দ করা হবে এবং সরবরাহ করা বাফারে শৃঙ্খলাবদ্ধ করা হবে যাতে লেখা ডেটার পরিমাণ মিটমাট করা যায়। যদি নির্দিষ্ট আউটপুট বাফারটি ইতিমধ্যেই বাফারগুলির একটি চেইনের প্রধান হয়ে থাকে, তবে নতুন বাফারগুলি বরাদ্দ করার আগে আউটপুটটি চেইনের পরবর্তী বাফারগুলিতে লেখা হবে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
InitMalloced
void InitMalloced( uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen )
ডায়নামিক বাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
|
ওপেন কনটেইনার
WEAVE_ERROR OpenContainer( uint64_t tag, TLVType containerType, TLVWriter & containerWriter )
একটি TLV কন্টেইনার উপাদানের সদস্যদের লেখার জন্য একটি নতুন TLVWriter অবজেক্ট শুরু করে।
OpenContainer() পদ্ধতিটি একটি এনকোডিং-এ TLV কন্টেইনার উপাদান (কাঠামো, অ্যারে বা পাথ) লিখতে ব্যবহৃত হয়। পদ্ধতিটি নতুন কন্টেইনারের ধরন এবং ট্যাগ (যদি থাকে) এবং একটি নতুন লেখক বস্তুর ( কন্টেইনার লেখক ) একটি রেফারেন্স নেয় যা কন্টেইনারের উপাদানগুলি লেখার উদ্দেশ্যে আরম্ভ করা হবে। অ্যাপ্লিকেশানগুলি কন্টেইনার রাইটার ব্যবহার করে নতুন কন্টেইনারের সদস্যদের লেখে এবং তারপর কন্টেইনার এনকোডিং সম্পূর্ণ করতে CloseContainer() এ কল করে।
কন্টেইনার লেখক খোলা থাকাকালীন, অ্যাপ্লিকেশনগুলিকে অবশ্যই কল করা বা অন্যথায় মূল লেখকের অবস্থা পরিবর্তন করা উচিত নয়।
ধারক লেখক মূল লেখকের কাছ থেকে বিভিন্ন কনফিগারেশন বৈশিষ্ট্য উত্তরাধিকার সূত্রে প্রাপ্ত। এগুলো হলঃ
- অন্তর্নিহিত প্রোফাইল আইডি (ImplicitProfileId)
- অ্যাপ্লিকেশন ডেটা পয়েন্টার (AppData)
- GetNewBuffer এবং FinalizeBuffer ফাংশন পয়েন্টার
বিস্তারিত | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||
রিটার্ন মান |
|
রাখুন
WEAVE_ERROR Put( uint64_t tag, int8_t v )
একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে।
এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
রাখুন
WEAVE_ERROR Put( uint64_t tag, int8_t v, bool preserveSize )
একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে।
এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
রাখুন
WEAVE_ERROR Put( uint64_t tag, int16_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, int16_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, int32_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, int32_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, int64_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, int64_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint8_t v )
একটি TLV স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে।
এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint8_t v, bool preserveSize )
একটি TLV স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে।
এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint16_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint16_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint32_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint32_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint64_t v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, uint64_t v, bool preserveSize )
রাখুন
WEAVE_ERROR Put( uint64_t tag, float v )
রাখুন
WEAVE_ERROR Put( uint64_t tag, double v )
একটি TLV ফ্লোটিং পয়েন্ট মান এনকোড করে।
এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি শুধুমাত্র কোন যুক্তি(গুলি) গ্রহণ করে তা উপরের ফাংশন থেকে আলাদা।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটবুলিয়ান
WEAVE_ERROR PutBoolean( uint64_t tag, bool v )
একটি TLV বুলিয়ান মান এনকোড করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটবাইটস
WEAVE_ERROR PutBytes( uint64_t tag, const uint8_t *buf, uint32_t len )
একটি TLV বাইট স্ট্রিং মান এনকোড করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
PutNull
WEAVE_ERROR PutNull( uint64_t tag )
একটি TLV নাল মান এনকোড করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটপ্রেনকোডডকন্টেনার
WEAVE_ERROR PutPreEncodedContainer( uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen )
সদস্য উপাদানগুলির একটি প্রাক-এনকোডেড সেট থেকে একটি টিএলভি ধারক উপাদান এনকোড করে।
পুটপ্রেনকোডডকন্টাইনার () পদ্ধতিটি একটি নতুন টিএলভি ধারক উপাদান (একটি কাঠামো, অ্যারে বা পাথ) এনকোড করে একটি প্রাক-এনকোডেড বাফার থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট সমন্বিত। ইনপুট বাফারটিতে শূন্য বা আরও বেশি পূর্ণ-এনকোডড টিএলভি উপাদান রয়েছে বলে আশা করা হচ্ছে, নির্দিষ্ট ধারক ধরণের সাথে সম্পর্কিত নিয়মগুলির সাথে সামঞ্জস্যপূর্ণ ট্যাগগুলি সহ (যেমন কাঠামোর সদস্যদের অবশ্যই ট্যাগ থাকতে হবে, যখন অ্যারে সদস্যদের অবশ্যই তা করতে হবে না)।
পদ্ধতিটি একটি কলটিতে ধারক উপাদানটির সম্পূর্ণতা এনকোড করে। যখন পুটপ্রেনকোডডকন্টাইনার () রিটার্ন করে, লেখক অবজেক্টটি ধারক উপাদান অনুসরণ করে অতিরিক্ত টিএলভি উপাদান লিখতে ব্যবহার করা যেতে পারে।
বিস্তারিত | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||
রিটার্ন মান |
|
পুটস্ট্রিং
WEAVE_ERROR PutString( uint64_t tag, const char *buf )
একটি টিএলভি ইউটিএফ 8 স্ট্রিং মান এনকোড করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটস্ট্রিং
WEAVE_ERROR PutString( uint64_t tag, const char *buf, uint32_t len )
একটি টিএলভি ইউটিএফ 8 স্ট্রিং মান এনকোড করে।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
পুটস্ট্রিংফ
WEAVE_ERROR PutStringF( uint64_t tag, const char *fmt, ... )
টিএলভি উপাদানটির ফর্ম্যাট অনুসারে স্ট্রিং আউটপুট ফর্ম্যাটটি এনকোড করুন।
পুটস্ট্রিংএফ হ'ল একটি স্প্রিন্টফের একটি এনালগ যেখানে আউটপুটটি একটি টিএলভি উপাদানগুলিতে একটি চরিত্র বাফারের বিপরীতে সংরক্ষণ করা হয়। যখন প্রসারিত প্রিন্টফ কার্যকারিতা উপলব্ধ থাকে, ফাংশনটি ফলাফলের স্ট্রিংটিকে একটি বিচ্ছিন্ন অন্তর্নিহিত স্টোরেজে আউটপুট করতে সক্ষম হয়। বাস্তবায়ন নিম্নলিখিত প্রিন্টফ বর্ধনকে সমর্থন করে:
প্ল্যাটফর্মটি একটি কলব্যাক-ভিত্তিক vcbprintf
সরবরাহ করে যা পুটচারের জায়গায় কাস্টম কলব্যাক কল করার ক্ষমতা সরবরাহ করে।
প্ল্যাটফর্মটি vsnprintf_ex
নামে পরিচিত vsnprintf
এর একটি বৈকল্পিক সরবরাহ করে, যা vsnprintf এর মতো আচরণ করে তবে এটির আউটপুটটির প্রথম n
অক্ষর বাদ দেওয়ার বিধান রয়েছে।
নোট করুন যে কলব্যাক-ভিত্তিক ফাংশনটি সহজতম হতে পারে এবং কোডের সর্বনিম্ন পরিমাণ ব্যবহার করতে পারে, তবে vsprintf_ex
বিভিন্ন ধরণের ফাংশন কম স্ট্যাক গ্রহণ করবে।
যদি উপরের কোনওটিই উপলভ্য না হয় তবে প্ল্যাটফর্ম malloc
সরবরাহ করে ফাংশনটি আউটপুট ধরে রাখতে একটি অস্থায়ী বাফার বরাদ্দ করবে। প্ল্যাটফর্মটি যখন প্রিন্টফ পরিবার বা ম্যালোককে বাড়িয়ে দেয় না, তখন আউটপুটটি এমনভাবে কাটা হয় যে এটি বর্তমান টিএলভি স্টোরেজে অবিচ্ছিন্ন অবস্থায় ফিট করে
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
স্টার্টকন্টাইনার
WEAVE_ERROR StartContainer( uint64_t tag, TLVType containerType, TLVType & outerContainerType )
একটি নতুন টিএলভি ধারক উপাদান এনকোডিং শুরু করে।
স্টার্টকন্টাইনার () পদ্ধতিটি এনকোডিংয়ে টিএলভি ধারক উপাদানগুলি (কাঠামো, অ্যারে বা পাথ) লিখতে ব্যবহৃত হয়। পদ্ধতিটি নতুন ধারকটির ধরণ এবং ট্যাগ (যদি থাকে) এবং একটি টিএলভি টাইপ মানের রেফারেন্স নেয় যা লেখকের বর্তমান প্রসঙ্গটি সংরক্ষণ করতে ব্যবহৃত হবে যখন এটি ধারকটি লেখার জন্য ব্যবহৃত হচ্ছে।
একবার স্টার্টকন্টাইনার () পদ্ধতিটি ফিরে আসার পরে, অ্যাপ্লিকেশনটির ধারকটির উপাদানগুলি লেখার জন্য বর্তমান টিএলভিওরাইটার অবজেক্টটি ব্যবহার করা উচিত। শেষ করার সময়, অ্যাপ্লিকেশনটি অবশ্যই ধারকটির এনকোডিং শেষ করতে এন্ডকন্টাইনার () পদ্ধতিতে কল করতে হবে।
বিস্তারিত | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||||
রিটার্ন মান |
|
স্টার্টপুটবাইটস
WEAVE_ERROR StartPutBytes( uint64_t tag, uint32_t totalLen )
একাধিক খণ্ডগুলিতে একটি টিএলভি বাইট স্ট্রিং এনকোড করে।
এটি চালিয়ে যাওয়া উচিত।
বিস্তারিত | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||||||||
রিটার্ন মান |
|
Vputstringf
WEAVE_ERROR VPutStringF( uint64_t tag, const char *fmt, va_list ap )
টিএলভি উপাদানটির ফর্ম্যাট অনুসারে স্ট্রিং আউটপুট ফর্ম্যাটটি এনকোড করুন।
পুটস্ট্রিংএফ হ'ল একটি স্প্রিন্টফের একটি এনালগ যেখানে আউটপুটটি একটি টিএলভি উপাদানগুলিতে একটি চরিত্র বাফারের বিপরীতে সংরক্ষণ করা হয়। যখন প্রসারিত প্রিন্টফ কার্যকারিতা উপলব্ধ থাকে, ফাংশনটি ফলাফলের স্ট্রিংটিকে একটি বিচ্ছিন্ন অন্তর্নিহিত স্টোরেজে আউটপুট করতে সক্ষম হয়। বাস্তবায়ন নিম্নলিখিত প্রিন্টফ বর্ধনকে সমর্থন করে:
প্ল্যাটফর্মটি একটি কলব্যাক-ভিত্তিক vcbprintf
সরবরাহ করে যা পুটচারের জায়গায় কাস্টম কলব্যাক কল করার ক্ষমতা সরবরাহ করে।
প্ল্যাটফর্মটি vsnprintf_ex
নামে পরিচিত vsnprintf
এর একটি বৈকল্পিক সরবরাহ করে, যা vsnprintf এর মতো আচরণ করে তবে এটির আউটপুটটির প্রথম n
অক্ষর বাদ দেওয়ার বিধান রয়েছে।
নোট করুন যে কলব্যাক-ভিত্তিক ফাংশনটি সহজতম হতে পারে এবং কোডের সর্বনিম্ন পরিমাণ ব্যবহার করতে পারে, তবে vsprintf_ex
বিভিন্ন ধরণের ফাংশন কম স্ট্যাক গ্রহণ করবে।
যদি উপরের কোনওটিই উপলভ্য না হয় তবে প্ল্যাটফর্ম malloc
সরবরাহ করে ফাংশনটি আউটপুট ধরে রাখতে একটি অস্থায়ী বাফার বরাদ্দ করবে। প্ল্যাটফর্মটি যখন প্রিন্টফ পরিবার বা ম্যালোককে বাড়িয়ে দেয় না, তখন আউটপুটটি এমনভাবে কাটা হয় যে এটি বর্তমান টিএলভি স্টোরেজে অবিচ্ছিন্ন অবস্থায় ফিট করে
বিস্তারিত | |||||||
---|---|---|---|---|---|---|---|
পরামিতি |
| ||||||
রিটার্ন মান |
|
পাবলিক স্ট্যাটিক ফাংশন
FINIGEPACKETBUFFER
WEAVE_ERROR FinalizePacketBuffer( TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen )
প্যাকেটবফারদের একটি শৃঙ্খলে লেখার জন্য একটি টিএলভিওরাইটার ফাইনালাইজবফার ফাংশনটির একটি বাস্তবায়ন।
ফাইনালপ্যাকটবফার () ফাংশনটি প্যাকেটবফারদের একটি শৃঙ্খলে লিখতে টিএলভিওরাইটার ব্যবহার করার সময় প্রয়োজনীয় চূড়ান্তকরণ সম্পাদন করে। ফাংশনটি getnewpacketbuffer () ফাংশনের সাথে একত্রে ব্যবহার করার জন্য ডিজাইন করা হয়েছে।
ফাইনালাইপ্যাকটবফার () ফাংশনের এপিআইয়ের অতিরিক্ত তথ্যের জন্য ফাইনালাইজবফারফ্যাক্ট টাইপ সংজ্ঞাটি দেখুন।
Getnewbuffer_malloced
WEAVE_ERROR GetNewBuffer_Malloced( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
একটি গতিশীল বাফারে লেখার জন্য একটি টিএলভিওরাইটার getnewbuffer ফাংশনের একটি বাস্তবায়ন।
Getnewbuffer_malloced () ফাংশন এনকোডিং সংরক্ষণের জন্য প্রয়োজনীয় হিসাবে অন্তর্নিহিত গতিশীল বাফারের আকার দ্বিগুণ করে একটি টিএলভিওরাইটারকে নতুন আউটপুট স্পেস সরবরাহ করে। ফাংশনটি টিএলভিওরাইটার getnewbuffer ফাংশন পয়েন্টারকে বরাদ্দ করার জন্য ডিজাইন করা হয়েছে।
Getnewbuffer_maloloced () ফাংশনের এপিআই সম্পর্কিত অতিরিক্ত তথ্যের জন্য getnewbufferfunct টাইপ সংজ্ঞাটি দেখুন।
Getnewpacketbuffer
WEAVE_ERROR GetNewPacketBuffer( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
প্যাকেটবফারদের একটি শৃঙ্খলে লেখার জন্য একটি টিএলভিওরাইটার getnewbuffer ফাংশনের একটি বাস্তবায়ন।
Getnewpacketbuffer () ফাংশনটি এনকোডিং সংরক্ষণের জন্য প্রয়োজনীয় হিসাবে এক বা একাধিক প্যাকেটবফারগুলির একটি চেইন বরাদ্দ করে কোনও টিএলভিওয়েটরকে নতুন আউটপুট স্পেস সরবরাহ করে। ফাংশনটি টিএলভিওরাইটার getnewbuffer ফাংশন পয়েন্টারকে বরাদ্দ করার জন্য ডিজাইন করা হয়েছে।
নোট করুন যে কোনও টিএলভিওরাইটারের সাথে getnewpacketbuffer ব্যবহার করার সময়, বাফার চেইন চূড়ান্ত করতে সংশ্লিষ্ট ফাইনালপ্যাকটবফার () ফাংশন (বা একটি সমতুল্য) ব্যবহার করা উচিত।
Getnewpacketbuffer () ফাংশনের এপিআই সম্পর্কিত অতিরিক্ত তথ্যের জন্য getnewbufferfunct টাইপ সংজ্ঞা দেখুন।
সুরক্ষিত ফাংশন
Isclosecontainererserved
bool IsCloseContainerReserved( void ) const
ধারকটি শুরু / খোলার বিন্দুতে কনটেইনারটি ক্লোজকন্টেনার প্রতীকটির জন্য স্থান সংরক্ষণ করা উচিত কিনা তা নির্ধারণ করুন।
ইসকন্টেনারোপেন
bool IsContainerOpen( void ) const
সেটক্লোসকন্টাইনার সার্ভারড
void SetCloseContainerReserved( bool aCloseContainerReserved )
ধারকটি শুরু / খোলার বিন্দুতে কনটেইনারটি ক্লোজকন্টেনার প্রতীকটির জন্য স্থান সংরক্ষণ করা উচিত কিনা তা সেট করুন।
সেটকন্টেনারোপেন
void SetContainerOpen( bool aContainerOpen )
ডাটা লিখুন
WEAVE_ERROR WriteData( const uint8_t *p, uint32_t len )
রাইটিংলিমেন্টহেড
WEAVE_ERROR WriteElementHead( TLVElementType elemType, uint64_t tag, uint64_t lenOrVal )
রাইটিংলিমেন্টউইথডাটা
WEAVE_ERROR WriteElementWithData( TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen )