nl::Weave::TLV::TLVUpdater

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

इससे TLV एन्कोडिंग में एलिमेंट में बदलाव करने/जोड़ने/मिटाने के लिए एक यूनिफ़ाइड रीडर/राइटर इंटरफ़ेस मिलता है.

खास जानकारी

TLVUpdater, TLVReader और TLVWriter ऑब्जेक्ट को मिलाकर बनाया गया है. यह किसी एन्कोडिंग में डेटा में बदलाव करने/मिटाने के साथ-साथ, TLV एन्कोडिंग में नए एलिमेंट जोड़ने के लिए इंटरफ़ेस के तरीके उपलब्ध कराता है. TLVUpdater ऑब्जेक्ट, दो कर्सर की तरह काम करता है. पहला, मौजूदा डेटा को कोड में बदलने के तरीके को पढ़ने के लिए और दूसरा, लिखने के लिए (मौजूदा डेटा को कॉपी करने या नया डेटा लिखने के लिए).

मतलब, TLVUpdater ऑब्जेक्ट, TLVReader और TLVWriter को यूनियन के रूप में काम करता है. TLVUpdater तरीकों का मतलब, TLVReader/TLVWriter में, मिलते-जुलते नाम से मिलता-जुलता है. सिमेंटिक में अंतर होने पर, WeaveTLVUpdater.cpp में फ़ंक्शन के टिप्पणी सेक्शन में, इन अंतर को साफ़ तौर पर दस्तावेज़ में दिखाया जाता है.

TLVUpdater'sputBytes() और KeepString() तरीकों के बारे में खास तौर पर एक अहम बात यह है कि यह एन्कोडिंग को खराब स्थिति में छोड़ सकता है. ऐसा करते समय, सिर्फ़ एलिमेंट हेडर लिखा गया होता है, जो ओवरफ़्लो होता है. ऐप्लिकेशन GetRemainingFreeLength() को कॉल कर सकते हैं. इससे यह पक्का किया जा सकता है कि कोड में बदलने के लिए, ज़रूरत के मुताबिक करीब खाली जगह है. ध्यान दें कि GetRemainingFreeLength() आपको सिर्फ़ उपलब्ध मुफ़्त बाइट बताती है. साथ ही, ऐप्लिकेशन के पास लिखे जाने वाले कोड में बदले गए डेटा की लंबाई जानने का कोई तरीका नहीं है. ओवरफ़्लो होने की स्थिति में,putBytes() और पुटस्ट्रिंग(), दोनों ही कॉलर को WEAVE_ERROR_BUFFER_TOO_Small फ़ॉर्मैट में वापस भेज देंगे.

साथ ही, यह भी ध्यान रखें कि Next() तरीका ओवरलोड हो गया है, ताकि मौजूदा एलिमेंट को स्किप किया जा सके और इंटरनल रीडर को अगले एलिमेंट पर भी ले जाया जा सके. पहले से कोड में बदले गए एलिमेंट को छोड़ने पर, खाली जगह (जिसे स्किप करके उपलब्ध कराया जाता है) के लिए अंदरूनी राइटर के फ़्री स्पेस स्टेट वैरिएबल को बदलने की ज़रूरत होती है. इसलिए, किसी Get() तरीके के बाद ऐप्लिकेशन को अपडेटर पर Next() को कॉल करना चाहिए, जिसका मान उसे वापस लिखना नहीं है (यह मौजूदा एलिमेंट को स्किप करने के बराबर है).

सार्वजनिक फ़ंक्शन

