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 के PutBytes() और AskString() मेथड के बारे में एक खास बात यह है कि यह, कोड में बदलने के तरीके को खराब स्थिति में छोड़ सकता है. इसमें सिर्फ़ एलिमेंट हेडर वाला डेटा ओवरफ़्लो होने पर लिखा होता है. एन्कोडिंग लिखने के लिए करीब काफ़ी खाली जगह है, यह पक्का करने के लिए ऐप्लिकेशन getRemainingFreeLength() को कॉल कर सकते हैं. ध्यान दें कि getRemainingFreeLength() आपको सिर्फ़ उपलब्ध खाली बाइट के बारे में जानकारी देता है. साथ ही, ऐप्लिकेशन के पास यह जानने का कोई तरीका नहीं है कि कोड में बदले गए डेटा को कितना लंबा होना चाहिए. ओवरफ़्लो होने की स्थिति में, PushBytes() और पटास्ट्रिंग(), दोनों कॉलर को 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 एलिमेंट के आखिर को कोड में बदलता है.
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)
इनपुट टीएलवी से मौजूदा एलिमेंट को आउटपुट टीएलवी में कॉपी करता है.
MoveUntilEnd(void)
void
TLVUpdater के मौजूदा रीड पॉइंट से लेकर इनपुट TLV के बफ़र के आखिर तक, सब कुछ को आउटपुट में बदलें.
Next(void)
मौजूदा एलिमेंट को छोड़ें और इनपुट TLV में, TLVUpdater ऑब्जेक्ट को अगले एलिमेंट पर ले जाएं.
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 ऑब्जेक्ट तैयार करता है.

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

EnterContainer() तरीका, TLV कंटेनर (स्ट्रक्चर, अरे या पाथ) के मेंबर एलिमेंट पढ़ने के लिए, मौजूदा TLVUpdater ऑब्जेक्ट को तैयार करता है. 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 एलिमेंट के आखिर को कोड में बदलता है.

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

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

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

जानकारी
पैरामीटर
[in] outerContainerType
EnterContainer() तरीके से मिली TLVType वैल्यू.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका काम कर गया है.
WEAVE_ERROR_TLV_UNDERRUN
अगर मौजूदा टीएलवी एन्कोडिंग समय से पहले खत्म हो गई हो.
WEAVE_ERROR_INVALID_TLV_ELEMENT
अगर अपडेटर को किसी अमान्य या काम न करने वाले TLV एलिमेंट टाइप का सामना करना पड़ता है.
WEAVE_ERROR_INVALID_TLV_TAG
अगर अपडेटर को किसी अमान्य कॉन्टेक्स्ट में टीएलवी टैग मिला है, तो
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 

शुरू करें

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

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

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

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

शुरू करें

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
)

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

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::स्किप() तरीके से लौटाए गए अन्य गड़बड़ी कोड दिखाता है.

MoveUntilEnd

void MoveUntilEnd(
  void
)

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

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

आगे बढ़ें

WEAVE_ERROR Next(
  void
)

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

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

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

जब किसी कंटेनमेंट कॉन्टेक्स्ट में कोई और एलिमेंट नहीं होता है, तो Next() तरीका WEAVE_END_OF_TLV गड़बड़ी दिखाएगा और रीडर की जगह में कोई बदलाव नहीं करेगा.

जानकारी
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर TLVUpdater रीडर को किसी नए एलिमेंट पर सेट किया गया हो.
other
यह फ़ंक्शन TLVReader::स्किप() और 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
)