nl:: बुनें:: टीएलवी:: टीएलवी रीडर

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

बुनाई में इनकोडिंग डेटा के लिए एक स्मृति कुशल पार्सर प्रदान करता है TLV प्रारूप।

सारांश

TLVReader औजार एक आगे केवल, "पुल शैली" Weave के लिए पार्सर TLV डेटा।TLVReader वस्तु एक कर्सर की एक अनुक्रम पर पुनरावृति करने के लिए इस्तेमाल किया जा सकता है के रूप में संचालित TLV तत्वों और उनके सामग्रियों की विवेचना। जब एक तत्व पर तैनात, आवेदन पाठक के लिए कॉल कर सकते हैं () प्राप्त वर्तमान तत्व के प्रकार और टैग को क्वेरी करने के तरीकों, और कोई भी संबद्ध मान प्राप्त करने के। पाठक का अगला () विधि तत्व से तत्व के लिए अग्रिम करने के लिए प्रयोग किया जाता है।

एकTLVReader वस्तु हमेशा से पहले या तो स्थिति में है, पर या एक के बाद TLV तत्व। जब पहली बार प्रारंभ, एकTLVReader एन्कोडिंग के पहले तत्व से ठीक पहले स्थिति में है। पढ़ना शुरू करने के लिए, एक आवेदन के लिए एक प्रारंभिक फोन करना चाहिए अगला () पहले तत्व पर पाठक स्थिति विधि। जब एक कंटेनर तत्व encounteredeither एक संरचना, किसी सरणी या एक paththe है OpenContainer () या EnterContainer () तरीकों कंटेनर की सामग्री के माध्यम से पुनरावृति करने के लिए इस्तेमाल किया जा सकता है।

पाठक एक के अंत तक पहुँच जाता है TLV एन्कोडिंग, या एक कंटेनर के भीतर पिछले तत्व, इसमें से एक WEAVE_END_OF_TLV त्रुटि वापस लौट कर आवेदन का संकेत अगला () विधि। पाठक जब तक यह इसे पुनः शुरू है WEAVE_END_OF_TLV वापस जाने के लिए जारी रहेगा, या वर्तमान कंटेनर से बाहर निकल गया है (के माध्यम से CloseContainer () / ExitContainer () )।

एकTLVReader वस्तु एक निश्चित इनपुट बफर से, या एक या अधिक PacketBuffers की एक श्रृंखला से सीधे डेटा पार्स कर सकते हैं। साथ ही, आवेदन पत्र एक की आपूर्ति कर सकते GetNextBuffer एक मनमाना स्रोत, जैसे एक सॉकेट या एक सीरियल पोर्ट से पाठक के लिए फ़ीड डेटा को कार्य करते हैं।

विरासत

प्रत्यक्ष ज्ञात उपवर्ग:
  nl::Weave::Profiles::DataManagement_Current::CircularEventReader
  nl::Weave::TLV::CircularTLVReader

सार्वजनिक प्रकार

GetNextBufferFunct )(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen) WEAVE_ERROR(*
एक समारोह है कि अतिरिक्त पुनः प्राप्त करने के लिए किया जा सकता TLV डेटा पार्स किया जा सकता।

सार्वजनिक गुण

AppData
void *
एक पॉइंटर फ़ील्ड जिसका उपयोग एप्लिकेशन-विशिष्ट डेटा के लिए किया जा सकता है।
GetNextBuffer
एक समारोह है कि के लिए इनपुट डेटा का उत्पादन करेगा के लिए एक सूचकTLVReader वस्तु।
ImplicitProfileId
uint32_t
प्रोफाइल आईडी को निहित रूप में एन्कोड किए गए प्रोफाइल टैग के लिए इस्तेमाल किया जाना है।

संरक्षित गुण

mBufEnd
const uint8_t *
mBufHandle
uintptr_t
mContainerType
mControlByte
uint16_t
mElemLenOrVal
uint64_t
mElemTag
uint64_t
mLenRead
uint32_t
mMaxLen
uint32_t
mReadPoint
const uint8_t *

सार्वजनिक समारोह

CloseContainer (TLVReader & containerReader)
एक के पढ़ने को पूरा करता TLV के लिए एक कॉल के बाद कंटेनर OpenContainer () ।
DupBytes (uint8_t *& buf, uint32_t & dataLen)
वर्तमान बाइट या UTF8 स्ट्रिंग के मान वाले बफर को आवंटित और लौटाता है।
DupString (char *& buf)
वर्तमान बाइट या UTF8 स्ट्रिंग के शून्य-समाप्त मान वाले बफर को आवंटित और लौटाता है।
EnterContainer ( TLVType & outerContainerType)
एक तैयारTLVReader के सदस्यों को पढ़ने के लिए वस्तु TLV कंटेनर तत्व।
ExitContainer ( TLVType outerContainerType)
एक के पढ़ने को पूरा करता TLV कंटेनर और एक तैयार करताTLVReader वस्तु कंटेनर के बाद तत्वों को पढ़ने के लिए।
Get (bool & v)
वर्तमान तत्व का मान बूल प्रकार के रूप में प्राप्त करें।
Get (int8_t & v)
वर्तमान तत्व का मान 8-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (int16_t & v)
वर्तमान तत्व का मान 16-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (int32_t & v)
वर्तमान तत्व का मान 32-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (int64_t & v)
वर्तमान तत्व का मान 64-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (uint8_t & v)
वर्तमान तत्व का मान 8-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (uint16_t & v)
वर्तमान तत्व का मान 16-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (uint32_t & v)
वर्तमान तत्व का मान 32-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (uint64_t & v)
वर्तमान तत्व का मान 64-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।
Get (float & v)
Get (double & v)
वर्तमान तत्व का मान डबल-सटीक फ़्लोटिंग पॉइंट नंबर के रूप में प्राप्त करें।
GetBufHandle (void) const
uintptr_t
GetBytes (uint8_t *buf, uint32_t bufSize)
वर्तमान बाइट या UTF8 स्ट्रिंग तत्व का मान प्राप्त करें।
GetContainerType (void) const
कंटेनर के भीतर जो के प्रकार रिटर्नTLVReader वर्तमान में पढ़ रहा है।
GetControlByte (void) const
uint16_t
वर्तमान के साथ जुड़े नियंत्रण बाइट रिटर्न TLV तत्व।
GetDataPtr (const uint8_t *& data)
एक के प्रारंभिक एन्कोडेड बाइट के लिए सूचक जाओ TLV बाइट या UTF8 स्ट्रिंग तत्व।
GetLength (void) const
uint32_t
वर्तमान से संबद्ध डेटा का लंबाई रिटर्न TLV तत्व।
GetLengthRead (void) const
uint32_t
पाठक के प्रारंभ होने के बाद से पढ़ी गई बाइट्स की कुल संख्या लौटाता है।
GetReadPoint (void) const
const uint8_t *
पाठक की वर्तमान स्थिति से मेल खाने वाले अंतर्निहित इनपुट बफर में बिंदु प्राप्त करें।
GetRemainingLength (void) const
uint32_t
बाइट्स की कुल संख्या लौटाता है जिसे तब तक पढ़ा जा सकता है जब तक कि अधिकतम पढ़ने की लंबाई नहीं हो जाती।
GetString (char *buf, uint32_t bufSize)
वर्तमान बाइट या UTF8 स्ट्रिंग तत्व का मान एक नल टर्मिनेटेड स्ट्रिंग के रूप में प्राप्त करें।
GetTag (void) const
uint64_t
वर्तमान से संबद्ध टैग रिटर्न TLV तत्व।
GetType (void) const
वर्तमान के प्रकार रिटर्न TLV तत्व।
Init (constTLVReader & aReader)
void
एक आरंभीकृतTLVReader दूसरे से वस्तुTLVReader वस्तु।
Init (const uint8_t *data, uint32_t dataLen)
void
एक आरंभीकृतTLVReader एक भी इनपुट बफर से पढ़ने के लिए वस्तु।
Init ( PacketBuffer *buf, uint32_t maxLen)
void
एक आरंभीकृतTLVReader एक भी PacketBuffer से पढ़ने के लिए वस्तु।
Init ( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
void
एक आरंभीकृतTLVReader एक एक या अधिक PacketBuffers से पढ़ने के लिए वस्तु।
Next (void)
अग्रिमTLVReader अगले करने के लिए वस्तु TLV तत्व पढ़ने के लिए।
Next ( TLVType expectedType, uint64_t expectedTag)
अग्रिमTLVReader अगले करने के लिए वस्तु TLV तत्व, पढ़ने के लिए प्रकार और नए तत्व का टैग जोर देते हुए।
OpenContainer (TLVReader & containerReader)
एक नया आरंभीकृतTLVReader एक के सदस्यों को पढ़ने के लिए वस्तु TLV कंटेनर तत्व।
Skip (void)
अग्रिमTLVReader वर्तमान के बाद तुरंत करने के लिए वस्तु TLV तत्व।
VerifyEndOfContainer (void)
Verifies TVLReader वस्तु एक के अंत में है कि TLV कंटेनर।

संरक्षित कार्य

ClearElementState (void)
void
के राज्य साफ़TLVReader
ElementType (void) const
TLVElementType
यह एक निजी विधि है जो mControlByte से TLVElementType लौटाती है।
EnsureData ( WEAVE_ERROR noDataErr)
GetElementHeadLength (uint8_t & elemHeadBytes) const
यह एक निजी विधि एक की लंबाई की गणना करने के लिए प्रयोग किया जाता है TLV तत्व सिर।
IsContainerOpen (void) const
bool
ReadData (uint8_t *buf, uint32_t len)
ReadElement (void)
ReadTag (TLVTagControl tagControl, const uint8_t *& p)
uint64_t
SetContainerOpen (bool aContainerOpen)
void
SkipData (void)
वर्तमान में शामिल किसी भी डेटा जाएं TLV एक गंतव्य बफर के बिना इस पर पढ़ कर।
SkipToEndOfContainer (void)
VerifyElement (void)

संरक्षित स्थिर कार्य

FailGetNextBuffer (TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)
GetNextPacketBuffer (TLVReader & reader, uintptr_t & bufHandle, const uint8_t *& bufStart, uint32_t & bufLen)

सार्वजनिक प्रकार

गेटनेक्स्टबफ़रफ़ंक्शन

WEAVE_ERROR(* GetNextBufferFunct)(TLVReader &reader, uintptr_t &bufHandle, const uint8_t *&bufStart, uint32_t &bufLen)

एक समारोह है कि अतिरिक्त पुनः प्राप्त करने के लिए किया जा सकता TLV डेटा पार्स किया जा सकता।

इस प्रकार के कार्य एक के लिए फ़ीड इनपुट डेटा के लिए उपयोग किया जाता हैTLVReader । जब कॉल किया जाता है, तो फ़ंक्शन से पाठक को पार्स या संकेत देने के लिए अतिरिक्त डेटा का उत्पादन करने की उम्मीद है कि कोई और डेटा उपलब्ध नहीं है।

विवरण
मापदंडों
[in] reader
का संदर्भTLVReader उद्देश्य यह है कि इनपुट डेटा अनुरोध कर रहा है।
[in,out] bufHandle
एक uintptr_t मान का संदर्भ जिसे फ़ंक्शन कॉल के बीच संदर्भ डेटा संग्रहीत करने के लिए उपयोग कर सकता है। यह मान पहली कॉल से पहले 0 से प्रारंभ होता है।
[in,out] bufStart
डेटा पॉइंटर का संदर्भ। कार्य करने के लिए प्रविष्टि पर, bufStart पिछले परे एक बाइट के लिए अंक TLV डेटा बाइट पाठक द्वारा खपत। बाहर निकलने पर, bufStart नए की पहली बाइट के लिए बात करने के लिए उम्मीद है TLV डेटा पार्स किया जा सकता। नया पॉइंटर मान पहले खपत किए गए डेटा के समान बफर के भीतर हो सकता है, या यह पूरी तरह से नए बफर को इंगित कर सकता है।
[out] bufLen
एक अहस्ताक्षरित पूर्णांक कि समारोह की संख्या को सेट करना होगा करने के लिए एक संदर्भ TLV डेटा नहीं दिया जा रहा है बाइट्स। इनपुट के अंत तो TLV डेटा तक पहुँच गया है, समारोह 0 को यह मूल्य निर्धारित करना चाहिए।
वापसी मूल्य
WEAVE_NO_ERROR
समारोह को सफलतापूर्वक अधिक उत्पादन किया तो TLV डेटा, या इनपुट डेटा के अंत तक पहुँच गया था ( bufLen इस मामले में 0 पर सेट किया जाना चाहिए)।
other
अन्य वीव या प्लेटफ़ॉर्म-विशिष्ट त्रुटि कोड इंगित करते हैं कि फ़ंक्शन को अनुरोधित डेटा बनाने से रोकने में त्रुटि हुई।

सार्वजनिक गुण

एप्लिकेशन आंकड़ा

void * AppData

एक पॉइंटर फ़ील्ड जिसका उपयोग एप्लिकेशन-विशिष्ट डेटा के लिए किया जा सकता है।

गेटनेक्स्टबफर

GetNextBufferFunct GetNextBuffer

एक समारोह है कि के लिए इनपुट डेटा का उत्पादन करेगा के लिए एक सूचकTLVReader वस्तु।

यदि NULL (डिफ़ॉल्ट मान) पर सेट किया जाता है, तो पाठक यह मान लेगा कि आगे कोई इनपुट डेटा उपलब्ध नहीं है।

GetNextBuffer किसी भी समय किसी एप्लिकेशन द्वारा सेट किया जा सकता है, लेकिन आम तौर पर पाठक प्रारंभ होने पर सेट किया जाता है।

GetNextBufferFunct प्रकार की परिभाषा GetNextBuffer फ़ंक्शन को लागू करने के बारे में अतिरिक्त जानकारी के लिए देखें।

लागू प्रोफ़ाइल आईडी

uint32_t ImplicitProfileId

प्रोफाइल आईडी को निहित रूप में एन्कोड किए गए प्रोफाइल टैग के लिए इस्तेमाल किया जाना है।

पाठक एक प्रोफ़ाइल-विशिष्ट टैग है कि अंतर्निहित रूप में इनकोडिंग किया गया है का सामना करना पड़ता है, यह के मान का उपयोग करता ImplicitProfileId टैग के लिए ग्रहण प्रोफ़ाइल आईडी के रूप में संपत्ति।

डिफ़ॉल्ट रूप से, ImplicitProfileId संपत्ति kProfileIdNotSpecified को तैयार है। जब डिकोडिंग TLV कि परोक्ष एन्कोड टैग हैं, आवेदन सेट करना होगा ImplicitProfileId से पहले किसी भी पढ़ने के लिए TLV इस तरह के टैग होने तत्वों। उपयुक्त प्रोफ़ाइल आईडी आमतौर पर बोले जा रहे एप्लिकेशन या प्रोटोकॉल के संदर्भ पर निर्भर करती है।

जबकि एक परोक्ष एन्कोड टैग का सामना करना पड़ा है, तो ImplicitProfileId kProfileIdNotSpecified के लिए सेट है, पाठक एक वापस आ जाएगी WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG त्रुटि।

संरक्षित गुण

mBufEnd

const uint8_t * mBufEnd

एमबफहैंडल

uintptr_t mBufHandle

एमकंटेनर प्रकार

TLVType mContainerType

एमकंट्रोलबाइट

uint16_t mControlByte

mElemLenOrVal

uint64_t mElemLenOrVal

एमईएलईएमटैग

uint64_t mElemTag

एमएलएनपढ़ें

uint32_t mLenRead

एममैक्सलेन

uint32_t mMaxLen

mReadPoint

const uint8_t * mReadPoint

सार्वजनिक समारोह

बंद कंटेनर

WEAVE_ERROR CloseContainer(
  TLVReader & containerReader
)

एक के पढ़ने को पूरा करता TLV के लिए एक कॉल के बाद कंटेनर OpenContainer () ।

CloseContainer () विधि एक माता पिता के राज्य पुनर्स्थापित करताTLVReader के लिए एक कॉल के बाद वस्तु OpenContainer () । के लिए हर कॉल के लिए OpenContainer () आवेदन करने के लिए एक इसी फोन करना चाहिए CloseContainer () , दोनों तरीकों के लिए एक ही कंटेनर पाठक के लिए एक संदर्भ गुजर।

जब CloseContainer () रिटर्न, माता पिता पाठक पहला तत्व है कि कंटेनर में निम्न प्रकार से ठीक पहले स्थिति में है। इस बिंदु से एक आवेदन पत्र का उपयोग कर सकते अगला () किसी भी शेष तत्वों के माध्यम से अग्रिम करने के लिए विधि।

एप्लिकेशन को बंद कॉल कर सकते हैं CloseContainer () है कि क्या अंतर्निहित कंटेनर में सभी तत्वों को पढ़ कर दिया गया है की परवाह किए बिना समय में किसी भी बिंदु पर एक माता पिता पाठक पर,। बाद CloseContainer () कहा गया है, आवेदन कंटेनर पाठक 'de-प्रारंभ' और यह फिर से आरंभ करने के बिना आगे इसका इस्तेमाल नहीं करना चाहिए विचार करना चाहिए।

विवरण
मापदंडों
[in] containerReader
का संदर्भTLVReader उद्देश्य यह है कि करने के लिए आपूर्ति की गई थी OpenContainer () विधि।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_INCORRECT_STATE
यदि OpenContainer () पाठक पर बुलाया नहीं किया गया है, या यदि कंटेनर पाठक के लिए पारित से मेल नहीं खाता OpenContainer () विधि।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_INVALID_TLV_ELEMENT
पाठक एक अमान्य या असमर्थित का सामना करना पड़ा, तो TLV तत्व प्रकार।
WEAVE_ERROR_INVALID_TLV_TAG
पाठक एक का सामना करना पड़ा, तो TLV गलत संदर्भ में टैग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

डुपबाइट्स

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

वर्तमान बाइट या UTF8 स्ट्रिंग के मान वाले बफर को आवंटित और लौटाता है।

यह विधि वर्तमान स्थिति में बाइट या यूटीएफ -8 स्ट्रिंग तत्व से जुड़े डेटा की एक प्रति के लिए बफर बनाती है और लौटाती है। बफर के लिए मेमोरी malloc() के साथ प्राप्त की जाती है और जब इसकी आवश्यकता नहीं होती है तो कॉलर द्वारा फ्री() से मुक्त किया जाना चाहिए।

विवरण
मापदंडों
[out] buf
एक सूचक जो करने के लिए का एक ढेर-आवंटित बफर का संदर्भ dataLen बाइट्स सफलता पर आवंटित किया जाएगा।
[out] dataLen
आकार के लिए भंडारण के लिए एक संदर्भ, बाइट में, की buf सफलता पर।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बाइट या UTF8 स्ट्रिंग, या पाठक एक तत्व पर तैनात नहीं है।
WEAVE_ERROR_NO_MEMORY
यदि आउटपुट बफर के लिए मेमोरी आवंटित नहीं की जा सकती है।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
यदि लक्ष्य प्लेटफ़ॉर्म मॉलोक () और फ्री () का समर्थन नहीं करता है।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

डुपस्ट्रिंग

WEAVE_ERROR DupString(
  char *& buf
)

वर्तमान बाइट या UTF8 स्ट्रिंग के शून्य-समाप्त मान वाले बफर को आवंटित और लौटाता है।

यह विधि वर्तमान स्थिति में बाइट या यूटीएफ -8 स्ट्रिंग तत्व से जुड़े डेटा की एक शून्य-समाप्त प्रतिलिपि के लिए बफर बनाती है और लौटाती है। बफर के लिए मेमोरी malloc() के साथ प्राप्त की जाती है और जब इसकी आवश्यकता नहीं होती है तो कॉलर द्वारा फ्री() से मुक्त किया जाना चाहिए।

विवरण
मापदंडों
[out] buf
एक पॉइंटर का संदर्भ जिसके लिए एक ढेर-आवंटित बफर सफलता पर सौंपा जाएगा।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बाइट या UTF8 स्ट्रिंग, या पाठक एक तत्व पर तैनात नहीं है।
WEAVE_ERROR_NO_MEMORY
यदि आउटपुट बफर के लिए मेमोरी आवंटित नहीं की जा सकती है।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_UNSUPPORTED_WEAVE_FEATURE
यदि लक्ष्य प्लेटफ़ॉर्म मॉलोक () और फ्री () का समर्थन नहीं करता है।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

एंटरकंटेनर

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

एक तैयारTLVReader के सदस्यों को पढ़ने के लिए वस्तु TLV कंटेनर तत्व।

EnterContainer () विधि वर्तमान तैयार करताTLVReader वस्तु एक के सदस्य तत्वों पढ़ने शुरू करने के लिए TLV कंटेनर (एक संरचना, सरणी या पथ)। के लिए हर कॉल के लिए EnterContainer () आवेदन करने के लिए एक इसी फोन करना चाहिए ExitContainer ()

जब EnterContainer () कहा जाता हैTLVReader वस्तु कंटेनर तत्व पर तैनात किया जाना चाहिए पढ़ने के लिए। विधि एक तर्क के रूप में एक TLVType मान का संदर्भ लेती है जिसका उपयोग कंटेनर को पढ़ते समय पाठक के संदर्भ को सहेजने के लिए किया जाएगा।

जब EnterContainer () विधि रिटर्न, पाठक कंटेनर के पहले सदस्य से ठीक पहले स्थिति में है। बार-बार कॉल अगला () संग्रह के सदस्यों के माध्यम से पाठक अग्रिम जाएगा, जब तक अंत, तक पहुँच जाता है, जिसके आधार पर पाठक WEAVE_END_OF_TLV वापस आ जाएगी।

एक बार आवेदन एक कंटेनर पढ़ने समाप्त हो गया है यह फोन करके कंटेनर के बाद तत्वों पढ़ने जारी रख सकते हैं ExitContainer () विधि।

विवरण
मापदंडों
[out] outerContainerType
एक TLVType मान का संदर्भ जो पाठक के संदर्भ को प्राप्त करेगा।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_INCORRECT_STATE
यदि वर्तमान तत्व कंटेनर तत्व पर स्थित नहीं है।

बाहर निकलें कंटेनरCon

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

एक के पढ़ने को पूरा करता TLV कंटेनर और एक तैयार करताTLVReader वस्तु कंटेनर के बाद तत्वों को पढ़ने के लिए।

ExitContainer () विधि एक की स्थिति को पुनर्स्थापित करताTLVReader के लिए एक कॉल के बाद वस्तु EnterContainer () । के लिए हर कॉल के लिए EnterContainer () आवेदन करने के लिए एक इसी फोन करना चाहिए ExitContainer () , द्वारा लौटाए गए संदर्भ मूल्य गुजर EnterContainer () विधि।

जब ExitContainer () रिटर्न, पाठक पहला तत्व है कि कंटेनर में निम्न प्रकार से ठीक पहले स्थिति में है। इस बिंदु से एक आवेदन पत्र का उपयोग कर सकते अगला () किसी भी शेष तत्वों के माध्यम से अग्रिम करने के लिए विधि।

एक बार जब EnterContainer () बुलाया गया है, आवेदन फोन कर सकते हैं ExitContainer () है कि क्या अंतर्निहित कंटेनर में सभी तत्वों को पढ़ने के लिए किया गया है की परवाह किए बिना समय में किसी भी बिंदु पर एक पाठक पर,।

विवरण
मापदंडों
[in] outerContainerType
TLVType मूल्य कि द्वारा दिया गया था EnterContainer () विधि।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_INCORRECT_STATE
यदि OpenContainer () पाठक पर बुलाया नहीं किया गया है, या यदि कंटेनर पाठक के लिए पारित से मेल नहीं खाता OpenContainer () विधि।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_INVALID_TLV_ELEMENT
पाठक एक अमान्य या असमर्थित का सामना करना पड़ा, तो TLV तत्व प्रकार।
WEAVE_ERROR_INVALID_TLV_TAG
पाठक एक का सामना करना पड़ा, तो TLV गलत संदर्भ में टैग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

प्राप्त

WEAVE_ERROR Get(
  bool & v
)

वर्तमान तत्व का मान बूल प्रकार के रूप में प्राप्त करें।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बूलियन प्रकार, या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  int8_t & v
)

वर्तमान तत्व का मान 8-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  int16_t & v
)