CopyElement(TLVReader & reader)
CopyElement(uint64_t tag, TLVReader & reader)
DupBytes(uint8_t *& buf, uint32_t & dataLen)
DupString(char *& buf)
EndContainer(TLVType outerContainerType)
EnterContainer(TLVType & outerContainerType)
कंटेनर के एलिमेंट पढ़ने के लिए, TLVUpdater ऑब्जेक्ट तैयार करता है.
ExitContainer(TLVType outerContainerType)
यह फ़ंक्शन, TLV कंटेनर एलिमेंट की रीडिंग को पूरा करता है. साथ ही, आउटपुट TLV में TLV एलिमेंट के आखिरी हिस्से को कोड में बदल देता है.
Finalize(void)
Get(bool & v)
Get(int8_t & v)
Get(int16_t & v)
Get(int32_t & v)
Get(int64_t & v)
Get(uint8_t & v)
Get(uint16_t & v)
Get(uint32_t & v)
Get(uint64_t & v)
Get(float & v)
Get(double & v)
GetBytes(uint8_t *buf, uint32_t bufSize)
GetContainerType(void) const
GetDataPtr(const uint8_t *& data)
GetImplicitProfileId(void)
uint32_t
GetLength(void) const
uint32_t
GetLengthRead(void) const
uint32_t
GetLengthWritten(void)
uint32_t
GetReader(TLVReader & containerReader)
void
GetRemainingFreeLength(void)
uint32_t
GetRemainingLength(void) const
uint32_t
GetString(char *buf, uint32_t bufSize)
GetTag(void) const
uint64_t
GetType(void) const
Init(uint8_t *buf, uint32_t dataLen, uint32_t maxLen)
सिंगल इनपुट बफ़र में बदलाव करने के लिए, TLVUpdater ऑब्जेक्ट शुरू करें.
Init(TLVReader & aReader, uint32_t freeLen)
TLVReader का इस्तेमाल करके, TLVUpdater ऑब्जेक्ट को शुरू करें.
Move(void)
मौजूदा एलिमेंट को इनपुट TLV से आउटपुट TLV तक कॉपी करता है.
MoveUntilEnd(void)
void
TLVUpdater के मौजूदा रीड पॉइंट से इनपुट TLV बफ़र के खत्म होने तक आउटपुट में सभी को ले जाएं.
Next(void)
मौजूदा एलिमेंट को छोड़ें और TLVUpdater ऑब्जेक्ट को इनपुट TLV में अगले एलिमेंट पर ले जाएं.
Put(uint64_t tag, int8_t v)
Put(uint64_t tag, int16_t v)
Put(uint64_t tag, int32_t v)
Put(uint64_t tag, int64_t v)
Put(uint64_t tag, uint8_t v)
Put(uint64_t tag, uint16_t v)
Put(uint64_t tag, uint32_t v)
Put(uint64_t tag, uint64_t v)
Put(uint64_t tag, int8_t v, bool preserveSize)
Put(uint64_t tag, int16_t v, bool preserveSize)
Put(uint64_t tag, int32_t v, bool preserveSize)
Put(uint64_t tag, int64_t v, bool preserveSize)
Put(uint64_t tag, uint8_t v, bool preserveSize)
Put(uint64_t tag, uint16_t v, bool preserveSize)
Put(uint64_t tag, uint32_t v, bool preserveSize)
Put(uint64_t tag, uint64_t v, bool preserveSize)
Put(uint64_t tag, float v)
Put(uint64_t tag, double v)
PutBoolean(uint64_t tag, bool v)
PutBytes(uint64_t tag, const uint8_t *buf, uint32_t len)
PutNull(uint64_t tag)
PutString(uint64_t tag, const char *buf)
PutString(uint64_t tag, const char *buf, uint32_t len)
SetImplicitProfileId(uint32_t profileId)
void
TLVUpdater ऑब्जेक्ट के लिए इंप्लिसिट प्रोफ़ाइल आईडी सेट करें.
StartContainer(uint64_t tag, TLVType containerType, TLVType & outerContainerType)
VerifyEndOfContainer(void)

सार्वजनिक फ़ंक्शन

CopyElement

WEAVE_ERROR CopyElement(
  TLVReader & reader
)

CopyElement

WEAVE_ERROR CopyElement(
  uint64_t tag,
  TLVReader & reader
)

DupBytes

WEAVE_ERROR DupBytes(
  uint8_t *& buf,
  uint32_t & dataLen
)

DupString

WEAVE_ERROR DupString(
  char *& buf
)

