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 {
kEndOfContainerMarkerSize = 1
}
enum

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

FinalizeBufferFunct )(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen) WEAVE_ERROR(*
একটি TLVWriter অবজেক্ট থেকে আউটপুট চূড়ান্ত করার জন্য ব্যবহৃত একটি ফাংশন।
GetNewBufferFunct )(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen) 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)
TLVReader অবজেক্ট থেকে একটি TLV কন্টেইনার উপাদান কপি করে।
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)
একটি TLV কন্টেইনার উপাদানের সদস্যদের লেখার জন্য একটি নতুন TLVWriter অবজেক্ট শুরু করে।
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() মেথড কল করা হয় তখন এই ধরনের ফাংশন বলা হয়। ফাংশনটি লেখক অবজেক্টের আউটপুট গ্রহণের সাথে সম্পর্কিত যেকোন প্রয়োজনীয় পরিচ্ছন্নতা বা চূড়ান্তকরণ সম্পাদন করবে বলে আশা করা হচ্ছে। এর উদাহরণগুলির মধ্যে এনকোডিংয়ের চূড়ান্ত দৈর্ঘ্য রেকর্ড করা বা একটি ফাইল বর্ণনাকারী বন্ধ করার মতো জিনিসগুলি অন্তর্ভুক্ত রয়েছে।

বিস্তারিত
পরামিতি
[in] writer
TLVWriter অবজেক্টের একটি রেফারেন্স যা চূড়ান্ত করা হচ্ছে।
[in,out] bufHandle
একটি uintptr_t প্রসঙ্গ মান যা পূর্ববর্তী কল দ্বারা GetNewBuffer ফাংশনে সেট করা হয়েছিল।
[in,out] bufStart
বর্তমান (এবং চূড়ান্ত) আউটপুট বাফারের শুরুতে একটি পয়েন্টার।
[in,out] bufLen
bufStart দ্বারা নির্দেশিত বাফারে থাকা বাইটের সংখ্যা।
রিটার্ন মান
WEAVE_NO_ERROR
যদি চূড়ান্তকরণ সফল হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি কোড যা নির্দেশ করে যে চূড়ান্তকরণের সময় একটি ত্রুটি ঘটেছে।

GetNewBufferFunct

WEAVE_ERROR(* GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)

একটি ফাংশন যা একটি TLVWriter- এ নতুন আউটপুট বাফার স্পেস সরবরাহ করে।

এই ধরনের ফাংশনগুলি একটি TLVWriter-কে লেখার জন্য নতুন বাফার স্পেস প্রস্তুত করতে ব্যবহৃত হয়। কল করা হলে, ফাংশনটি একটি মেমরি অবস্থানে একটি পয়েন্টার ফেরত দেবে বলে আশা করা হয় যেখানে একটি সংশ্লিষ্ট সর্বোচ্চ দৈর্ঘ্য সহ নতুন ডেটা লেখা উচিত। ফাংশনটি ডেটা ধরে রাখার জন্য একটি নতুন বাফার বরাদ্দ করে বা বিদ্যমান বাফার থেকে পূর্বে লিখিত ডেটা সাফ করে লেখার স্থান সরবরাহ করতে পারে।

বিস্তারিত
পরামিতি
[in] writer
TLVWriter অবজেক্টের একটি রেফারেন্স যা নতুন বাফার স্পেস অনুরোধ করছে।
[in,out] bufHandle
একটি uintptr_t মানের একটি রেফারেন্স যা ফাংশনটি কলগুলির মধ্যে প্রসঙ্গ ডেটা সংরক্ষণ করতে ব্যবহার করতে পারে। এই মানটি প্রথম কলের আগে 0 তে আরম্ভ করা হয়।
[in,out] bufStart
একটি তথ্য পয়েন্টার একটি রেফারেন্স. ফাংশনে প্রবেশের সময়, bufStart বর্তমান আউটপুট বাফারের শুরুতে নির্দেশ করে। প্রস্থান করার সময়, bufStart নতুন আউটপুট বাফারের শুরুতে নির্দেশ করবে বলে আশা করা হচ্ছে। নতুন পয়েন্টার মান আগের মানের মতোই হতে পারে (যেমন যদি ফাংশনটি বিদ্যমান ডেটা অন্য কোথাও কপি করে) অথবা এটি সম্পূর্ণ নতুন অবস্থান নির্দেশ করতে পারে।
[in,out] bufLen
স্বাক্ষরবিহীন পূর্ণসংখ্যার একটি রেফারেন্স। ফাংশনে প্রবেশের সময়, bufLen বর্তমান বাফারে অব্যবহৃত স্থানের বাইট সংখ্যা ধারণ করে। প্রস্থান করার সময়, bufLen নতুন আউটপুট বাফারে লেখা যেতে পারে এমন সর্বাধিক সংখ্যক বাইট থাকবে বলে আশা করা হচ্ছে।
রিটার্ন মান
WEAVE_NO_ERROR
যদি ফাংশনটি লেখকের জন্য আরও বাফার স্পেস সরবরাহ করতে সক্ষম হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি কোডগুলি নির্দেশ করে যে একটি ত্রুটি ঘটেছে যা ফাংশনটিকে অতিরিক্ত বাফার স্পেস তৈরি করতে বাধা দেয়।

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