वर्तमान तत्व का मान 16-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  int32_t & v
)

वर्तमान तत्व का मान 32-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  int64_t & v
)

वर्तमान तत्व का मान 64-बिट हस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  uint8_t & v
)

वर्तमान तत्व का मान 8-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा। इसी तरह, यदि एन्कोडेड पूर्णांक मान ऋणात्मक है, तो मान को अहस्ताक्षरित में बदल दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  uint16_t & v
)

वर्तमान तत्व का मान 16-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा। इसी तरह, यदि एन्कोडेड पूर्णांक मान ऋणात्मक है, तो मान को अहस्ताक्षरित में बदल दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  uint32_t & v
)

वर्तमान तत्व का मान 32-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान आउटपुट डेटा प्रकार से बड़ा है, तो परिणामी मान छोटा कर दिया जाएगा। इसी तरह, यदि एन्कोडेड पूर्णांक मान ऋणात्मक है, तो मान को अहस्ताक्षरित में बदल दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  uint64_t & v
)

वर्तमान तत्व का मान 64-बिट अहस्ताक्षरित पूर्णांक के रूप में प्राप्त करें।

यदि एन्कोडेड पूर्णांक मान ऋणात्मक है, तो मान को अहस्ताक्षरित में बदल दिया जाएगा।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV पूर्णांक प्रकार (हस्ताक्षरित या अहस्ताक्षरित), या पाठक एक तत्व पर तैनात नहीं है।