EndContainer

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

कंटेनर के एलिमेंट पढ़ने के लिए, TLVUpdater ऑब्जेक्ट तैयार करता है.

यह आउटपुट TLV में कंटेनर ऑब्जेक्ट की शुरुआत को भी एन्कोड करता है.

EnterContainer() तरीका, मौजूदा TLVUpdater ऑब्जेक्ट को तैयार करता है, ताकि TLV कंटेनर (स्ट्रक्चर, अरे या पाथ) के सदस्य एलिमेंट को पढ़ना शुरू किया जा सके. EnterContainer() को किए जाने वाले हर कॉल के लिए, ऐप्लिकेशन को ExitContainer() के हिसाब से कॉल करना चाहिए.

जब EnterContainer() को TLVUpdater को कॉल किया जाता है, तो इसके रीडर को कंटेनर एलिमेंट पर रखा जाना चाहिए. यह तरीका, आर्ग्युमेंट के तौर पर TLVType वैल्यू का रेफ़रंस लेता है. इसका इस्तेमाल, कंटेनर को पढ़ते समय अपडेटर का कॉन्टेक्स्ट सेव करने के लिए किया जाएगा.

जब EnterContainer() तरीका वापस लाया जाता है, तो अपडेटर को कंटेनर के पहले सदस्य से पहले तुरंत रखा जाता है. बार-बार Next() को कॉल करने से अपडेटर को कलेक्शन के सदस्यों के ज़रिए तब तक आगे बढ़ाया जाएगा, जब तक कि वह खत्म नहीं हो जाता. इसके बाद, अपडेटर WEAVE_END_OF_TLV को वापस कर देगा.

ऐप्लिकेशन के कंटेनर को पढ़ने के बाद, यह ExitContainer() तरीके को कॉल करके कंटेनर के बाद एलिमेंट को पढ़ना जारी रख सकता है.

ब्यौरा
पैरामीटर
[out] outerContainerType
TLVType वैल्यू का रेफ़रंस, जिसे अपडेटर का कॉन्टेक्स्ट मिलेगा.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका कामयाब हो गया हो.
WEAVE_ERROR_INCORRECT_STATE
अगर TLVUpdater रीडर को कंटेनर एलिमेंट पर न रखा गया हो.
other
कोई अन्य Weave या प्लैटफ़ॉर्म गड़बड़ी कोड, जो TLVWriter::StartContainer() या TLVReader::EnterContainer() से मिलता है.

ExitContainer

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

यह फ़ंक्शन, TLV कंटेनर एलिमेंट की रीडिंग को पूरा करता है. साथ ही, आउटपुट TLV में TLV एलिमेंट के आखिरी हिस्से को कोड में बदल देता है.

ExitContainer() का तरीका, EnterContainer() को कॉल करने के बाद TLVUpdater ऑब्जेक्ट की स्थिति को पहले जैसा करता है. EnterContainer() को किए जाने वाले हर कॉल के लिए, EnterContainer() तरीके से दी गई कॉन्टेक्स्ट वैल्यू को पास करते हुए ExitContainer() के लिए एक संबंधित कॉल करना चाहिए.

जब ExitContainer() वापस आता है, तो TLVUpdater रीडर को इनपुट TLV में कंटेनर के बाद आने वाले पहले एलिमेंट के ठीक पहले पोज़िशन किया जाता है. इस पॉइंट से ऐप्लिकेशन, बाकी बचे किसी भी एलिमेंट के ज़रिए आगे बढ़ने के लिए Next() को कॉल कर सकते हैं.

EnterContainer() को कॉल करने के बाद, ऐप्लिकेशन किसी भी समय अपडेटर पर ExitContainer() को कॉल कर सकते हैं, चाहे मौजूदा कंटेनर के सभी एलिमेंट पढ़े गए हों या नहीं. साथ ही, यह भी ध्यान रखें कि कंटेनर के सभी एलिमेंट को पढ़ने से पहले, ExitContainer() को कॉल करने से, आउटपुट TLV में अपडेट किया गया कंटेनर छोटा हो जाएगा.

