nl:: बुना:: TLV:: TLVWriter
#include <src/lib/core/WeaveTLV.h>
Weave TLV प्रारूप में डेटा लिखने के लिए मेमोरी बचाने वाला एक एन्कोडर उपलब्ध कराता है.
खास जानकारी
TLVWriter, Weave TLV डेटा के लिए फ़ॉरवर्ड-ओनली, स्ट्रीम-स्टाइल एन्कोडर लागू करता है. ऐप्लिकेशन, लेखक और #39;s Put() मेथड में से किसी एक को कॉल करके, कोड में बदलने का तरीका बताते हैं. इसके लिए, ज़रूरत के मुताबिक टैग और वैल्यू की जानकारी दी जाती है. इसी तरह, ऐप्लिकेशन, लेखक और #39;s OpenContainer() या EnterContainer() तरीके को कॉल करके, TLV कंटेनर टाइप (इंफ़्रास्ट्रक्चर, कैटगरी या पाथ) को कोड में बदल सकते हैं.
TLVWriter ऑब्जेक्ट, सीधे तय किए गए आउटपुट बफ़र या एक या ज़्यादा PacketBuffer ऑब्जेक्ट की चेन पर डेटा लिख सकता है. साथ ही, ऐप्लिकेशन किसी आर्बिट्रेरी डेस्टिनेशन, जैसे कि सॉकेट या इवेंट की सूची में आउटपुट भेजने के लिए, अपने GetNewBuffer
और FinalizeBuffer
फ़ंक्शन दे सकते हैं.
इनहेरिटेंस
सीधे तौर पर मालूम सब-क्लास: nl::Weave::TLV::CircularTLVWriter
सुरक्षित प्रकार |
|
---|---|
@72{
|
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)
|
|
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
एक PacketBuffer में लिखने के लिए, TLVWriter ऑब्जेक्ट की शुरुआत करता है.
|
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
|
void
एक या ज़्यादा PacketBuffers में लिखने के लिए, TLVWriter ऑब्जेक्ट शुरू करता है.
|
InitMalloced(uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen)
|
void
डाइनैमिक बफ़र में लिखने के लिए TLVWriter ऑब्जेक्ट की शुरुआत करता है.
|
OpenContainer(uint64_t tag, TLVType containerType, TLVWriter & containerWriter)
|
|
Put(uint64_t tag, int8_t v)
|
कोड में शामिल टीएलवी वैल्यू को कोड में बदलता है.
|
Put(uint64_t tag, int8_t v, bool preserveSize)
|
कोड में शामिल टीएलवी वैल्यू को कोड में बदलता है.
|
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)
|
PacketBuffers की चेन के लिए, 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)
|
PacketBuffers की चेन के लिए, TLVWriter GetNewBuffer फ़ंक्शन लागू करना.
|
सुरक्षित किए गए फ़ंक्शन |
|
---|---|
IsCloseContainerReserved(void) const
|
bool
यह तय करें कि कंटेनर को शुरू करने / खोलने के समय, कंटेनर को CloseContainer के निशान के लिए जगह रिज़र्व करनी चाहिए या नहीं.
|
IsContainerOpen(void) const
|
bool
|
SetCloseContainerReserved(bool aCloseContainerReserved)
|
void
सेट करें कि कंटेनर को शुरू करने / खोलने पर, कंटेनर को CloseContainer के निशान के लिए खाली जगह रखनी चाहिए या नहीं.
|
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
सार्वजनिक प्रकार
FinalifyBufferFunct
WEAVE_ERROR(* FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen)
TLVWriter ऑब्जेक्ट से आउटपुट को फ़ाइनल करने के लिए इस्तेमाल किया जाने वाला फ़ंक्शन.
इस तरह के फ़ंक्शन तब कॉल किए जाते हैं, जब TLVWriter's finalize() तरीके को कॉल किया जाता है. फ़ंक्शन को लेखक ऑब्जेक्ट के आउटपुट का उपभोग करने से संबंधित कोई भी ज़रूरी सफ़ाई या अंतिम रूप देने की उम्मीद है. इसके उदाहरणों में शामिल हैं, एन्कोडिंग की अंतिम लंबाई रिकॉर्ड करना, या किसी फ़ाइल वर्णनकर्ता को बंद करना.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
सामान लौटाने की वैल्यू |
|
NewBufferFunct पाएं
WEAVE_ERROR(* GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)
एक फ़ंक्शन, जो TLVWriter को नए आउटपुट बफ़र की जगह देता है.
इस तरह के फ़ंक्शन का इस्तेमाल, TLVWriter के लिए नए बफ़र स्पेस को लिखने के लिए किया जाता है. कॉल करने पर, यह उम्मीद की जाती है कि यह फ़ंक्शन, मेमोरी की जगह पर पॉइंटर वापस भेजेगा, जहां नया डेटा लिखा जाना चाहिए. साथ ही, फ़ंक्शन की ज़्यादा से ज़्यादा लंबाई भी बताई जानी चाहिए. यह फ़ंक्शन, डेटा को होल्ड करने के लिए नए बफ़र की अनुमति देकर या किसी मौजूदा बफ़र से पहले से लिखा हुआ डेटा मिटाकर, राइट स्पेस दे सकता है.
ब्यौरा | |||||||||
---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||
सामान लौटाने की वैल्यू |
|
सार्वजनिक विशेषताएं
AppData
void * AppData
पॉइंटर फ़ील्ड, जिसका इस्तेमाल ऐप्लिकेशन के खास डेटा के लिए किया जा सकता है.
FinalifyBuffer
FinalizeBufferFunct FinalizeBuffer
फ़ंक्शन के लिए पॉइंटर, जिसे TLVWriter तय किए जाने पर कॉल किया जाएगा.
जब भी इसके finalize() तरीके को कॉल किया जाएगा, तब TLVWriter ऑब्जेक्ट को FinalizeBuffer फ़ंक्शन कॉल करेगा. finalize() कॉल करने से पहले, ऐप्लिकेशन किसी भी समय फ़ंक्शन पॉइंटर को सेट कर सकते हैं. डिफ़ॉल्ट रूप से पॉइंटर को NULL पर सेट किया जाता है, जिसकी वजह से finalize() तरीके से फ़ंक्शन को कॉल करना बंद हो जाता है.
FinalizeBuffer फ़ंक्शन लागू करने के बारे में ज़्यादा जानकारी के लिए, FinalizeBufferFunct टाइप की परिभाषा देखें.
GetBuffer
GetNewBufferFunct GetNewBuffer
ऐसे फ़ंक्शन के लिए पॉइंटर जो TLVWriter को नए आउटपुट बफ़र स्पेस की सुविधा देता है.
जब भी ऐसी कोशिश की जाती है कि कोई डेटा लिखा जाता है, जो मौजूदा आउटपुट बफ़र के साइज़ से ज़्यादा हो जाता है, तो TLVWriter ऑब्जेक्ट GetNewBuffer फ़ंक्शन को कॉल करेगा. अगर शून्य (डिफ़ॉल्ट मान) पर सेट किया जाता है, तो लेखक, आउटपुट बफ़र की मौजूदा बफ़र में WEAVE_ERROR_NO_MEMRY वापस लौटाएगा.
GetNewBuffer को किसी भी ऐप्लिकेशन से किसी भी समय सेट किया जा सकता है, लेकिन आम तौर पर यह तब सेट किया जाता है, जब लेखक शुरू किया जाता है.
GetNewBuffer फ़ंक्शन लागू करने के बारे में ज़्यादा जानकारी के लिए, GetNewBufferFunct टाइप की परिभाषा देखें.
ImplicitProfileId
uint32_t ImplicitProfileId
टैग की प्रोफ़ाइल आईडी, जिसे इंप्लिसिट फ़ॉर्म के तौर पर कोड में बदला जाना चाहिए.
जब किसी लेखक से नए एलिमेंट को कोड में बदलने के लिए कहा जाता है, तो अगर नए एलिमेंट से जुड़े टैग का प्रोफ़ाइल आईडी, ImplicitProfileId
के सदस्य की वैल्यू से मेल खाता है, तो लेखक इंप्लिसिट फ़ॉर्म में टैग को कोड में बदल देगा. साथ ही, प्रोसेस के प्रोफ़ाइल आईडी को हटा देगा.
डिफ़ॉल्ट रूप से, ImplicitProfileId
प्रॉपर्टी kProfileIdNotDescription पर सेट होती है, जो लेखक को इंप्लिसिट तरीके से कोड में बदले गए टैग को एमिट न करने का निर्देश देती है. ऐप्लिकेशन, कोड में मौजूदा पॉइंट से शुरू होने वाले इंप्लिसिट फ़ॉर्म में एन्कोडिंग टैग चालू करने के लिए, ImplicitProfileId
को किसी भी समय सेट कर सकते हैं. सेट किया जाने वाला सही प्रोफ़ाइल आईडी आम तौर पर, बोले जाने वाले ऐप्लिकेशन या प्रोटोकॉल के हिसाब से तय होता है.
सुरक्षित एट्रिब्यूट
MbufHandle
uintptr_t mBufHandle
mBufStart
uint8_t * mBufStart
mCONTAINERType
TLVType mContainerType
मि॰लीन
uint32_t mLenWritten
mMaxLen
uint32_t mMaxLen
MremainingLen
uint32_t mRemainingLen
mWritePoint
uint8_t * mWritePoint
सार्वजनिक फ़ंक्शन
क्लोज़ कंटेनर
WEAVE_ERROR CloseContainer( TLVWriter & containerWriter )
OpenContainer() पर कॉल करने के बाद, TLV कंटेनर को लिखने का काम पूरा कर लेता है.
closeContainer() मैथड, OpenContainer() पर कॉल करने के बाद, पैरंट TLVWriter ऑब्जेक्ट की स्थिति को पहले जैसा करता है. OpenCONTAINER() ऐप्लिकेशन पर किए जाने वाले हर कॉल के लिए, दोनों कंटेनर को एक ही कंटेनर लेखक का रेफ़रंस पास करते हुए, CloseContainer() पर उससे जुड़ा कॉल करना ज़रूरी है.
जब CloseContainer() रिटर्न होता है, तो हो सकता है कि ऐप्लिकेशन, पैरंट लेखक का इस्तेमाल करके, ऐसे दूसरे TLV एलिमेंट लिखें जो कंटेनर एलिमेंट के बाद दिखते हैं. इस समय, दिए गए कंटेनर लेखक को 'शुरुआती और #39; माना जाना चाहिए. इसे फिर से शुरू किए बिना इस्तेमाल नहीं किया जाना चाहिए.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
जारी रखें PutBytes
WEAVE_ERROR ContinuePutBytes( const uint8_t *buf, uint32_t len )
TLV बाइट स्ट्रिंग मान को कोड में बदलता है.
इसका इस्तेमाल StartPutBytes के साथ किया जाना चाहिए.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
कॉपी कंटेनर
WEAVE_ERROR CopyContainer( TLVReader & container )
TLVReader ऑब्जेक्ट से, TLV कंटेनर एलिमेंट कॉपी करता है.
copyCONTAINER(), TLVReader ऑब्जेक्ट की मौजूदा स्थिति पर पहले से कोड किए गए कंटेनर एलिमेंट को कॉपी करके, नए TLV कंटेनर एलिमेंट को कोड में बदलता है. इस तरीके से एक ही कॉल में नए कंटेनर एलिमेंट की पूरी जानकारी बनाई जाती है. साथ ही, सोर्स एन्कोडिंग के कंटेनर, टाइप, टैग, और एलिमेंट को कॉपी किया जाता है. जब तरीका रिटर्न होता है, तो लेखक ऑब्जेक्ट का इस्तेमाल कंटेनर एलिमेंट के बाद आने वाले अतिरिक्त TLV एलिमेंट लिखने के लिए किया जा सकता है.
ब्यौरा | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||||
सामान लौटाने की वैल्यू |
|
कॉपी कंटेनर
WEAVE_ERROR CopyContainer( uint64_t tag, TLVReader & container )
यह पहले से एन्कोड किए गए सदस्य एलिमेंट से TLV कंटेनर एलिमेंट को कोड में बदलता है.
copyCONTAINER() तरीके से एक नया TLV कंटेनर एलिमेंट (कोई स्ट्रक्चर, श्रेणी या पाथ) कोड में बदला जाता है. इसमें TLVReader ऑब्जेक्ट से ली गई सदस्य एलिमेंट का एक सेट होता है. जब मेथड को कॉल किया जाता है, तो दिए गए रीडर ऑब्जेक्ट के TLV कंटेनर एलिमेंट पर होने की उम्मीद है. नए एन्कोड किए गए कंटेनर का प्रकार और सदस्य इनपुट कंटेनर के समान होंगे. नए कंटेनर के लिए टैग, एक इनपुट पैरामीटर के रूप में बताया गया है.
जब तरीका रिटर्न होता है, तो लेखक ऑब्जेक्ट का इस्तेमाल कंटेनर एलिमेंट के बाद आने वाले अतिरिक्त TLV एलिमेंट लिखने के लिए किया जा सकता है.
ब्यौरा | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||||
सामान लौटाने की वैल्यू |
|
कॉपी कंटेनर
WEAVE_ERROR CopyContainer( uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen )
यह TLV कंटेनर एलिमेंट को कोड में बदलता है, जिसमें पहले से एन्कोड किए गए कंटेनर के सदस्य एलिमेंट शामिल हैं.
copyCONTAINER() तरीके से एक नया TLV कंटेनर एलिमेंट (स्ट्रक्चर्ड स्ट्रक्चर, अरे या पाथ) कोड किया जाता है. इसमें पहले से एन्कोड किए गए कंटेनर के कॉन्टेंट से लिए गए सदस्य एलिमेंट का सेट शामिल होता है. इस तरीके को कॉल करने पर, दिए गए इनपुट बफ़र में मौजूद डेटा को TLV कंटेनर एलिमेंट के तौर पर पार्स किया जाता है. एक नया कंटेनर लिखा जाता है, जिसमें इनपुट कंटेनर जैसा ही टाइप और सदस्य होते हैं. नए कंटेनर के लिए टैग, एक इनपुट पैरामीटर के रूप में बताया गया है.
जब तरीका रिटर्न होता है, तो लेखक ऑब्जेक्ट का इस्तेमाल कंटेनर एलिमेंट के बाद आने वाले अतिरिक्त TLV एलिमेंट लिखने के लिए किया जा सकता है.
ब्यौरा | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||
सामान लौटाने की वैल्यू |
|
कॉपी एलिमेंट
WEAVE_ERROR CopyElement( TLVReader & reader )
रीडर ऑब्जेक्ट में से TLV एलिमेंट को लेखक में कॉपी करता है.
copyElement() मेथड एक नए TLV एलिमेंट को कोड में बदलता है, जिसका टाइप, टैग, और वैल्यू, TLVReader ऑब्जेक्ट से ली गई है. जब मेथड को कॉल किया जाता है, तो दिए गए रीडर ऑब्जेक्ट के स्रोत TLV एलिमेंट पर होने की उम्मीद होती है. नए एन्कोड किए गए एलिमेंट का प्रकार, टैग और सामग्री इनपुट कंटेनर के समान होगा. अगर दिया गया एलिमेंट TLV कंटेनर (स्ट्रक्चर्ड, अरे या पाथ) है, तो कंटेनर की पूरी सामग्री कॉपी की जाएगी.
ब्यौरा | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||||||
सामान लौटाने की वैल्यू |
|
कॉपी एलिमेंट
WEAVE_ERROR CopyElement( uint64_t tag, TLVReader & reader )
एंड कंटेनर
WEAVE_ERROR EndContainer( TLVType outerContainerType )
यह TLV कंटेनर एलिमेंट की एन्कोडिंग को पूरा करता है.
EndContainer() तरीके से TLV कंटेनर एलिमेंट की एन्कोडिंग पूरी होती है और StartContainer() पर पहले किए गए कॉल के बाद TLVWrite ऑब्जेक्ट की स्थिति वापस आता है. StartContainer() ऐप्लिकेशन को किए जाने वाले हर कॉल के लिए, EndContainer() को एक कॉल करना होगा, जो StartContainer() कॉल से मिली TLVType वैल्यू को पास करता हो. EndCONTAINER() के रिटर्न होने पर, लेखक ऑब्जेक्ट का इस्तेमाल, कंटेनर एलिमेंट के बाद आने वाले दूसरे TLV एलिमेंट को लिखने के लिए किया जा सकता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
अंतिम रूप दें
WEAVE_ERROR Finalize( void )
TLV एन्कोडिंग लिखने की प्रक्रिया पूरी करें.
finalize() तरीके की मदद से, ज़रूरी आउटपुट बफ़र में TLV एन्कोडिंग लिखी जाती है. इस तरीके का इस्तेमाल ऐप्लिकेशन को कॉल करने से पहले किया जाना चाहिए. finalize() सिर्फ़ तब कॉल किया जा सकता है, जब मौजूदा लेखक के लिए कोई कंटेनर लेखक न खुला हो. (OpenContainer()
देखें).
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
सामान लौटाने की वैल्यू |
|
GetCONTAINERType
TLVType GetContainerType( void ) const
उस तरह का कंटेनर दिखाता है जिसमें TLVWriter इस समय लिख रहा है.
GetContainerType() मैथड से, TLV कंटेनर का वह टाइप मिलता है जिसमें TLVWriter फ़िलहाल लिख रहा है. अगर TLVWriter, कंटेनर के अंदर एलिमेंट नहीं लिख रहा है (यानी, अगर एन्कोडिंग के बाहरी लेवल पर लिखा जा रहा है), तो तरीका kTLVType_Not खरीदारी के नतीजे देता है.
ब्यौरा | |
---|---|
लौटाए गए सामान |
मौजूदा कंटेनर का TLVType, या अगर किसी TLVWriter, कंटेनर के अंदर एलिमेंट नहीं लिख रहे हैं, तो यह TLTLVType_Not specified.
|
लंबाई लिखा हुआ है
uint32_t GetLengthWritten( void )
लेखक के शुरू करने के बाद से लिखे गए बाइट की कुल संख्या दिखाता है.
ब्यौरा | |
---|---|
लौटाए गए सामान |
लेखक के शुरू करने के बाद से लिखे गए बाइट की कुल संख्या.
|
इनिट
void Init( uint8_t *buf, uint32_t maxLen )
इनिट
void Init( PacketBuffer *buf, uint32_t maxLen )
एक PacketBuffer में लिखने के लिए, TLVWriter ऑब्जेक्ट की शुरुआत करता है.
लिखे गए बफ़र में मौजूदा डेटा के आखिरी बाइट के तुरंत बाद लेखन शुरू हो जाता है.
ब्यौरा | |||||
---|---|---|---|---|---|
पैरामीटर |
|
इनिट
void Init( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers )
एक या ज़्यादा PacketBuffers में लिखने के लिए, TLVWriter ऑब्जेक्ट शुरू करता है.
राइटिंग बफ़र में मौजूदा डेटा के आखिरी बाइट के तुरंत बाद लिखना शुरू हो जाता है. अगर allowDiscontiguousBuffers
सही है, तो अतिरिक्त PacketBuffers, दिए गए डेटा की ज़रूरत के मुताबिक, तय किए गए बफ़र के लिए तय कर दिए जाएंगे. अगर दिया गया आउटपुट बफ़र पहले से ही बफ़र की चेन है, तो नए बफ़र को असाइन किए जाने से पहले आउटपुट, चेन में मौजूद बाद के बफ़र पर लिखा जाएगा.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
इनिटमालोज़्ड
void InitMalloced( uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen )
डाइनैमिक बफ़र में लिखने के लिए TLVWriter ऑब्जेक्ट की शुरुआत करता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
ओपनकंटेनर
WEAVE_ERROR OpenContainer( uint64_t tag, TLVType containerType, TLVWriter & containerWriter )
TLV कंटेनर एलिमेंट के सदस्यों को लिखने के लिए, एक नया TLVWriter ऑब्जेक्ट शुरू करता है.
OpenContainer() तरीके का इस्तेमाल करके, कोड में बदलने के लिए TLV कंटेनर एलिमेंट (स्ट्रक्चर्ड, कैटगरी या पाथ) लिखे जाते हैं. इस तरीके में नए कंटेनर का टाइप और टैग (अगर कोई है) शामिल हो जाता है. साथ ही, नए लेखक ऑब्जेक्ट (कंटेनर लेखक) का रेफ़रंस मिलता है जिसे कंटेनर के #&39; एलिमेंट के बारे में बताने के लिए शुरू किया जाएगा. ऐप्लिकेशन, कंटेनर लेखक का इस्तेमाल करके नए कंटेनर के सदस्य लिखते हैं और फिर कंटेनर एन्कोडिंग को पूरा करने के लिए, CloseContainer() को कॉल करते हैं.
जब कंटेनर लेखक खुला होता है, तो ऐप्लिकेशन को पैरंट लेखक की स्थिति को चालू नहीं करना चाहिए या न ही उन्हें कॉल करना चाहिए.
कंटेनर लेखक, पैरंट लेखक से कई तरह की कॉन्फ़िगरेशन प्रॉपर्टी लेता है. इनके उदाहरण हैं:
- इंप्लिसिट प्रोफ़ाइल आईडी (ImplicitProfileId)
- ऐप्लिकेशन डेटा पॉइंटर (AppData)
- GetNewBuffer और FinalizeBuffer फ़ंक्शन पॉइंटर
ब्यौरा | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||
सामान लौटाने की वैल्यू |
|
रखें
WEAVE_ERROR Put( uint64_t tag, int8_t v )
कोड में शामिल टीएलवी वैल्यू को कोड में बदलता है.
यह सुविधा इस्तेमाल करने के लिए एक खास फ़ंक्शन है, जिसे ज़रूरत से ज़्यादा लोड किया गया है. यह ऊपर दिए गए फ़ंक्शन से अलग होता है, जो सिर्फ़ आर्ग्युमेंट के स्वीकार किए जाते हैं.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
रखें
WEAVE_ERROR Put( uint64_t tag, int8_t v, bool preserveSize )
कोड में शामिल टीएलवी वैल्यू को कोड में बदलता है.
यह सुविधा इस्तेमाल करने के लिए एक खास फ़ंक्शन है, जिसे ज़रूरत से ज़्यादा लोड किया गया है. यह ऊपर दिए गए फ़ंक्शन से अलग होता है, जो सिर्फ़ आर्ग्युमेंट के स्वीकार किए जाते हैं.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
रखें
WEAVE_ERROR Put( uint64_t tag, int16_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, int16_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, int32_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, int32_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, int64_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, int64_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, uint8_t v )
TLV असाइन किए गए पूर्णांक मान को कोड में बदलता है.
यह सुविधा इस्तेमाल करने के लिए एक खास फ़ंक्शन है, जिसे ज़रूरत से ज़्यादा लोड किया गया है. यह ऊपर दिए गए फ़ंक्शन से अलग होता है, जो सिर्फ़ आर्ग्युमेंट के स्वीकार किए जाते हैं.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
रखें
WEAVE_ERROR Put( uint64_t tag, uint8_t v, bool preserveSize )
TLV असाइन किए गए पूर्णांक मान को कोड में बदलता है.
यह सुविधा इस्तेमाल करने के लिए एक खास फ़ंक्शन है, जिसे ज़रूरत से ज़्यादा लोड किया गया है. यह ऊपर दिए गए फ़ंक्शन से अलग होता है, जो सिर्फ़ आर्ग्युमेंट के स्वीकार किए जाते हैं.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
रखें
WEAVE_ERROR Put( uint64_t tag, uint16_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, uint16_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, uint32_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, uint32_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, uint64_t v )
रखें
WEAVE_ERROR Put( uint64_t tag, uint64_t v, bool preserveSize )
रखें
WEAVE_ERROR Put( uint64_t tag, float v )
रखें
WEAVE_ERROR Put( uint64_t tag, double v )
TLV फ़्लोटिंग-पॉइंट वैल्यू को कोड में बदलता है.
यह सुविधा इस्तेमाल करने के लिए एक खास फ़ंक्शन है, जिसे ज़रूरत से ज़्यादा लोड किया गया है. यह ऊपर दिए गए फ़ंक्शन से अलग होता है, जो सिर्फ़ आर्ग्युमेंट के स्वीकार किए जाते हैं.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
पुटबूलियन
WEAVE_ERROR PutBoolean( uint64_t tag, bool v )
TLV बूलियन मान को कोड में बदलता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
बाइटबाइट
WEAVE_ERROR PutBytes( uint64_t tag, const uint8_t *buf, uint32_t len )
TLV बाइट स्ट्रिंग मान को कोड में बदलता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
पटाया
WEAVE_ERROR PutNull( uint64_t tag )
TLV शून्य मान को कोड में बदलता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
PuPreEncodeContainer
WEAVE_ERROR PutPreEncodedContainer( uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen )
यह पहले से एन्कोड किए गए सदस्य एलिमेंट से TLV कंटेनर एलिमेंट को कोड में बदलता है.
PutPreEncodeCONTAINER() तरीके से एक नए TLV कंटेनर एलिमेंट (एक स्ट्रक्चर, अरे या पाथ) को कोड में बदला जाता है. इसमें पहले से एन्कोड किए गए बफ़र से सदस्य के एलिमेंट का सेट शामिल होता है. इनपुट बफ़र में शून्य या ज़्यादा पूरी तरह एन्कोड किए गए TLV एलिमेंट होने चाहिए.इसमें ऐसे टैग होते हैं जो खास कंटेनर टाइप से जुड़े नियमों के मुताबिक होते हैं. जैसे, स्ट्रक्चर के सदस्यों के पास टैग होने चाहिए, जबकि श्रेणी के सदस्यों के पास ये नहीं होने चाहिए.
यह तरीका एक कॉल में कंटेनर के पूरे एलिमेंट को कोड में बदलता है. जब PutPreEncodeContainer() रिटर्न होता है, तब लेखक ऑब्जेक्ट का इस्तेमाल, कंटेनर एलिमेंट के बाद आने वाले दूसरे TLV एलिमेंट को लिखने के लिए किया जा सकता है.
ब्यौरा | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||
सामान लौटाने की वैल्यू |
|
पुटस्ट्रिंग
WEAVE_ERROR PutString( uint64_t tag, const char *buf )
TLV UTF8 स्ट्रिंग वैल्यू को कोड में बदलता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
पुटस्ट्रिंग
WEAVE_ERROR PutString( uint64_t tag, const char *buf, uint32_t len )
TLV UTF8 स्ट्रिंग वैल्यू को कोड में बदलता है.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
PuStringF
WEAVE_ERROR PutStringF( uint64_t tag, const char *fmt, ... )
TLV एलिमेंट के फ़ॉर्मैट के मुताबिक फ़ॉर्मैट किए गए स्ट्रिंग आउटपुट को कोड में बदलें.
PuStringF, किसी स्प्रिंटफ़ का एक ऐनालॉग है, जहां आउटपुट में कैरेक्टर बफ़र के बजाय टीएलवी एलिमेंट सेव किया जाता है. जब एक्सटेंडेड प्रिंटफ़ फ़ंक्शन उपलब्ध होता है, तो फ़ंक्शन नतीजों की स्ट्रिंग को लगातार बंद किए गए स्टोरेज में आउटपुट कर सकता है. इसे लागू करने के लिए, प्रिंट फ़ॉर्म को बेहतर तरीके से इस्तेमाल करने की सुविधा दी जाती है:
यह प्लैटफ़ॉर्म, कॉलबैक के आधार पर कॉलबैक की सुविधा के साथ काम करने वाला vcbprintf
उपलब्ध कराता है. इससे, कॉलआउट की जगह कस्टम कॉलबैक को कॉल करने की सुविधा मिलती है.
यह प्लैटफ़ॉर्म, vsnprintf
का एक वैरिएंट उपलब्ध कराता है, जिसे vsnprintf_ex
कहते हैं. यह वैरिएंट की तरह काम करता है. हालांकि, इसमें आउटपुट के पहले n
वर्णों को शामिल नहीं किया जाता.
ध्यान दें कि कॉलबैक पर आधारित फ़ंक्शन सबसे आसान हो सकता है और कम से कम कोड का इस्तेमाल कर सकता है. हालांकि, vsprintf_ex
तरह के फ़ंक्शन कम स्टैक का इस्तेमाल करेंगे.
अगर ऊपर दी गई कोई भी सुविधा उपलब्ध नहीं है, लेकिन प्लैटफ़ॉर्म malloc
उपलब्ध कराता है, तो फ़ंक्शन को होल्ड करने के लिए फ़ंक्शन एक अस्थायी बफ़र देगा. जब प्लैटफ़ॉर्म, printf फ़ैमिली और न ही मॉल्क को बेहतर बनाते हैं, तो आउटपुट को इस तरह छोटा किया जाता है कि वह मौजूदा TLV स्टोरेज में लगातार स्थिति में फ़िट हो जाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
स्टार्ट कंटेनर
WEAVE_ERROR StartContainer( uint64_t tag, TLVType containerType, TLVType & outerContainerType )
नए TLV कंटेनर एलिमेंट को एन्कोड करने से शुरू होता है.
StartContainer() तरीके का इस्तेमाल करके, कोड में बदलने के लिए TLV कंटेनर एलिमेंट (स्ट्रक्चर्ड, अरे या पाथ) लिखे जाते हैं. इस तरीके में नए कंटेनर का टाइप और टैग (अगर कोई है) मौजूद है. साथ ही, इसमें TLVType मान का रेफ़रंस भी दिया गया है. इसका इस्तेमाल लेखक के मौजूदा संदर्भ को सेव करने के लिए किया जाएगा, जिसका इस्तेमाल कंटेनर लिखने के लिए किया जा रहा है.
StartContainer() तरीके से रिटर्न होने पर, ऐप्लिकेशन को मौजूदा TLVWriter ऑब्जेक्ट का इस्तेमाल करके, कंटेनर के एलिमेंट लिखने चाहिए. पूरा हो जाने पर, कंटेनर को कोड में बदलने का काम पूरा करने के लिए, ऐप्लिकेशन को EndContainer() तरीके का इस्तेमाल करना होगा.
ब्यौरा | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||||
सामान लौटाने की वैल्यू |
|
StartPutBytes
WEAVE_ERROR StartPutBytes( uint64_t tag, uint32_t totalLen )
इसे TLV बाइट स्ट्रिंग को कई हिस्सों में कोड में बदलता है.
इसे StartPutBytes के साथ इस्तेमाल किया जाना चाहिए.
ब्यौरा | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||||||||
सामान लौटाने की वैल्यू |
|
VPutStringF
WEAVE_ERROR VPutStringF( uint64_t tag, const char *fmt, va_list ap )
TLV एलिमेंट के फ़ॉर्मैट के मुताबिक फ़ॉर्मैट किए गए स्ट्रिंग आउटपुट को कोड में बदलें.
PuStringF, किसी स्प्रिंटफ़ का एक ऐनालॉग है, जहां आउटपुट में कैरेक्टर बफ़र के बजाय टीएलवी एलिमेंट सेव किया जाता है. जब एक्सटेंडेड प्रिंटफ़ फ़ंक्शन उपलब्ध होता है, तो फ़ंक्शन नतीजों की स्ट्रिंग को लगातार बंद किए गए स्टोरेज में आउटपुट कर सकता है. इसे लागू करने के लिए, प्रिंट फ़ॉर्म को बेहतर तरीके से इस्तेमाल करने की सुविधा दी जाती है:
यह प्लैटफ़ॉर्म, कॉलबैक के आधार पर कॉलबैक की सुविधा के साथ काम करने वाला vcbprintf
उपलब्ध कराता है. इससे, कॉलआउट की जगह कस्टम कॉलबैक को कॉल करने की सुविधा मिलती है.
यह प्लैटफ़ॉर्म, vsnprintf
का एक वैरिएंट उपलब्ध कराता है, जिसे vsnprintf_ex
कहते हैं. यह वैरिएंट की तरह काम करता है. हालांकि, इसमें आउटपुट के पहले n
वर्णों को शामिल नहीं किया जाता.
ध्यान दें कि कॉलबैक पर आधारित फ़ंक्शन सबसे आसान हो सकता है और कम से कम कोड का इस्तेमाल कर सकता है. हालांकि, vsprintf_ex
तरह के फ़ंक्शन कम स्टैक का इस्तेमाल करेंगे.
अगर ऊपर दी गई कोई भी सुविधा उपलब्ध नहीं है, लेकिन प्लैटफ़ॉर्म malloc
उपलब्ध कराता है, तो फ़ंक्शन को होल्ड करने के लिए फ़ंक्शन एक अस्थायी बफ़र देगा. जब प्लैटफ़ॉर्म, printf फ़ैमिली और न ही मॉल्क को बेहतर बनाते हैं, तो आउटपुट को इस तरह छोटा किया जाता है कि वह मौजूदा TLV स्टोरेज में लगातार स्थिति में फ़िट हो जाता है.
ब्यौरा | |||||||
---|---|---|---|---|---|---|---|
पैरामीटर |
|
||||||
सामान लौटाने की वैल्यू |
|
सार्वजनिक स्थिर फ़ंक्शन
FinalizePacketBuffer
WEAVE_ERROR FinalizePacketBuffer( TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen )
PacketBuffers की चेन के लिए, TLVWriter FinalizeBuffer फ़ंक्शन लागू करता है.
फ़ाइनलizePacketBuffer() फ़ंक्शन, PacketBuffers की चेन के लिए लिखने के लिए, TLVWriter का इस्तेमाल करते समय ज़रूरी फ़ाइनलाइज़ेशन करता है. इस फ़ंक्शन को GetNewPacketBuffer() फ़ंक्शन के साथ इस्तेमाल करने के लिए डिज़ाइन किया गया है.
finalizePacketBuffer() फ़ंक्शन के एपीआई के बारे में ज़्यादा जानने के लिए, FinalizeBufferFunct टाइप की परिभाषा देखें.
NewBuffer_Moloed पाएं
WEAVE_ERROR GetNewBuffer_Malloced( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
डाइनैमिक बफ़र में लिखने के लिए, TLVWriter GetNewBuffer फ़ंक्शन को लागू करना.
GetNewBuffer_Maloped() फ़ंक्शन, TLVWriter को नया आउटपुट स्पेस देता है, ताकि कोड में बदलने के लिए, ज़रूरी डाइनैमिक बफ़र के साइज़ को दोगुना किया जा सके. फ़ंक्शन को TLVWriter GetNewBuffer फ़ंक्शन पॉइंटर को असाइन करने के लिए बनाया गया है.
GetNewBuffer_Maloped() फ़ंक्शन के एपीआई के बारे में ज़्यादा जानने के लिए, GetNewBufferFunct के प्रकार की परिभाषा देखें.
न्यूपैकेट बफ़र पाएं
WEAVE_ERROR GetNewPacketBuffer( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
PacketBuffers की चेन के लिए, TLVWriter GetNewBuffer फ़ंक्शन लागू करना.
GetNewPacketBuffer() फ़ंक्शन की मदद से, कोड में बदलने के लिए ज़रूरी एक या एक से ज़्यादा PacketBuffers की चेन तय करके, TLVWriter को नया आउटपुट स्पेस दिया जाता है. फ़ंक्शन को TLVWriter GetNewBuffer फ़ंक्शन पॉइंटर को असाइन करने के लिए बनाया गया है.
ध्यान दें कि जब आप TLVWriter के साथ GetNewPacketBuffer का इस्तेमाल करते हैं, तो बफ़र चेन को फ़ाइनल करने के लिए, उससे जुड़े finalizePacketBuffer() फ़ंक्शन (या इसके बराबर) का भी इस्तेमाल किया जाना चाहिए.
GetNewPacketBuffer() फ़ंक्शन के एपीआई के बारे में ज़्यादा जानने के लिए, GetNewBufferFunct टाइप की परिभाषा देखें.
सुरक्षित किए गए फ़ंक्शन
क्या इस कंटेनर के लिए रिज़र्व है
bool IsCloseContainerReserved( void ) const
यह तय करें कि कंटेनर को शुरू करने / खोलने के समय, कंटेनर को CloseContainer के निशान के लिए जगह रिज़र्व करनी चाहिए या नहीं.
आइस कंटेनर ओपन
bool IsContainerOpen( void ) const
सेट क्लोज़ कंटेनर रिज़र्व किया गया
void SetCloseContainerReserved( bool aCloseContainerReserved )
सेट करें कि कंटेनर को शुरू करने / खोलने पर, कंटेनर को CloseContainer के निशान के लिए खाली जगह रखनी चाहिए या नहीं.
सेट कंटेनरखोलें
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 )
TypeElementWithData
WEAVE_ERROR WriteElementWithData( TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen )