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

এনএল :: তাঁত :: টিএলভি :: TLVWriter

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

বুনা ডাটা লেখার জন্য একটি মেমরি দক্ষ এনকোডার প্রদান করে TLV বিন্যাস।

সারসংক্ষেপ

TLVWriter কার্যকরী একটা ফরওয়ার্ড-শুধুমাত্র বুনা জন্য প্রবাহ-শৈলী এনকোডার TLV তথ্য। অ্যাপ্লিকেশন লিখতে এনকোডিং তথ্য লেখকের এক কল করে রাখুন () পদ্ধতি, প্রয়োজনীয় হিসাবে সংশ্লিষ্ট ট্যাগ এবং মান তথ্য ক্ষণস্থায়ী। একইভাবে অ্যাপ্লিকেশন এনকোড করতে TLV লেখকের কল করে ধারক প্রকার (কাঠামো, বিন্যাস বা পাথ) OpenContainer () বা EnterContainer () পদ্ধতি।

একজনTLVWriter অবজেক্ট ডেটা সরাসরি লিখতে একটি নির্দিষ্ট আউটপুট বাফার, অথবা এক বা একাধিক PacketBuffer বস্তু একটি চেইন করতে পারেন। উপরন্তু, অ্যাপ্লিকেশন তাদের নিজস্ব সরবরাহ করতে পারে GetNewBuffer এবং FinalizeBuffer একটি অবাধ গন্তব্য, যেমন একটি সকেট অথবা একটি ইভেন্ট সারিতে সরাসরি আউটপুট ফাংশন।

উত্তরাধিকার

সরাসরি পরিচিত উপশ্রেণী: nl এর :: বুনা :: TLV :: CircularTLVWriter

সুরক্ষিত প্রকার