অ্যাপডেটা

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 উপাদানগুলি লিখতে মূল লেখককে ব্যবহার করা চালিয়ে যেতে পারে। এই মুহুর্তে সরবরাহকৃত কন্টেইনার লেখককে 'ডি-ইনিশিয়ালাইজড' হিসাবে বিবেচনা করা উচিত এবং পুনরায় আরম্ভ না করে ব্যবহার করা উচিত নয়।

বিস্তারিত
পরামিতি
[in] containerWriter
TLVWriter অবজেক্টের একটি রেফারেন্স যা OpenContainer() পদ্ধতিতে সরবরাহ করা হয়েছিল।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি সরবরাহকৃত কন্টেইনার লেখক সঠিক অবস্থায় না থাকে।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি সরবরাহকৃত কন্টেইনার রাইটারে অন্য একটি কন্টেইনার রাইটার খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি কন্টেইনারের এনকোডিং সম্পূর্ণ করার সময় লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

পুটবাইট চালিয়ে যান

WEAVE_ERROR ContinuePutBytes(
  const uint8_t *buf,
  uint32_t len
)

একটি TLV বাইট স্ট্রিং মান এনকোড করে।

এটি StartPutBytes এর সাথে ব্যবহার করা উচিত।

বিস্তারিত
পরামিতি
[in] buf
এনকোড করা বাইট স্ট্রিং ধারণকারী একটি বাফার একটি পয়েন্টার.
[in] len
এনকোড করা বাইট সংখ্যা.
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

কপি কন্টেইনার

WEAVE_ERROR CopyContainer(
  TLVReader & container
)

TLVReader অবজেক্ট থেকে একটি TLV কন্টেইনার উপাদান কপি করে।

CopyContainer() একটি TLVReader অবজেক্টের বর্তমান অবস্থানে অবস্থিত একটি প্রাক-এনকোডেড কন্টেইনার উপাদান অনুলিপি করে একটি নতুন TLV কন্টেইনার উপাদান এনকোড করে। পদ্ধতিটি একটি কলে নতুন কন্টেইনার উপাদানের সম্পূর্ণতা লেখে, উৎস এনকোডিং থেকে কন্টেইনারের ধরন, ট্যাগ এবং উপাদানগুলি অনুলিপি করে। যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।

বিস্তারিত
পরামিতি
[in] container
একটি TLVReader অবজেক্টের একটি রেফারেন্স যা কপি করার জন্য প্রাক-এনকোড করা TLV কন্টেইনার সনাক্ত করে।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি সরবরাহকৃত পাঠক একটি ধারক উপাদানে অবস্থান না করে থাকে।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_TLV_UNDERRUN
যদি সরবরাহকৃত পাঠকের সাথে যুক্ত অন্তর্নিহিত TLV এনকোডিং অকালে শেষ হয়ে যায়।
WEAVE_ERROR_INVALID_TLV_ELEMENT
যদি সরবরাহকৃত পাঠক একটি অবৈধ বা অসমর্থিত TLV উপাদানের প্রকারের সম্মুখীন হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি সরবরাহ করা পাঠক একটি অবৈধ প্রসঙ্গে একটি TLV ট্যাগের সম্মুখীন হয়, অথবা যদি উৎস কন্টেইনারের সাথে যুক্ত ট্যাগটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে নতুন ধারকটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন, অথবা রিডার অবজেক্টের সাথে যুক্ত GetNextBuffer() ফাংশন দ্বারা ফেরত অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি।

কপি কন্টেইনার

WEAVE_ERROR CopyContainer(
  uint64_t tag,
  TLVReader & container
)

সদস্য উপাদানগুলির একটি প্রাক-এনকোড করা সেট থেকে একটি TLV কন্টেইনার উপাদান এনকোড করে।

CopyContainer() পদ্ধতিটি একটি নতুন TLV কন্টেইনার উপাদান (একটি কাঠামো, অ্যারে বা পথ) এনকোড করে যাতে একটি TLVReader অবজেক্ট থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট থাকে। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত পাঠক বস্তুটি একটি TLV কন্টেইনার উপাদানে অবস্থান করা হবে বলে আশা করা হয়। নতুন এনকোড করা ধারকটিতে ইনপুট কন্টেইনারের মতো একই প্রকার এবং সদস্য থাকবে৷ নতুন ধারকটির জন্য ট্যাগটি একটি ইনপুট পরামিতি হিসাবে নির্দিষ্ট করা হয়েছে৷

যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।

বিস্তারিত
পরামিতি
[in] tag
কন্টেইনারের সাথে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি ধারকটিকে ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] container
একটি TLVReader অবজেক্টের একটি রেফারেন্স যা একটি প্রাক-এনকোড করা TLV কন্টেইনার সনাক্ত করে যার ধরন এবং সদস্যদের অনুলিপি করা উচিত।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি সরবরাহকৃত পাঠক একটি ধারক উপাদানে অবস্থান না করে থাকে।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_TLV_UNDERRUN
যদি সরবরাহকৃত পাঠকের সাথে যুক্ত অন্তর্নিহিত TLV এনকোডিং অকালে শেষ হয়ে যায়।
WEAVE_ERROR_INVALID_TLV_ELEMENT
যদি সরবরাহকৃত পাঠক একটি অবৈধ বা অসমর্থিত TLV উপাদানের প্রকারের সম্মুখীন হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি সরবরাহকৃত পাঠক একটি অবৈধ প্রসঙ্গে একটি TLV ট্যাগের সম্মুখীন হয়, অথবা যদি সরবরাহকৃত ট্যাগটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে নতুন ধারকটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন, অথবা রিডার অবজেক্টের সাথে যুক্ত GetNextBuffer() ফাংশন দ্বারা ফেরত অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি।