ब्यौरा
पैरामीटर
[in] outerContainerType
वह TLVType वैल्यू, जो EnterContainer() तरीके से मिलती है.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका कामयाब हो गया हो.
WEAVE_ERROR_TLV_UNDERRUN
अगर मौजूद TLV एन्कोडिंग समय से पहले खत्म हो गई.
WEAVE_ERROR_INVALID_TLV_ELEMENT
अगर अपडेटर को TLV एलिमेंट टाइप मिला है, तो वह अमान्य है या काम नहीं करता.
WEAVE_ERROR_INVALID_TLV_TAG
अगर अपडेटर को किसी अमान्य कॉन्टेक्स्ट में TLV टैग मिला है.
other
कोई अन्य Weave या प्लैटफ़ॉर्म की गड़बड़ी का कोड, जो TLVWriter::EndContainer() या TLVReader::ExitContainer() से मिलता है.

बिलिंग करें

WEAVE_ERROR Finalize(
  void
)

पाएं

WEAVE_ERROR Get(
  bool & v
)

पाएं

WEAVE_ERROR Get(
  int8_t & v
)

पाएं

WEAVE_ERROR Get(
  int16_t & v
)

पाएं

WEAVE_ERROR Get(
  int32_t & v
)

पाएं

WEAVE_ERROR Get(
  int64_t & v
)

पाएं

WEAVE_ERROR Get(
  uint8_t & v
)

पाएं

WEAVE_ERROR Get(
  uint16_t & v
)

पाएं

WEAVE_ERROR Get(
  uint32_t & v
)

पाएं

WEAVE_ERROR Get(
  uint64_t & v
)

पाएं

WEAVE_ERROR Get(
  float & v
)

पाएं

WEAVE_ERROR Get(
  double & v
)

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

GetContainerType

TLVType GetContainerType(
  void
) const 

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

GetImplicitProfileId

uint32_t GetImplicitProfileId(
  void
)

GetLength

uint32_t GetLength(
  void
) const 

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

GetLengthWritten

uint32_t GetLengthWritten(
  void
)

GetReader

void GetReader(
  TLVReader & containerReader
)

GetRemainingFreeLength

uint32_t GetRemainingFreeLength(
  void
)

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

GetTag

uint64_t GetTag(
  void
) const 

GetType

TLVType GetType(
  void
) const 

Init

WEAVE_ERROR Init(
  uint8_t *buf,
  uint32_t dataLen,
  uint32_t maxLen
)

सिंगल इनपुट बफ़र में बदलाव करने के लिए, TLVUpdater ऑब्जेक्ट शुरू करें.

इस तरीके का इस्तेमाल करने पर, बफ़र में मौजूद TLV डेटा को बफ़र के आखिर में ले जाया जाता है और इस बफ़र में एक निजी TLVReader ऑब्जेक्ट शुरू किया जाता है. उस खाली जगह पर निजी TLVWriter ऑब्जेक्ट भी शुरू होता है जो अब शुरुआत में उपलब्ध होता है. ऐप्लिकेशन, TLV डेटा को पार्स करने और मौजूदा एलिमेंट में बदलाव करने/मिटाने या कोड में बदलने के तरीके में नए एलिमेंट जोड़ने के लिए, TLVUpdater ऑब्जेक्ट का इस्तेमाल कर सकते हैं.

ब्यौरा
पैरामीटर
[in] buf
बफ़र का पॉइंटर, जिसमें TLV डेटा मौजूद है, जिसमें बदलाव करना है.
[in] dataLen
बफ़र में TLV डेटा की लंबाई.
[in] maxLen
बफ़र की कुल लंबाई.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका कामयाब हो गया हो.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बफ़र पता अमान्य है.
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर बफ़र का साइज़ बहुत छोटा हो.

Init

WEAVE_ERROR Init(
  TLVReader & aReader,
  uint32_t freeLen
)

TLVReader का इस्तेमाल करके, TLVUpdater ऑब्जेक्ट को शुरू करें.