प्राप्त

WEAVE_ERROR Get(
  float & v
)

प्राप्त

WEAVE_ERROR Get(
  double & v
)

वर्तमान तत्व का मान डबल-सटीक फ़्लोटिंग पॉइंट नंबर के रूप में प्राप्त करें।

विवरण
मापदंडों
[out] v
वर्तमान के साथ जुड़े मूल्य प्राप्त TLV तत्व।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV चल बिन्दु प्रकार, या पाठक एक तत्व पर तैनात नहीं है।

गेटबफहैंडल

uintptr_t GetBufHandle(
  void
) const 

गेटबाइट्स

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

वर्तमान बाइट या UTF8 स्ट्रिंग तत्व का मान प्राप्त करें।

आवश्यक इनपुट बफर आकार निर्धारित करने के लिए, फोन GetLength () कॉल करने से पहले विधि GetBytes ()

विवरण
मापदंडों
[in] buf
स्ट्रिंग डेटा प्राप्त करने के लिए एक बफर के लिए एक सूचक।
[in] bufSize
बफर के बाइट में आकार से की ओर इशारा किया buf
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बाइट या UTF8 स्ट्रिंग, या पाठक एक तत्व पर तैनात नहीं है।
WEAVE_ERROR_BUFFER_TOO_SMALL
यदि आपूर्ति किया गया बफर वर्तमान तत्व से जुड़े डेटा को रखने के लिए बहुत छोटा है।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