কপি কন্টেইনার

WEAVE_ERROR CopyContainer(
  uint64_t tag,
  const uint8_t *encodedContainer,
  uint16_t encodedContainerLen
)

একটি TLV কন্টেইনার উপাদান এনকোড করে যাতে একটি প্রাক-এনকোডেড কন্টেইনার থেকে সদস্য উপাদান থাকে।

CopyContainer() পদ্ধতিটি একটি নতুন TLV কন্টেইনার উপাদান (একটি কাঠামো, অ্যারে বা পাথ) এনকোড করে যাতে একটি সরবরাহকৃত প্রাক-এনকোড করা কন্টেইনারের বিষয়বস্তু থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট থাকে। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত ইনপুট বাফারের ডেটা একটি TLV কন্টেইনার উপাদান হিসাবে পার্স করা হয় এবং একটি নতুন ধারক লেখা হয় যাতে ইনপুট ধারক হিসাবে একই প্রকার এবং সদস্য থাকে। নতুন ধারকটির জন্য ট্যাগটি একটি ইনপুট পরামিতি হিসাবে নির্দিষ্ট করা হয়েছে৷

যখন পদ্ধতিটি ফিরে আসে, লেখক বস্তুটি ধারক উপাদান অনুসরণ করে অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে।

বিস্তারিত
পরামিতি
[in] tag
কন্টেইনারের সাথে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি ধারকটিকে ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] encodedContainer
একটি প্রাক-এনকোড করা TLV কন্টেইনার ধারণকারী একটি বাফার যার ধরন এবং সদস্যদের অনুলিপি করা উচিত।
[in] encodedContainerLen
প্রাক-এনকোড করা পাত্রের বাইটে দৈর্ঘ্য।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_TLV_UNDERRUN
যদি এনকোড করা ধারকটি সময়ের আগেই শেষ হয়ে যায়।
WEAVE_ERROR_INVALID_TLV_ELEMENT
যদি এনকোড করা ধারকটিতে একটি অবৈধ বা অসমর্থিত TLV উপাদানের ধরন থাকে।
WEAVE_ERROR_INVALID_TLV_TAG
যদি এনকোড করা ধারকটিতে একটি অবৈধ প্রসঙ্গে একটি TLV ট্যাগ থাকে, অথবা যদি সরবরাহকৃত ট্যাগটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে নতুন ধারকটি লেখা হচ্ছে৷
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন, অথবা রিডার অবজেক্টের সাথে যুক্ত GetNextBuffer() ফাংশন দ্বারা ফেরত অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি।

কপি এলিমেন্ট

WEAVE_ERROR CopyElement(
  TLVReader & reader
)

পাঠক বস্তু থেকে লেখকের মধ্যে একটি TLV উপাদান কপি করে।

CopyElement() পদ্ধতিটি একটি নতুন TLV উপাদানকে এনকোড করে যার প্রকার, ট্যাগ এবং মান একটি TLVReader অবজেক্ট থেকে নেওয়া হয়। যখন পদ্ধতিটি কল করা হয়, সরবরাহকৃত পাঠক বস্তুটি উৎস TLV উপাদানে অবস্থান করা হবে বলে আশা করা হয়। নতুন এনকোড করা উপাদানটিতে ইনপুট কন্টেইনারের মতো একই প্রকার, ট্যাগ এবং বিষয়বস্তু থাকবে। যদি সরবরাহ করা উপাদানটি একটি TLV কন্টেইনার (কাঠামো, অ্যারে বা পথ) হয়, তাহলে ধারকটির সম্পূর্ণ বিষয়বস্তু অনুলিপি করা হবে।

বিস্তারিত
পরামিতি
[in] reader
একটি প্রাক-এনকোড করা TLV উপাদান সনাক্তকারী একটি TLVReader অবজেক্টের একটি রেফারেন্স যা অনুলিপি করা উচিত।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি সরবরাহকৃত পাঠক একটি উপাদানের উপর অবস্থান না করে থাকে।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_TLV_UNDERRUN
যদি সরবরাহকৃত পাঠকের সাথে যুক্ত অন্তর্নিহিত TLV এনকোডিং অকালে শেষ হয়ে যায়।
WEAVE_ERROR_INVALID_TLV_ELEMENT
যদি সরবরাহকৃত পাঠক একটি অবৈধ বা অসমর্থিত TLV উপাদানের প্রকারের সম্মুখীন হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি সরবরাহকৃত পাঠক একটি অবৈধ প্রসঙ্গে একটি TLV ট্যাগের সম্মুখীন হয়, অথবা যদি সরবরাহকৃত ট্যাগটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে নতুন ধারকটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন, অথবা রিডার অবজেক্টের সাথে যুক্ত GetNextBuffer() ফাংশন দ্বারা ফেরত অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি।

কপি এলিমেন্ট

WEAVE_ERROR CopyElement(
  uint64_t tag,
  TLVReader & reader
)

শেষ কন্টেইনার

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

একটি TLV কন্টেইনার উপাদানের এনকোডিং সম্পূর্ণ করে।

EndContainer() পদ্ধতিটি একটি TLV কন্টেইনার উপাদানের এনকোডিং সম্পূর্ণ করে এবং StartContainer() এ পূর্বে কল করার পরে একটি TLVWrite অবজেক্টের অবস্থা পুনরুদ্ধার করে। StartContainer() অ্যাপ্লিকেশানগুলিতে প্রতিটি কলের জন্য অবশ্যই EndContainer() -এ একটি সংশ্লিষ্ট কল করতে হবে, StartContainer() কল দ্বারা প্রত্যাবর্তিত TLVType মান পাস করে। যখন EndContainer() ফিরে আসে, লেখক অবজেক্টটি অতিরিক্ত TLV উপাদান লিখতে ব্যবহার করা যেতে পারে যা কন্টেইনার উপাদান অনুসরণ করে।

বিস্তারিত
পরামিতি
[in] outerContainerType
TLVType মান যা StartContainer() পদ্ধতি দ্বারা ফেরত দেওয়া হয়েছিল।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_INCORRECT_STATE
যদি একটি সংশ্লিষ্ট StartContainer() কল করা না হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

চূড়ান্ত করা

WEAVE_ERROR Finalize(
  void
)

একটি TLV এনকোডিং লেখা শেষ করুন।

Finalize() পদ্ধতি অন্তর্নিহিত আউটপুট বাফারে একটি TLV এনকোডিং লেখার প্রক্রিয়া সম্পন্ন করে। পদ্ধতিটি বাফারের বিষয়বস্তু ব্যবহার করার আগে অ্যাপ্লিকেশন দ্বারা কল করা আবশ্যক। Finalize() শুধুমাত্র তখনই কল করা যাবে যখন বর্তমান লেখকের জন্য কোন কন্টেইনার রাইটার খোলা থাকবে না। (দেখুন OpenContainer() )।

বিস্তারিত
রিটার্ন মান
WEAVE_NO_ERROR
যদি এনকোডিং সফলভাবে চূড়ান্ত করা হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটি কনফিগার করা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তিত হয়।

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
)

একটি একক আউটপুট বাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।

বিস্তারিত
পরামিতি
[in] buf
বাফারের একটি পয়েন্টার যেখানে TLV লেখা উচিত।
[in] maxLen
আউটপুট বাফারে সর্বাধিক সংখ্যক বাইট লিখতে হবে।

ইনিট

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

একটি একক প্যাকেটবাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।

সরবরাহকৃত বাফারে বিদ্যমান ডেটার শেষ বাইটের পরপরই লেখা শুরু হয়।

বিস্তারিত
পরামিতি
[in] buf
একটি প্যাকেটবাফারের একটি পয়েন্টার যাতে TLV লেখা উচিত।
[in] maxLen
আউটপুট বাফারে সর্বাধিক সংখ্যক বাইট লিখতে হবে।

ইনিট

void Init(
  PacketBuffer *buf,
  uint32_t maxLen,
  bool allowDiscontiguousBuffers
)

এক বা একাধিক প্যাকেটবাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।

নির্দিষ্ট বাফারে বিদ্যমান ডেটার শেষ বাইটের পরপরই লেখা শুরু হয়। যদি allowDiscontiguousBuffers সত্য হয়, তবে অতিরিক্ত প্যাকেটবাফারগুলি বরাদ্দ করা হবে এবং সরবরাহ করা বাফারে শৃঙ্খলাবদ্ধ করা হবে যাতে লেখা ডেটার পরিমাণ মিটমাট করা যায়। যদি নির্দিষ্ট আউটপুট বাফারটি ইতিমধ্যেই বাফারগুলির একটি চেইনের প্রধান হয়ে থাকে, তবে নতুন বাফারগুলি বরাদ্দ করার আগে আউটপুটটি চেইনের পরবর্তী বাফারগুলিতে লেখা হবে।

বিস্তারিত
পরামিতি
[in] buf
একটি প্যাকেটবাফারের একটি পয়েন্টার যেখানে TLV ডেটা লেখা উচিত।
[in] maxLen
আউটপুট বাফার(গুলি) এ লিখতে হবে সর্বোচ্চ সংখ্যক বাইট।
[in] allowDiscontiguousBuffers
সত্য হলে, PacketBuffers-এর একটি চেইনে ডেটা লিখুন, লিখিত ডেটা সংরক্ষণ করার জন্য প্রয়োজনীয় নতুন বাফার বরাদ্দ করুন। মিথ্যা হলে, লিখিত ডেটা প্রাথমিক আউটপুট বাফারে উপলব্ধ স্থান অতিক্রম করলে WEAVE_ERROR_BUFFER_TOO_SMALL এর সাথে লেখা ব্যর্থ হবে৷

InitMalloced

void InitMalloced(
  uint8_t *& outBuf,
  uint32_t initialBufSize,
  uint32_t maxLen
)

ডায়নামিক বাফারে লিখতে একটি TLVWriter অবজেক্ট শুরু করে।