@72 {
kEndOfContainerMarkerSize = 1
}
এনাম

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

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)
একটি লেখার সম্পূর্ণ করুন TLV একটি কল পরে ধারক OpenContainer () ।
ContinuePutBytes (const uint8_t *buf, uint32_t len)
একটি এনকোড TLV বাইট স্ট্রিং মান।
CopyContainer (TLVReader & container)
কপি একটি TLV থেকে ধারক উপাদানTLVReader অবজেক্ট।
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 একটি একক PacketBuffer মধ্যে লিখতে অবজেক্ট।
Init ( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
একটি সূচনাTLVWriter এক বা একাধিক PacketBuffers মধ্যে লিখতে অবজেক্ট।
InitMalloced (uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen)
void
একটি সূচনাTLVWriter একটি গতিশীল বাফারের মধ্যে লিখতে অবজেক্ট।
OpenContainer (uint64_t tag, TLVType containerType,TLVWriter & containerWriter)
একটি নতুন সূচনাTLVWriter একটি সদস্য লেখার জন্য অবজেক্ট TLV ধারক উপাদান।
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 PacketBuffers একটি চেইন লেখার জন্য 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 PacketBuffers একটি চেইন লেখার জন্য 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

 @72

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

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

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

একটি ফাংশন একটি থেকে আউটপুট চূড়ান্ত করতে ব্যবহার করাTLVWriter অবজেক্ট।

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

বিশদ
পরামিতি
[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 ফাংশন যখনই তার ডাকব চূড়ান্ত () পদ্ধতি বলা হয়। অ্যাপ্লিকেশন কলিং পূর্বে কোন সময়ে ফাংশন পয়েন্টার সেট করতে পারেন চূড়ান্ত () । ডিফল্টরূপে পয়েন্টার শূন্য, যা ঘটায় সেট করা হয় চূড়ান্ত () ফাংশন কলিং পরিত্যাগ করার পদ্ধতি।

FinalizeBuffer ফাংশন বাস্তবায়নের অতিরিক্ত তথ্যের জন্য FinalizeBufferFunct প্রকারের সংজ্ঞাটি দেখুন।

গেটনিউউফার

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

mLenWritten

uint32_t mLenWritten

এমম্যাক্সলেন

uint32_t mMaxLen

mRemainingLen

uint32_t mRemainingLen

mWritePoint

uint8_t * mWritePoint

পাবলিক ফাংশন

ক্লোজকন্টেইনার

WEAVE_ERROR CloseContainer(
  TLVWriter & containerWriter
)

একটি লেখার সম্পূর্ণ করুন TLV একটি কল পরে ধারক OpenContainer () ।

CloseContainer () পদ্ধতি একটি পিতা বা মাতা রাজ্যের পুনরুদ্ধারTLVWriter একটি কল পরে বস্তুর OpenContainer () । প্রতি কলের জন্য 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 বাইট স্ট্রিং মান।

এটি স্টার্টপুটবাইটস ব্যবহার করা উচিত।

বিশদ
পরামিতি
[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
)

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

CopyContainer () একটি নতুন এনকোড TLV একটি প্রাক এনকোডেড ধারক একটি বর্তমান অবস্থানে অবস্থিত উপাদান অনুলিপি করে ধারক উপাদানTLVReader অবজেক্ট। পদ্ধতিটি নতুন কন্টেইনার উপাদানটির সম্পূর্ণতা এক কলে কল করে, উত্স এনকোডিং থেকে ধারকটির ধরণ, ট্যাগ এবং উপাদানগুলি অনুলিপি করে। পদ্ধতি আয় লেখক বস্তুর অতিরিক্ত লিখতে ব্যবহার করা যেতে পারে যখন 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
একটি একটি রেফারেন্স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 CopyElement(
  uint64_t tag,
  TLVReader & reader
)

এন্ডকন্টেইনার

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

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

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

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

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

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

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 একটি একক PacketBuffer মধ্যে লিখতে অবজেক্ট।

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

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

এটা

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

একটি সূচনাTLVWriter এক বা একাধিক PacketBuffers মধ্যে লিখতে অবজেক্ট।

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

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

ইনসিম্লোসড

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

একটি সূচনাTLVWriter একটি গতিশীল বাফারের মধ্যে লিখতে অবজেক্ট।

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

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

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

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

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

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

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

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

বিশদ
পরামিতি
[in] tag
TLV ট্যাগ বা ধারক সাথে এনকোডেড করতে হবে, AnonymousTag যদি ধারক একটি ট্যাগ ছাড়া এনকোড করা উচিত। ট্যাগ মান ট্যাগ সংজ্ঞা ফাংশন এক সঙ্গে নির্মাণ করা উচিত ProfileTag () , ContextTag () বা CommonTag ()
[in] containerType
এনকোড করার ধারক ধরণের। এক হওয়া আবশ্যক kTLVType_Structure , kTLVType_Array বা kTLVType_Path
[out] containerWriter
একটি একটি রেফারেন্সTLVWriter বস্তু নতুন ধারক উপাদান সদস্যদের লেখার জন্য সক্রিয়া করা হবে না। সরবরাহিত বস্তুর সাথে সম্পর্কিত যে কোনও ডেটা ওভাররাইট করা হয় ten
রিটার্ন মান
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
মানটি যদি ইনপুট টাইপের মতো একই সংখ্যক বাইটে এনকোড করা উচিত তবে সত্য। মানটি উপস্থাপনের জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক বাইটে মানটি এনকোড করা উচিত কিনা তা মিথ্যা। দ্রষ্টব্য: অ্যাপলিকেশনগুলিকে এই পরামিতিটিকে মিথ্যা হিসাবে সেট করতে দৃ strongly়ভাবে উত্সাহ দেওয়া হচ্ছে।
রিটার্ন মান
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
মানটি যদি ইনপুট টাইপের মতো একই সংখ্যক বাইটে এনকোড করা উচিত তবে সত্য। মানটি উপস্থাপনের জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক বাইটে মানটি এনকোড করা উচিত কিনা তা মিথ্যা। দ্রষ্টব্য: অ্যাপলিকেশনগুলিকে এই পরামিতিটিকে মিথ্যা হিসাবে সেট করতে দৃ strongly়ভাবে উত্সাহ দেওয়া হচ্ছে।
রিটার্ন মান
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
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

PutNull

WEAVE_ERROR PutNull(
  uint64_t tag
)

Encodes a TLV null value.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

PutPreEncodedContainer

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

Encodes a TLV container element from a pre-encoded set of member elements.

The PutPreEncodedContainer() method encodes a new TLV container element (a structure, array or path) containing a set of member elements taken from a pre-encoded buffer. The input buffer is expected to contain zero or more full-encoded TLV elements, with tags that conform to the rules associated with the specified container type (eg structure members must have tags, while array members must not).

The method encodes the entirety of the container element in one call. When PutPreEncodedContainer() returns, the writer object can be used to write additional TLV elements following the container element.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the container, or AnonymousTag if the container should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] containerType
The type of container to encode. Must be one of kTLVType_Structure , kTLVType_Array or kTLVType_Path .
[in] data
A pointer to a buffer containing zero of more encoded TLV elements that will become the members of the new container.
[in] dataLen
The number of bytes in the data buffer.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_WRONG_TLV_TYPE
If the value specified for containerType is incorrect.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

Encodes a TLV UTF8 string value.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] buf
A pointer to the null-terminated UTF-8 string to be encoded.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