इस तरीके का इस्तेमाल करने पर, TLVReader के ज़रिए बताए गए बफ़र में मौजूद TLV डेटा को मौजूदा रीड पॉइंट से बफ़र के आखिर में ले जाया जाता है. इस नई जगह से पढ़ने के लिए, एक नया निजी TLVReader ऑब्जेक्ट शुरू किया गया है. वहीं, खाली किए गए बफ़र स्पेस में लिखने के लिए, एक नया निजी TLVWriter ऑब्जेक्ट शुरू किया गया है.

ध्यान दें कि अगर TLVReader पहले से ही "चालू" है कोई एलिमेंट होता है, तो पहले उसका बैक-ऑफ़ उस एलिमेंट के शुरू में लिया जाता है. यह भी ध्यान रखें कि यह बैकिंग ऑफ़, कंटेनर एलिमेंट के साथ अच्छे से काम करता है. उदाहरण के लिए, अगर TLVReader का इस्तेमाल EnterContainer() को कॉल करने के लिए पहले ही किया जा चुका है, तो बैक-ऑफ़ करने के लिए कुछ भी नहीं है. हालांकि, अगर कंटेनर एलिमेंट में TLVReader को सेट किया गया था और EnterContainer() को कॉल नहीं किया गया था, तो TLVReader ऑब्जेक्ट को कंटेनर हेड की शुरुआत में बैक-ऑफ़ कर दिया जाता है.

वापस आने से पहले, इनपुट TLVReader ऑब्जेक्ट को मिटा दिया जाएगा. साथ ही, वापस लौटने पर ऐप्लिकेशन को इसका इस्तेमाल नहीं करना चाहिए.

ब्यौरा
पैरामीटर
[in,out] aReader
TLVReader ऑब्जेक्ट का रेफ़रंस, जिसे लौटने से पहले मिटा दिया जाएगा.
[in] freeLen
पहले से कोड में बदले गए डेटा बफ़र में मौजूद खाली जगह (बाइट में) की लंबाई.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका कामयाब हो गया हो.
WEAVE_ERROR_INVALID_ARGUMENT
अगर बफ़र पता अमान्य है.
WEAVE_ERROR_NOT_IMPLEMENTED
अगर रीडर को बफ़र की चेन पर शुरू किया गया था.

ले जाएं

WEAVE_ERROR Move(
  void
)

मौजूदा एलिमेंट को इनपुट TLV से आउटपुट TLV तक कॉपी करता है.

Move() तरीका, उस मौजूदा एलिमेंट को कॉपी करता है जिस पर TLVUpdater के रीडर को रखा गया है. इसे TLVUpdater के राइटर के लिए सेट किया जाता है. इस तरीके को कॉल करने से पहले, ऐप्लिकेशन को Next() को कॉल करना चाहिए और TLVUpdater के रीडर को किसी एलिमेंट पर रखना चाहिए. TLVReader::Next() तरीके की तरह ही, अगर कॉल के समय रीडर को किसी कंटेनर एलिमेंट पर रखा जाता है, तो कंटेनर के सभी मेंबर कॉपी हो जाएंगे. अगर रीडर किसी एलिमेंट पर सेट नहीं है, तो इस तरीके को कॉल करने में कोई बदलाव नहीं होगा.

ब्यौरा
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर TLVUpdater रीडर को किसी नए एलिमेंट पर रखा गया था.
WEAVE_END_OF_TLV
अगर TLVUpdater का रीडर, कंटेनर के आखिर में है.
WEAVE_ERROR_INVALID_TLV_ELEMENT
अगर TLVIpdater को पढ़ने के लिए किसी मान्य TLV एलिमेंट पर रखा गया है.
other
यह फ़ंक्शन TLVReader::Skip() तरीका इस्तेमाल करके गड़बड़ी के अन्य कोड दिखाता है.

MoveUntilEnd

void MoveUntilEnd(
  void
)

TLVUpdater के मौजूदा रीड पॉइंट से इनपुट TLV बफ़र के खत्म होने तक आउटपुट में सभी को ले जाएं.