বিস্তারিত
পরামিতি
[in] buf
একটি পয়েন্টারের একটি রেফারেন্স যা বরাদ্দকৃত বাফারটি পাবে।
[in] maxLen
আউটপুট বাফারে সর্বাধিক সংখ্যক বাইট লিখতে হবে।
[in] initialBufSize
বাইটের প্রাথমিক সংখ্যা যা বাফারে বরাদ্দ করা উচিত।

ওপেন কনটেইনার

WEAVE_ERROR OpenContainer(
  uint64_t tag,
  TLVType containerType,
  TLVWriter & containerWriter
)

একটি TLV কন্টেইনার উপাদানের সদস্যদের লেখার জন্য একটি নতুন TLVWriter অবজেক্ট শুরু করে।

OpenContainer() পদ্ধতিটি একটি এনকোডিং-এ TLV কন্টেইনার উপাদান (কাঠামো, অ্যারে বা পাথ) লিখতে ব্যবহৃত হয়। পদ্ধতিটি নতুন কন্টেইনারের ধরন এবং ট্যাগ (যদি থাকে) এবং একটি নতুন লেখক বস্তুর ( কন্টেইনার লেখক ) একটি রেফারেন্স নেয় যা কন্টেইনারের উপাদানগুলি লেখার উদ্দেশ্যে আরম্ভ করা হবে। অ্যাপ্লিকেশানগুলি কন্টেইনার রাইটার ব্যবহার করে নতুন কন্টেইনারের সদস্যদের লেখে এবং তারপর কন্টেইনার এনকোডিং সম্পূর্ণ করতে CloseContainer() এ কল করে।

কন্টেইনার লেখক খোলা থাকাকালীন, অ্যাপ্লিকেশনগুলিকে অবশ্যই কল করা বা অন্যথায় মূল লেখকের অবস্থা পরিবর্তন করা উচিত নয়।

ধারক লেখক মূল লেখকের কাছ থেকে বিভিন্ন কনফিগারেশন বৈশিষ্ট্য উত্তরাধিকার সূত্রে প্রাপ্ত। এগুলো হলঃ

  • অন্তর্নিহিত প্রোফাইল আইডি (ImplicitProfileId)
  • অ্যাপ্লিকেশন ডেটা পয়েন্টার (AppData)
  • GetNewBuffer এবং FinalizeBuffer ফাংশন পয়েন্টার

বিস্তারিত
পরামিতি
[in] tag
কন্টেইনারের সাথে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি ধারকটিকে ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] containerType
এনকোড করার জন্য কন্টেইনারের ধরন। kTLVType_Structure , kTLVType_Array বা kTLVType_Path এর একটি হতে হবে।
[out] containerWriter
একটি TLVWriter অবজেক্টের একটি রেফারেন্স যা নতুন কন্টেইনার উপাদানের সদস্যদের লেখার জন্য আরম্ভ করা হবে। সরবরাহকৃত বস্তুর সাথে যুক্ত কোনো তথ্য ওভাররাইট করা হয়।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_WRONG_TLV_TYPE
কন্টেইনার টাইপের জন্য নির্দিষ্ট করা মান ভুল হলে।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

রাখুন

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v
)

একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে।

এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

রাখুন

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v,
  bool preserveSize
)

একটি TLV স্বাক্ষরিত পূর্ণসংখ্যা মান এনকোড করে।

এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
[in] preserveSize
সত্য যদি ইনপুট টাইপের মতো একই সংখ্যক বাইটে মানটি এনকোড করা হয়। মানটি উপস্থাপন করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক বাইটে এনকোড করা হলে মানটি মিথ্যা। দ্রষ্টব্য: অ্যাপ্লিকেশনগুলিকে এই প্যারামিটারটিকে মিথ্যাতে সেট করার জন্য দৃঢ়ভাবে উত্সাহিত করা হয়।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

রাখুন

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 স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে।

এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

রাখুন

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v,
  bool preserveSize
)

একটি TLV স্বাক্ষরবিহীন পূর্ণসংখ্যা মান এনকোড করে।

এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি উপরের ফাংশন থেকে শুধুমাত্র কোন আর্গুমেন্ট (গুলি) গ্রহণ করে তা থেকে আলাদা।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
[in] preserveSize
সত্য যদি ইনপুট টাইপের মতো একই সংখ্যক বাইটে মানটি এনকোড করা হয়। মানটি উপস্থাপন করার জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক বাইটে এনকোড করা হলে মানটি মিথ্যা। দ্রষ্টব্য: অ্যাপ্লিকেশনগুলিকে এই প্যারামিটারটিকে মিথ্যাতে সেট করার জন্য দৃঢ়ভাবে উত্সাহিত করা হয়।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

রাখুন

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 ফ্লোটিং পয়েন্ট মান এনকোড করে।

এটি একটি ওভারলোড সদস্য ফাংশন, সুবিধার জন্য প্রদান করা হয়. এটি শুধুমাত্র কোন যুক্তি(গুলি) গ্রহণ করে তা উপরের ফাংশন থেকে আলাদা।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

পুটবুলিয়ান

WEAVE_ERROR PutBoolean(
  uint64_t tag,
  bool v
)