GetContainer प्रकार

TLVType GetContainerType(
  void
) const 

कंटेनर के भीतर जो के प्रकार रिटर्नTLVReader वर्तमान में पढ़ रहा है।

GetContainerType () विधि के प्रकार रिटर्न TLV कंटेनर के भीतर जोTLVReader पढ़ रहा है। यदिTLVReader एक की बाहरी-सबसे स्तर पर रखा जाता है TLV एन्कोडिंग (यानी पहले, पर या बाहरी-सबसे बाद TLV तत्व), विधि kTLVType_NotSpecified वापस आ जाएगी।

विवरण
रिटर्न
वर्तमान कंटेनर की TLVType, या kTLVType_NotSpecified अगरTLVReader एक कंटेनर के भीतर तैनात नहीं है।

गेटकंट्रोलबाइट

uint16_t GetControlByte(
  void
) const 

वर्तमान के साथ जुड़े नियंत्रण बाइट रिटर्न TLV तत्व।

आदर्श रूप में, कोई भी कभी भी नियंत्रण बाइट के बारे में पता करने की जरूरत है और केवल के आंतरिक कार्यान्वयन TLV यह तक पहुंच होनी चाहिए। लेकिन, फिर भी, नियंत्रण बाइट के लिए उपयोग होने से डीबगिंग उद्देश्यों के लिए उपयोगी है TLV डीबग उपयोगिताएँ (कि कोशिश टैग नियंत्रण बाइट डिकोड करने के लिए जब सुंदर मुद्रण TLV सामग्री बफ़र)।

विवरण
रिटर्न
एक अहस्ताक्षरित पूर्णांक वर्तमान के साथ जुड़े नियंत्रण बाइट युक्त TLV तत्व। अगर पाठक एक तत्व पर तैनात नहीं किया गया है kTLVControlByte_NotSpecified दिया जाता है।

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

एक के प्रारंभिक एन्कोडेड बाइट के लिए सूचक जाओ TLV बाइट या UTF8 स्ट्रिंग तत्व।

यह विधि अंतर्निहित इनपुट बफर के भीतर एन्कोडेड स्ट्रिंग मान एक प्रत्यक्ष सूचक देता है। सफल होने के लिए, विधि के लिए आवश्यक है कि स्ट्रिंग मान की संपूर्णता एक बफ़र में मौजूद हो। अन्यथा विधि रिटर्न WEAVE_ERROR_TLV_UNDERRUN । यह कई अलग-अलग बफ़र्स से डेटा पढ़ते समय सीमित उपयोग की विधि बनाता है।

विवरण
मापदंडों
[out] data
एक कॉन्स्ट पॉइंटर का संदर्भ जो अंतर्निहित स्ट्रिंग डेटा के लिए एक पॉइंटर प्राप्त करेगा।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बाइट या UTF8 स्ट्रिंग, या पाठक एक तत्व पर तैनात नहीं है।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोड या वर्तमान स्ट्रिंग तत्व का मान एक भी सन्निहित बफर के भीतर निहित नहीं है।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

लंबाई प्राप्त करें

uint32_t GetLength(
  void
) const 

वर्तमान से संबद्ध डेटा का लंबाई रिटर्न TLV तत्व।

डेटा की लंबाई केवल UTF8 स्ट्रिंग या बाइट स्ट्रिंग प्रकार के तत्वों पर लागू होती है। UTF8 स्ट्रिंग्स के लिए, लौटाया गया मान स्ट्रिंग में बाइट्स की संख्या है, न कि वर्णों की संख्या।

विवरण
रिटर्न
लंबाई (बाइट्स में) वर्तमान से संबद्ध डेटा का TLV तत्व या 0 यदि वर्तमान तत्व एक UTF8 स्ट्रिंग या बाइट स्ट्रिंग नहीं है, या पाठक एक तत्व पर तैनात नहीं किया जाता है।

GetLengthपढ़ें

uint32_t GetLengthRead(
  void
) const 

पाठक के प्रारंभ होने के बाद से पढ़ी गई बाइट्स की कुल संख्या लौटाता है।

विवरण
रिटर्न
पाठक के आरंभ होने के बाद से पढ़े गए बाइट्स की कुल संख्या।

GetReadPoint

const uint8_t * GetReadPoint(
  void
) const 

पाठक की वर्तमान स्थिति से मेल खाने वाले अंतर्निहित इनपुट बफर में बिंदु प्राप्त करें।

विवरण
रिटर्न
अंतर्निहित इनपुट बफर में एक सूचक जो पाठक की वर्तमान स्थिति से मेल खाता है।

शेष लंबाई प्राप्त करें

uint32_t GetRemainingLength(
  void
) const 

बाइट्स की कुल संख्या देता है जिसे अधिकतम पढ़ने की लंबाई तक पहुंचने तक पढ़ा जा सकता है।

विवरण
रिटर्न
बाइट्स की कुल संख्या जिन्हें पढ़ा जा सकता है जब तक कि अधिकतम पढ़ने की लंबाई नहीं हो जाती।

गेटस्ट्रिंग

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

वर्तमान बाइट या UTF8 स्ट्रिंग तत्व का मान एक नल टर्मिनेटेड स्ट्रिंग के रूप में प्राप्त करें।

आवश्यक इनपुट बफर आकार निर्धारित करने के लिए, फोन GetLength () कॉल करने से पहले विधि GetBytes () । इनपुट बफ़र अशक्त वर्ण को समायोजित करने के लिए स्ट्रिंग की लंबाई से कम से कम एक बाइट बड़ा होना चाहिए।

विवरण
मापदंडों
[in] buf
बाइट स्ट्रिंग डेटा प्राप्त करने के लिए एक बफर के लिए एक सूचक।
[in] bufSize
बफर के बाइट में आकार से की ओर इशारा किया buf
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_WRONG_TLV_TYPE
वर्तमान तत्व एक नहीं है, तो TLV बाइट या UTF8 स्ट्रिंग, या पाठक एक तत्व पर तैनात नहीं है।
WEAVE_ERROR_BUFFER_TOO_SMALL
यदि आपूर्ति किया गया बफर वर्तमान तत्व से जुड़े डेटा को रखने के लिए बहुत छोटा है।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

गेटटैग

uint64_t GetTag(
  void
) const 

वर्तमान से संबद्ध टैग रिटर्न TLV तत्व।

द्वारा दिए गए मान GetTag () टैग उपयोगिता कार्यों के साथ इस्तेमाल किया जा सकता ( IsProfileTag () , IsContextTag () , ProfileIdFromTag () , आदि) टैग के प्रकार का निर्धारण करने के लिए और विभिन्न टैग फ़ील्ड मान निकालने के लिए।

विवरण
रिटर्न
एक अहस्ताक्षरित पूर्णांक वर्तमान के साथ जुड़े टैग के बारे में जानकारी युक्त TLV तत्व।

गेट टाइप

TLVType GetType(
  void
) const 

वर्तमान के प्रकार रिटर्न TLV तत्व।

विवरण
रिटर्न
एक TLVType मूल्य वर्तमान के डेटा प्रकार का वर्णन TLV तत्व। पाठक एक पर तैनात नहीं है, तो TLV तत्व, वापसी मान kTLVType_NotSpecified हो जाएगा।

में इस

void Init(
  const TLVReader & aReader
)

एक आरंभीकृतTLVReader दूसरे से वस्तुTLVReader वस्तु।

विवरण
मापदंडों
[in] aReader
करने के लिए केवल पढ़ने के लिए संदर्भTLVReader से प्रारंभ करने में।

में इस

void Init(
  const uint8_t *data,
  uint32_t dataLen
)

एक आरंभीकृतTLVReader एक भी इनपुट बफर से पढ़ने के लिए वस्तु।

विवरण
मापदंडों
[in] data
एक बफर युक्त करने के लिए एक सूचक TLV डेटा पार्स किया जा सकता।
[in] dataLen
की लंबाई TLV डेटा पार्स किया जा सकता।

में इस

void Init(
  PacketBuffer *buf,
  uint32_t maxLen
)

एक आरंभीकृतTLVReader एक भी PacketBuffer से पढ़ने के लिए वस्तु।

पार्सिंग बफ़र की प्रारंभ स्थिति (buf->DataStart()) से शुरू होती है और बफ़र में डेटा के अंत तक जारी रहती है (जैसा कि buf->Datalen() द्वारा दर्शाया गया है), या मैक्सलेन बाइट्स को पार्स किया गया है।

विवरण
मापदंडों
[in] buf
एक PacketBuffer करने के लिए एक सूचक युक्त TLV डेटा पार्स किया जा सकता।
[in] maxLen
पार्स करने के लिए अधिकतम बाइट। इनपुट बफर में डेटा की मात्रा के लिए डिफ़ॉल्ट।

में इस

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

एक आरंभीकृतTLVReader एक एक या अधिक PacketBuffers से पढ़ने के लिए वस्तु।

प्रारंभिक बफ़र की प्रारंभिक स्थिति (buf->DataStart()) पर पार्सिंग शुरू होती है। यदि allowDiscontiguousBuffers सच है, पाठक अपने से जुड़े हुए बफ़र्स की श्रृंखला के माध्यम से आगे बढ़ाएंगे अगला () संकेत दिए गए। पार्सिंग तब तक जारी रहती है जब तक बफर श्रृंखला में सभी डेटा का उपभोग नहीं किया जाता है (जैसा कि buf->Datalen() द्वारा दर्शाया गया है), या मैक्सलेन बाइट्स को पार्स किया गया है।

विवरण
मापदंडों
[in] buf
एक PacketBuffer करने के लिए एक सूचक युक्त TLV डेटा पार्स किया जा सकता।
[in] maxLen
पार्स करने के लिए अधिकतम बाइट। इनपुट बफ़र श्रृंखला में डेटा की कुल मात्रा के लिए डिफ़ॉल्ट।
[in] allowDiscontiguousBuffers
यदि सही है, तो वर्तमान बफ़र के सभी डेटा की खपत हो जाने के बाद, श्रृंखला में अगले बफ़र पर आगे बढ़ें। यदि गलत है, तो प्रारंभिक बफर के अंत में पार्स करना बंद कर दें।

अगला

WEAVE_ERROR Next(
  void
)

अग्रिमTLVReader अगले करने के लिए वस्तु TLV तत्व पढ़ने के लिए।

अगला () विधि पदों एक में अगले तत्व पर पाठक वस्तु TLV ही रोकथाम के संदर्भ में है कि बसता था एन्कोडिंग। विशेष रूप से, पाठक एक की बाहरी-सबसे स्तर पर रखा जाता है, तो TLV एन्कोडिंग, बुला अगला () अगले, सर्वोच्च तत्व को पाठक आगे बढ़ाएंगे। पाठक एक के भीतर रखा जाता है तो TLV , कंटेनर तत्व (एक संरचना, सरणी या पथ) बुला अगला () कंटेनर के अगले सदस्य तत्व को पाठक आगे बढ़ाएंगे।

चूंकि अगला () वर्तमान रोकथाम संदर्भ के लिए पाठक गति, बुला रोकें अगला () जब पाठक एक कंटेनर तत्व पर रखा जाता है कंटेनर से अधिक अग्रिम होगा, उसके सदस्य तत्वों (और किसी भी नेस्टेड कंटेनर के सदस्य) लंघन जब तक यह पहले तक पहुँचता है कंटेनर के बाद तत्व।

जब वहाँ एक विशेष रोकथाम के संदर्भ में आगे कोई तत्व हैं अगला () विधि एक वापस आ जाएगी WEAVE_END_OF_TLV त्रुटि और पाठक की स्थिति यथावत रहेगा।

विवरण
वापसी मूल्य
WEAVE_NO_ERROR
यदि पाठक को एक नए तत्व पर सफलतापूर्वक तैनात किया गया था।
WEAVE_END_OF_TLV
यदि कोई और तत्व उपलब्ध नहीं हैं।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_INVALID_TLV_ELEMENT
पाठक एक अमान्य या असमर्थित का सामना करना पड़ा, तो TLV तत्व प्रकार।
WEAVE_ERROR_INVALID_TLV_TAG
पाठक एक का सामना करना पड़ा, तो TLV गलत संदर्भ में टैग।
WEAVE_ERROR_UNKNOWN_IMPLICIT_TLV_TAG
पाठक एक परोक्ष एन्कोड का सामना करना पड़ा, तो TLV टैग जिसके लिए इसी प्रोफ़ाइल आईडी अज्ञात है।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

अगला

WEAVE_ERROR Next(
  TLVType expectedType,
  uint64_t expectedTag
)

अग्रिमTLVReader अगले करने के लिए वस्तु TLV तत्व, पढ़ने के लिए प्रकार और नए तत्व का टैग जोर देते हुए।