इस तरीके का इस्तेमाल करके, TLVUpdater के मौजूदा रीड पॉइंट से सब कुछ को, रीडर बफ़र के आखिर तक TLVUpdater के राइटर तक ट्रांसफ़र किया जा सकता है.

अगला

WEAVE_ERROR Next(
  void
)

मौजूदा एलिमेंट को छोड़ें और TLVUpdater ऑब्जेक्ट को इनपुट TLV में अगले एलिमेंट पर ले जाएं.

Next() तरीका, इनपुट TLV के मौजूदा एलिमेंट को छोड़ देता है और TLVUpdater के रीडर को उस अगले एलिमेंट पर ले जाता है जो उसी कंटेनमेंट कॉन्टेक्स्ट में मौजूद होता है. खास तौर पर, अगर रीडर TLV एन्कोडिंग के सबसे बाहरी लेवल पर सेट है, तो Next() को कॉल करने पर, यह अगले सबसे टॉप एलिमेंट पर पहुंच जाएगा. अगर रीडर किसी TLV कंटेनर एलिमेंट (स्ट्रक्चर, अरे या पाथ) के अंदर है, तो Next() को कॉल करने से यह कंटेनर के अगले मेंबर एलिमेंट पर ले जाएगा.

Next(), पढ़ने वाले कॉन्टेंट को मौजूदा कंटेनमेंट कॉन्टेक्स्ट में आने से रोकता है. इसलिए, जब रीडर को किसी कंटेनर एलिमेंट पर रखा गया हो, तब Next() को कॉल किया जा सकता है. कॉल, कंटेनर के सदस्य एलिमेंट (और किसी भी नेस्ट किए गए कंटेनर के सदस्यों) के ऊपर होगा. ऐसा तब तक होगा, जब तक वह कंटेनर के बाद पहले एलिमेंट तक नहीं पहुंचता.

जब किसी खास कंटेनमेंट में कोई और एलिमेंट नहीं होगा, तो Next() तरीका WEAVE_END_OF_TLV दिखाएगा. साथ ही, पाठक की पोज़िशन में कोई बदलाव नहीं होगा.

ब्यौरा
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर TLVUpdater रीडर को किसी नए एलिमेंट पर रखा गया था.
other
यह नीति, TLVReader::Skip() और TLVReader::Next() तरीके से मिले Weave या प्लैटफ़ॉर्म की गड़बड़ी के कोड दिखाता है.

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  int16_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  int32_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  int64_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  uint16_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  uint32_t v
)

रखें

WEAVE_ERROR Put(
  uint64_t tag,
  uint64_t v
)

रखें

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

रखें

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

रखें

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

रखें

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

रखें

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

रखें

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

रखें

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

रखें

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
)

PutBoolean

WEAVE_ERROR PutBoolean(
  uint64_t tag,
  bool v
)

PutBytes

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

PutNull

WEAVE_ERROR PutNull(
  uint64_t tag
)

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

PutString

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

SetImplicitProfileId

void SetImplicitProfileId(
  uint32_t profileId
)

TLVUpdater ऑब्जेक्ट के लिए इंप्लिसिट प्रोफ़ाइल आईडी सेट करें.

यह तरीका, TLVUpdater ऑब्जेक्ट के लिए इंप्लिसिट प्रोफ़ाइल आईडी सेट करता है. जब अपडेटर से किसी नए एलिमेंट को कोड में बदलने के लिए कहा जाता है, तो अगर नए एलिमेंट से जुड़े टैग का प्रोफ़ाइल आईडी, profileId की वैल्यू से मेल खाता है, तो अपडेटर टैग को इंप्लिसिट रूप में कोड में बदल देगा. इससे, इस प्रोसेस में प्रोफ़ाइल आईडी हट जाएगा.

ब्यौरा
पैरामीटर
[in] profileId
टैग का प्रोफ़ाइल आईडी, जिसे इंप्लिसिट रूप में एन्कोड किया जाना चाहिए.

StartContainer

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

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)