PutString

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

Encodes a TLV UTF8 string value.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] buf
A pointer to the UTF-8 string to be encoded.
[in] len
The length (in bytes) of the string to be encoded.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

PutStringF

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

Encode the string output formatted according to the format in the TLV element.

PutStringF is an analog of a sprintf where the output is stored in a TLV element as opposed to a character buffer. When extended printf functionality is available, the function is able to output the result string into a discontinuous underlying storage. The implementation supports the following printf enhancements:

The platform supplies a callback-based vcbprintf that provides the ability to call a custom callback in place of putchar.

The platform supplies a variant of vsnprintf called vsnprintf_ex , that behaves exactly like vsnprintf except it has provisions for omitting the first n characters of the output.

Note that while the callback-based function may be the simplest and use the least amount of code, the vsprintf_ex variety of functions will consume less stack.

If neither of the above is available, but platform provides malloc the function will allocate a temporary buffer to hold the output. When the platform supplies neither enhancement to the printf family nor malloc, the output is truncated such that it fits in the continuous state in the current TLV storage

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] fmt
The format string used to format the argument list. Follows the same syntax and rules as the format string for printf family of functions.
[in] ...
A list of arguments to be formatted in the output value according to fmt.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
other
If underlying calls toTLVWriter methods WriteElementHead or GetNewBuffer failed, their error is immediately forwarded up the call stack.

StartContainer

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

Begins encoding a new TLV container element.

The StartContainer() method is used to write TLV container elements (structure, arrays or paths) to an encoding. The method takes the type and tag (if any) of the new container, and a reference to a TLVType value which will be used to save the current context of the writer while it is being used to write the container.

Once the StartContainer() method returns, the application should use the currentTLVWriter object to write the elements of the container. When finish, the application must call the EndContainer() method to finish the encoding of the container.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the container, or AnonymousTag if the container should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] containerType
The type of container to encode. Must be one of kTLVType_Structure , kTLVType_Array or kTLVType_Path .
[out] outerContainerType
A reference to a TLVType value that will receive the context of the writer.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_WRONG_TLV_TYPE
If the value specified for containerType is incorrect.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

StartPutBytes

WEAVE_ERROR StartPutBytes(
  uint64_t tag,
  uint32_t totalLen
)

Encodes a TLV byte string in multiple chunks.

This should be used with ContinuePutBytes.

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] totalLen
The total number of bytes to be encoded.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
WEAVE_ERROR_TLV_CONTAINER_OPEN
If a container writer has been opened on the current writer and not yet closed.
WEAVE_ERROR_INVALID_TLV_TAG
If the specified tag value is invalid or inappropriate in the context in which the value is being written.
WEAVE_ERROR_BUFFER_TOO_SMALL
If writing the value would exceed the limit on the maximum number of bytes specified when the writer was initialized.
WEAVE_ERROR_NO_MEMORY
If an attempt to allocate an output buffer failed due to lack of memory.
other
Other Weave or platform-specific errors returned by the configured GetNewBuffer() or FinalizeBuffer() functions.

VPutStringF

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

Encode the string output formatted according to the format in the TLV element.