একটি TLV বুলিয়ান মান এনকোড করে।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] v
এনকোড করা মান।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

পুটবাইটস

WEAVE_ERROR PutBytes(
  uint64_t tag,
  const uint8_t *buf,
  uint32_t len
)

একটি TLV বাইট স্ট্রিং মান এনকোড করে।

বিস্তারিত
পরামিতি
[in] tag
মান দিয়ে এনকোড করা TLV ট্যাগ, অথবা AnonymousTag যদি মানটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি একটি ট্যাগ সংজ্ঞা ফাংশন ProfileTag() , ContextTag() বা CommonTag() দিয়ে তৈরি করা উচিত।
[in] buf
এনকোড করা বাইট স্ট্রিং ধারণকারী একটি বাফার একটি পয়েন্টার.
[in] len
এনকোড করা বাইট সংখ্যা.
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি বর্তমান লেখকের উপর একটি ধারক লেখক খোলা হয়েছে এবং এখনও বন্ধ করা হয়নি।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার মানটি লেখকের সূচনা করার সময় নির্দিষ্ট করা বাইটের সর্বোচ্চ সংখ্যার সীমা অতিক্রম করে।
WEAVE_ERROR_NO_MEMORY
যদি মেমরির অভাবের কারণে একটি আউটপুট বাফার বরাদ্দ করার প্রচেষ্টা ব্যর্থ হয়।
other
অন্যান্য ওয়েভ বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা GetNewBuffer() বা FinalizeBuffer() ফাংশন দ্বারা প্রত্যাবর্তন করা হয়েছে৷

PutNull

WEAVE_ERROR PutNull(
  uint64_t tag
)

একটি TLV নাল মান এনকোড করে।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করা উচিত, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

পুটপ্রেনকোডডকন্টেনার

WEAVE_ERROR PutPreEncodedContainer(
  uint64_t tag,
  TLVType containerType,
  const uint8_t *data,
  uint32_t dataLen
)

সদস্য উপাদানগুলির একটি প্রাক-এনকোডেড সেট থেকে একটি টিএলভি ধারক উপাদান এনকোড করে।

পুটপ্রেনকোডডকন্টাইনার () পদ্ধতিটি একটি নতুন টিএলভি ধারক উপাদান (একটি কাঠামো, অ্যারে বা পাথ) এনকোড করে একটি প্রাক-এনকোডেড বাফার থেকে নেওয়া সদস্য উপাদানগুলির একটি সেট সমন্বিত। ইনপুট বাফারটিতে শূন্য বা আরও বেশি পূর্ণ-এনকোডড টিএলভি উপাদান রয়েছে বলে আশা করা হচ্ছে, নির্দিষ্ট ধারক ধরণের সাথে সম্পর্কিত নিয়মগুলির সাথে সামঞ্জস্যপূর্ণ ট্যাগগুলি সহ (যেমন কাঠামোর সদস্যদের অবশ্যই ট্যাগ থাকতে হবে, যখন অ্যারে সদস্যদের অবশ্যই তা করতে হবে না)।

পদ্ধতিটি একটি কলটিতে ধারক উপাদানটির সম্পূর্ণতা এনকোড করে। যখন পুটপ্রেনকোডডকন্টাইনার () রিটার্ন করে, লেখক অবজেক্টটি ধারক উপাদান অনুসরণ করে অতিরিক্ত টিএলভি উপাদান লিখতে ব্যবহার করা যেতে পারে।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি ধারকটির সাথে এনকোড করা উচিত, বা AnonymousTag যদি ধারকটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] containerType
এনকোড করার জন্য ধারক ধরণ। kTLVType_Structure , kTLVType_Array বা kTLVType_Path মধ্যে একটি হতে হবে।
[in] data
আরও এনকোডেড টিএলভি উপাদানগুলির শূন্য সমন্বিত একটি বাফারের একটি পয়েন্টার যা নতুন ধারকটির সদস্য হয়ে উঠবে।
[in] dataLen
data বাফারে বাইটের সংখ্যা।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_WRONG_TLV_TYPE
ধারক টাইপের জন্য নির্দিষ্ট মানটি যদি ভুল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

পুটস্ট্রিং

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

একটি টিএলভি ইউটিএফ 8 স্ট্রিং মান এনকোড করে।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করা উচিত, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] buf
এনকোড করার জন্য নাল-টার্মিনেটেড ইউটিএফ -8 স্ট্রিংয়ের একটি পয়েন্টার।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

পুটস্ট্রিং

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf,
  uint32_t len
)

একটি টিএলভি ইউটিএফ 8 স্ট্রিং মান এনকোড করে।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করা উচিত, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] buf
এনকোড করার জন্য ইউটিএফ -8 স্ট্রিংয়ের একটি পয়েন্টার।
[in] len
এনকোড করা স্ট্রিংয়ের দৈর্ঘ্য (বাইটে)।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

পুটস্ট্রিংফ

WEAVE_ERROR PutStringF(
  uint64_t tag,
  const char *fmt,
  ...
)

টিএলভি উপাদানটির ফর্ম্যাট অনুসারে স্ট্রিং আউটপুট ফর্ম্যাটটি এনকোড করুন।