अगला (TLVType expectedType, uint64_t expectedTag) विधि एक सुविधा की विधि के रूप में एक ही व्यवहार किया है ) अगला ( , लेकिन यह भी पुष्टि करता है कि प्रकार और नए के टैग TLV तत्व आपूर्ति तर्क से मेल खाते हैं।

विवरण
मापदंडों
[in] expectedType
अगले तत्व के लिए अपेक्षित डेटा प्रकार।
[in] expectedTag
अगले तत्व के लिए अपेक्षित टैग।
वापसी मूल्य
WEAVE_NO_ERROR
यदि पाठक को एक नए तत्व पर सफलतापूर्वक तैनात किया गया था।
WEAVE_END_OF_TLV
यदि कोई और तत्व उपलब्ध नहीं हैं।
WEAVE_ERROR_WRONG_TLV_TYPE
नए तत्व के प्रकार के मान से मेल नहीं खाता expectedType तर्क।
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
नए तत्व के साथ जुड़े टैग के मान से मेल नहीं खाता expectedTag तर्क।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_INVALID_TLV_ELEMENT
पाठक एक अमान्य या असमर्थित का सामना करना पड़ा, तो TLV तत्व प्रकार।
WEAVE_ERROR_INVALID_TLV_TAG
पाठक एक का सामना करना पड़ा, तो TLV गलत संदर्भ में टैग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

ओपनकंटेनर

WEAVE_ERROR OpenContainer(
  TLVReader & containerReader
)

एक नया आरंभीकृतTLVReader एक के सदस्यों को पढ़ने के लिए वस्तु TLV कंटेनर तत्व।

OpenContainer () विधि एक नया initializesTLVReader एक के सदस्य तत्वों को पढ़ने के लिए वस्तु TLV कंटेनर (एक संरचना, सरणी या पथ)। जब OpenContainer () कहा जाता है, वर्तमानTLVReader वस्तु कंटेनर तत्व पर तैनात किया जाना चाहिए पढ़ने के लिए। विधि अपने एकमात्र तर्क के रूप में एक नए पाठक के संदर्भ को लेती है जिसे कंटेनर को पढ़ने के लिए प्रारंभ किया जाएगा। यह पाठक कंटेनर पाठक के रूप में जाना है, जबकि पाठक जिस पर है OpenContainer () कहा जाता है माता पिता पाठक के रूप में जाना जाता है।

जब OpenContainer () विधि रिटर्न, कंटेनर पाठक कंटेनर के पहले सदस्य से ठीक पहले स्थिति में है। कॉलिंग अगला () कंटेनर पाठक अंत तक संग्रह के सदस्यों के माध्यम से आगे बढ़ाएंगे पर पहुँच जाता है, इसके बाद से पाठक WEAVE_END_OF_TLV वापस आ जाएगी।

जबकि कंटेनर रीडर खुला है, एप्लिकेशन को कॉल नहीं करना चाहिए या अन्यथा पैरेंट रीडर की स्थिति में बदलाव नहीं करना चाहिए। एक बार एप्लिकेशन कंटेनर रीडर का उपयोग कर समाप्त हो गया है यह फोन करके यह बंद करना होगा CloseContainer () , माता पिता पाठक पर एक तर्क के रूप कंटेनर पाठक गुजर। एप्लिकेशन कंटेनर रीडर को किसी भी बिंदु पर, अंतर्निहित कंटेनर में निहित सभी तत्वों को पढ़ने के साथ या बिना बंद कर सकते हैं। कंटेनर रीडर बंद होने के बाद, एप्लिकेशन पैरेंट रीडर का उपयोग जारी रख सकते हैं।

कंटेनर रीडर को पैरेंट रीडर से विभिन्न कॉन्फ़िगरेशन गुण विरासत में मिलते हैं। ये:

  • निहित प्रोफ़ाइल आईडी (ImplicitProfileId)
  • एप्लिकेशन डेटा पॉइंटर (AppData)
  • GetNextBuffer फ़ंक्शन पॉइंटर

विवरण
मापदंडों
[out] containerReader
एक करने के लिए एक संदर्भTLVReader उद्देश्य यह है कि वर्तमान कंटेनर तत्व के सदस्यों को पढ़ने के लिए प्रारंभ की जाएगी। आपूर्ति की गई वस्तु से जुड़ा कोई भी डेटा अधिलेखित हो जाता है।
वापसी मूल्य
WEAVE_NO_ERROR
यदि विधि सफल हुई।
WEAVE_ERROR_INCORRECT_STATE
यदि वर्तमान तत्व कंटेनर तत्व पर स्थित नहीं है।

छोड़ें

WEAVE_ERROR Skip(
  void
)

अग्रिमTLVReader वर्तमान के बाद तुरंत करने के लिए वस्तु TLV तत्व।

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

विवरण
वापसी मूल्य
WEAVE_NO_ERROR
यदि पाठक को एक नए तत्व पर सफलतापूर्वक तैनात किया गया था।
WEAVE_END_OF_TLV
यदि कोई और तत्व उपलब्ध नहीं हैं।
WEAVE_ERROR_TLV_UNDERRUN
अंतर्निहित हैं TLV समय से पहले ही समाप्त हो गया एन्कोडिंग।
WEAVE_ERROR_INVALID_TLV_ELEMENT
पाठक एक अमान्य या असमर्थित का सामना करना पड़ा, तो TLV तत्व प्रकार।
WEAVE_ERROR_INVALID_TLV_TAG
पाठक एक का सामना करना पड़ा, तो TLV गलत संदर्भ में टैग।
other
अन्य Weave या मंच त्रुटि कोड के लिए कॉन्फ़िगर द्वारा दिया GetNextBuffer () समारोह। केवल तभी संभव है जब GetNextBuffer गैर-नल हो।

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)

Verifies TVLReader वस्तु एक के अंत में है कि TLV कंटेनर।

VerifyEndOfContainer () विधि सत्यापन आगे कोई हैं कि TLV तत्वों वर्तमान भीतर पढ़ने के लिए TLV कंटेनर। यह एक सुविधा विधि है कि फोन करने के बराबर है है अगला () और WEAVE_END_OF_TLV की वापसी मान को चेक।

विवरण
वापसी मूल्य
WEAVE_NO_ERROR
If there are no further TLV elements to be read.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
If another TLV element was found in the collection.
WEAVE_ERROR_TLV_UNDERRUN
If the underlying TLV encoding ended prematurely.
WEAVE_ERROR_INVALID_TLV_ELEMENT
If the reader encountered an invalid or unsupported TLV element type.
WEAVE_ERROR_INVALID_TLV_TAG
If the reader encountered a TLV tag in an invalid context.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

संरक्षित कार्य

ClearElementState

void ClearElementState(
  void
)

Clear the state of theTLVReader .

This method is used to position the reader before the first TLV , between TLVs or after the last TLV .

ElementType

TLVElementType ElementType(
  void
) const 

This is a private method that returns the TLVElementType from mControlByte.

EnsureData

WEAVE_ERROR EnsureData(
  WEAVE_ERROR noDataErr
)

GetElementHeadLength

WEAVE_ERROR GetElementHeadLength(
  uint8_t & elemHeadBytes
) const 

This is a private method used to compute the length of a TLV element head.

IsContainerOpen

bool IsContainerOpen(
  void
) const 

ReadData

WEAVE_ERROR ReadData(
  uint8_t *buf,
  uint32_t len
)

ReadElement

WEAVE_ERROR ReadElement(
  void
)

ReadTag

uint64_t ReadTag(
  TLVTagControl tagControl,
  const uint8_t *& p
)

SetContainerOpen

void SetContainerOpen(
  bool aContainerOpen
)

SkipData

WEAVE_ERROR SkipData(
  void
)

Skip any data contained in the current TLV by reading over it without a destination buffer.

विवरण
वापसी मूल्य
WEAVE_NO_ERROR
If the reader was successfully positioned at the end of the data.
other
Other Weave or platform error codes returned by the configured GetNextBuffer() function. Only possible when GetNextBuffer is non-NULL.

SkipToEndOfContainer

WEAVE_ERROR SkipToEndOfContainer(
  void
)

VerifyElement

WEAVE_ERROR VerifyElement(
  void
)

संरक्षित स्थिर कार्य

FailGetNextBuffer

WEAVE_ERROR FailGetNextBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)

GetNextPacketBuffer

WEAVE_ERROR GetNextPacketBuffer(
  TLVReader & reader,
  uintptr_t & bufHandle,
  const uint8_t *& bufStart,
  uint32_t & bufLen
)