PutStringF is an analog of a sprintf where the output is stored in a TLV element as opposed to a character buffer. When extended printf functionality is available, the function is able to output the result string into a discontinuous underlying storage. The implementation supports the following printf enhancements:

The platform supplies a callback-based vcbprintf that provides the ability to call a custom callback in place of putchar.

The platform supplies a variant of vsnprintf called vsnprintf_ex , that behaves exactly like vsnprintf except it has provisions for omitting the first n characters of the output.

Note that while the callback-based function may be the simplest and use the least amount of code, the vsprintf_ex variety of functions will consume less stack.

If neither of the above is available, but platform provides malloc the function will allocate a temporary buffer to hold the output. When the platform supplies neither enhancement to the printf family nor malloc, the output is truncated such that it fits in the continuous state in the current TLV storage

বিশদ
পরামিতি
[in] tag
The TLV tag to be encoded with the value, or AnonymousTag if the value should be encoded without a tag. Tag values should be constructed with one of the tag definition functions ProfileTag() , ContextTag() or CommonTag() .
[in] fmt
The format string used to format the argument list. Follows the same syntax and rules as the format string for printf family of functions.
[in] ap
A list of arguments to be formatted in the output value according to fmt.
রিটার্ন মান
WEAVE_NO_ERROR
If the method succeeded.
other
If underlying calls toTLVWriter methods WriteElementHead or GetNewBuffer failed, their error is immediately forwarded up the call stack.

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

FinalizePacketBuffer

WEAVE_ERROR FinalizePacketBuffer(
  TLVWriter & writer,
  uintptr_t bufHandle,
  uint8_t *bufStart,
  uint32_t dataLen
)

An implementation of aTLVWriter FinalizeBuffer function for writing to a chain of PacketBuffers.

The FinalizePacketBuffer() function performs the necessary finalization required when using aTLVWriter to write to a chain of PacketBuffers. The function is designed to be used in conjunction with the GetNewPacketBuffer() function.

See the FinalizeBufferFunct type definition for additional information on the API of the FinalizePacketBuffer() function.

GetNewBuffer_Malloced

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

An implementation of aTLVWriter GetNewBuffer function for writing to a dynamic buffer.

The GetNewBuffer_Malloced() function supplies new output space to aTLVWriter by doubling the size of the underlying dynamic buffer as needed to store the encoding. The function is designed to be assigned to theTLVWriter GetNewBuffer function pointer.

See the GetNewBufferFunct type definition for additional information on the API of the GetNewBuffer_Malloced() function.

GetNewPacketBuffer

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

An implementation of aTLVWriter GetNewBuffer function for writing to a chain of PacketBuffers.

The GetNewPacketBuffer() function supplies new output space to aTLVWriter by allocating a chain of one or more PacketBuffers as needed to store the encoding. The function is designed to be assigned to theTLVWriter GetNewBuffer function pointer.

Note that when using the GetNewPacketBuffer with aTLVWriter , the corresponding FinalizePacketBuffer() function (or an equivalent) should also be used to finalize the buffer chain.

See the GetNewBufferFunct type definition for additional information on the API of the GetNewPacketBuffer() function.

সুরক্ষিত ফাংশন

IsCloseContainerReserved

bool IsCloseContainerReserved(
  void
) const 

Determine whether the container should reserve space for the CloseContainer symbol at the point of starting / opening the container.

IsContainerOpen

bool IsContainerOpen(
  void
) const 

SetCloseContainerReserved

void SetCloseContainerReserved(
  bool aCloseContainerReserved
)

Set whether the container should reserve the space for the CloseContainer symbol at the point of starting / opening the container.

SetContainerOpen

void SetContainerOpen(
  bool aContainerOpen
)

WriteData

WEAVE_ERROR WriteData(
  const uint8_t *p,
  uint32_t len
)

WriteElementHead

WEAVE_ERROR WriteElementHead(
  TLVElementType elemType,
  uint64_t tag,
  uint64_t lenOrVal
)

WriteElementWithData

WEAVE_ERROR WriteElementWithData(
  TLVType type,
  uint64_t tag,
  const uint8_t *data,
  uint32_t dataLen
)