পুটস্ট্রিংএফ হ'ল একটি স্প্রিন্টফের একটি এনালগ যেখানে আউটপুটটি একটি টিএলভি উপাদানগুলিতে একটি চরিত্র বাফারের বিপরীতে সংরক্ষণ করা হয়। যখন প্রসারিত প্রিন্টফ কার্যকারিতা উপলব্ধ থাকে, ফাংশনটি ফলাফলের স্ট্রিংটিকে একটি বিচ্ছিন্ন অন্তর্নিহিত স্টোরেজে আউটপুট করতে সক্ষম হয়। বাস্তবায়ন নিম্নলিখিত প্রিন্টফ বর্ধনকে সমর্থন করে:

প্ল্যাটফর্মটি একটি কলব্যাক-ভিত্তিক vcbprintf সরবরাহ করে যা পুটচারের জায়গায় কাস্টম কলব্যাক কল করার ক্ষমতা সরবরাহ করে।

প্ল্যাটফর্মটি vsnprintf_ex নামে পরিচিত vsnprintf এর একটি বৈকল্পিক সরবরাহ করে, যা vsnprintf এর মতো আচরণ করে তবে এটির আউটপুটটির প্রথম n অক্ষর বাদ দেওয়ার বিধান রয়েছে।

নোট করুন যে কলব্যাক-ভিত্তিক ফাংশনটি সহজতম হতে পারে এবং কোডের সর্বনিম্ন পরিমাণ ব্যবহার করতে পারে, তবে vsprintf_ex বিভিন্ন ধরণের ফাংশন কম স্ট্যাক গ্রহণ করবে।

যদি উপরের কোনওটিই উপলভ্য না হয় তবে প্ল্যাটফর্ম malloc সরবরাহ করে ফাংশনটি আউটপুট ধরে রাখতে একটি অস্থায়ী বাফার বরাদ্দ করবে। প্ল্যাটফর্মটি যখন প্রিন্টফ পরিবার বা ম্যালোককে বাড়িয়ে দেয় না, তখন আউটপুটটি এমনভাবে কাটা হয় যে এটি বর্তমান টিএলভি স্টোরেজে অবিচ্ছিন্ন অবস্থায় ফিট করে

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করা উচিত, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] fmt
আর্গুমেন্ট তালিকাটি ফর্ম্যাট করতে ব্যবহৃত ফর্ম্যাট স্ট্রিং। ফাংশনগুলির printf পরিবারের জন্য ফর্ম্যাট স্ট্রিং হিসাবে একই সিনট্যাক্স এবং নিয়মগুলি অনুসরণ করে।
[in] ...
এফএমটি অনুসারে আউটপুট মানটিতে ফর্ম্যাট করা যুক্তিগুলির একটি তালিকা।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
other
যদি টিএলভিওরাইটার পদ্ধতিগুলিতে অন্তর্নিহিত কলগুলি WriteElementHead বা GetNewBuffer ব্যর্থ হয় তবে তাদের ত্রুটিটি তাত্ক্ষণিকভাবে কল স্ট্যাকটি ফরোয়ার্ড করা হয়।

স্টার্টকন্টাইনার

WEAVE_ERROR StartContainer(
  uint64_t tag,
  TLVType containerType,
  TLVType & outerContainerType
)

একটি নতুন টিএলভি ধারক উপাদান এনকোডিং শুরু করে।

স্টার্টকন্টাইনার () পদ্ধতিটি এনকোডিংয়ে টিএলভি ধারক উপাদানগুলি (কাঠামো, অ্যারে বা পাথ) লিখতে ব্যবহৃত হয়। পদ্ধতিটি নতুন ধারকটির ধরণ এবং ট্যাগ (যদি থাকে) এবং একটি টিএলভি টাইপ মানের রেফারেন্স নেয় যা লেখকের বর্তমান প্রসঙ্গটি সংরক্ষণ করতে ব্যবহৃত হবে যখন এটি ধারকটি লেখার জন্য ব্যবহৃত হচ্ছে।

একবার স্টার্টকন্টাইনার () পদ্ধতিটি ফিরে আসার পরে, অ্যাপ্লিকেশনটির ধারকটির উপাদানগুলি লেখার জন্য বর্তমান টিএলভিওরাইটার অবজেক্টটি ব্যবহার করা উচিত। শেষ করার সময়, অ্যাপ্লিকেশনটি অবশ্যই ধারকটির এনকোডিং শেষ করতে এন্ডকন্টাইনার () পদ্ধতিতে কল করতে হবে।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি ধারকটির সাথে এনকোড করা উচিত, বা AnonymousTag যদি ধারকটি ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] containerType
এনকোড করার জন্য ধারক ধরণ। kTLVType_Structure , kTLVType_Array বা kTLVType_Path মধ্যে একটি হতে হবে।
[out] outerContainerType
একটি tlvtype মানের একটি রেফারেন্স যা লেখকের প্রসঙ্গটি গ্রহণ করবে।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_WRONG_TLV_TYPE
ধারক টাইপের জন্য নির্দিষ্ট মানটি যদি ভুল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

স্টার্টপুটবাইটস

WEAVE_ERROR StartPutBytes(
  uint64_t tag,
  uint32_t totalLen
)

একাধিক খণ্ডগুলিতে একটি টিএলভি বাইট স্ট্রিং এনকোড করে।

এটি চালিয়ে যাওয়া উচিত।

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করতে হবে, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] totalLen
এনকোড করা মোট বাইটের সংখ্যা।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
WEAVE_ERROR_TLV_CONTAINER_OPEN
যদি কোনও ধারক লেখক বর্তমান লেখকের উপর খোলা থাকে এবং এখনও বন্ধ না হয়।
WEAVE_ERROR_INVALID_TLV_TAG
যদি নির্দিষ্ট ট্যাগ মানটি অবৈধ বা অনুপযুক্ত হয় তবে যে প্রসঙ্গে মানটি লেখা হচ্ছে।
WEAVE_ERROR_BUFFER_TOO_SMALL
যদি লেখার সূচনা করা হয়েছিল তখন মানটি লেখার ফলে নির্দিষ্ট বাইটের সর্বাধিক সংখ্যার সীমা ছাড়িয়ে যায়।
WEAVE_ERROR_NO_MEMORY
যদি কোনও আউটপুট বাফার বরাদ্দ করার চেষ্টা মেমরির অভাবে ব্যর্থ হয়।
other
অন্যান্য বোনা বা প্ল্যাটফর্ম-নির্দিষ্ট ত্রুটিগুলি কনফিগার করা getnewbuffer () বা ফাইনালাইজবফার () ফাংশন দ্বারা ফিরে আসে।

Vputstringf

WEAVE_ERROR VPutStringF(
  uint64_t tag,
  const char *fmt,
  va_list ap
)

টিএলভি উপাদানটির ফর্ম্যাট অনুসারে স্ট্রিং আউটপুট ফর্ম্যাটটি এনকোড করুন।

পুটস্ট্রিংএফ হ'ল একটি স্প্রিন্টফের একটি এনালগ যেখানে আউটপুটটি একটি টিএলভি উপাদানগুলিতে একটি চরিত্র বাফারের বিপরীতে সংরক্ষণ করা হয়। যখন প্রসারিত প্রিন্টফ কার্যকারিতা উপলব্ধ থাকে, ফাংশনটি ফলাফলের স্ট্রিংটিকে একটি বিচ্ছিন্ন অন্তর্নিহিত স্টোরেজে আউটপুট করতে সক্ষম হয়। বাস্তবায়ন নিম্নলিখিত প্রিন্টফ বর্ধনকে সমর্থন করে:

প্ল্যাটফর্মটি একটি কলব্যাক-ভিত্তিক vcbprintf সরবরাহ করে যা পুটচারের জায়গায় কাস্টম কলব্যাক কল করার ক্ষমতা সরবরাহ করে।

প্ল্যাটফর্মটি vsnprintf_ex নামে পরিচিত vsnprintf এর একটি বৈকল্পিক সরবরাহ করে, যা vsnprintf এর মতো আচরণ করে তবে এটির আউটপুটটির প্রথম n অক্ষর বাদ দেওয়ার বিধান রয়েছে।

নোট করুন যে কলব্যাক-ভিত্তিক ফাংশনটি সহজতম হতে পারে এবং কোডের সর্বনিম্ন পরিমাণ ব্যবহার করতে পারে, তবে vsprintf_ex বিভিন্ন ধরণের ফাংশন কম স্ট্যাক গ্রহণ করবে।

যদি উপরের কোনওটিই উপলভ্য না হয় তবে প্ল্যাটফর্ম malloc সরবরাহ করে ফাংশনটি আউটপুট ধরে রাখতে একটি অস্থায়ী বাফার বরাদ্দ করবে। প্ল্যাটফর্মটি যখন প্রিন্টফ পরিবার বা ম্যালোককে বাড়িয়ে দেয় না, তখন আউটপুটটি এমনভাবে কাটা হয় যে এটি বর্তমান টিএলভি স্টোরেজে অবিচ্ছিন্ন অবস্থায় ফিট করে

বিস্তারিত
পরামিতি
[in] tag
টিএলভি ট্যাগটি মান সহ এনকোড করা উচিত, বা AnonymousTag যদি কোনও ট্যাগ ছাড়াই এনকোড করা উচিত। ট্যাগ মানগুলি ট্যাগ সংজ্ঞা ফাংশনগুলির একটি প্রোফাইলট্যাগ () , প্রসঙ্গ ট্যাগ () বা কমন্ট্যাগ () দিয়ে তৈরি করা উচিত।
[in] fmt
আর্গুমেন্ট তালিকাটি ফর্ম্যাট করতে ব্যবহৃত ফর্ম্যাট স্ট্রিং। ফাংশনগুলির printf পরিবারের জন্য ফর্ম্যাট স্ট্রিং হিসাবে একই সিনট্যাক্স এবং নিয়মগুলি অনুসরণ করে।
[in] ap
এফএমটি অনুসারে আউটপুট মানটিতে ফর্ম্যাট করা যুক্তিগুলির একটি তালিকা।
রিটার্ন মান
WEAVE_NO_ERROR
যদি পদ্ধতিটি সফল হয়।
other
যদি টিএলভিওরাইটার পদ্ধতিগুলিতে অন্তর্নিহিত কলগুলি WriteElementHead বা GetNewBuffer ব্যর্থ হয় তবে তাদের ত্রুটিটি তাত্ক্ষণিকভাবে কল স্ট্যাকটি ফরোয়ার্ড করা হয়।

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

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
)