nl::Weave::TLV

Weave TLV फ़ॉर्मैट में कोड में बदले गए डेटा के साथ काम करने की परिभाषाएं.

खास जानकारी

Weave टीएलवी, आसान स्ट्रक्चर्ड डेटा को कोड में बदलने का एक सामान्य तरीका है. यह आम तौर पर इस्तेमाल किए जाने वाले JSON सीरियलाइज़ेशन फ़ॉर्मैट के साथ कई प्रॉपर्टी शेयर करता है. हालांकि, यह वायर के साथ ज़्यादा छोटा होता है.

गिनती

@71 enum
@73 enum
@74{
  AnonymousTag = kSpecialTagMarker | 0x00000000FFFFFFFFULL
}
enum
@75 enum
TLVCommonProfiles{
  kProfileIdNotSpecified = 0xFFFFFFFF
}
enum
TLVElementType enum
TLVFieldSize enum
TLVTagControl enum
TLVTagFields enum
TLVType enum
टीएलवी एलिमेंट के टाइप की पहचान करने वाला इन्यूमेशन.

वैरिएबल

kWeaveTLVCopyChunkSize = 16
const size_t
रीडर ऑब्जेक्ट से टीएलवी एलिमेंट को लेखक में कॉपी करता है.
sTagSizes = { 0, 1, 2, 4, 2, 4, 6, 8 }[]
const uint8_t

फ़ंक्शन

CommonTag(uint32_t tagNum)
uint64_t
सामान्य प्रोफ़ाइल TLV टैग का एपीआई रिप्रज़ेंटेशन जनरेट करता है.
ContextTag(uint8_t tagNum)
uint64_t
यह नीति, कॉन्टेक्स्ट के हिसाब से टीएलवी टैग के लिए, एपीआई रिप्रज़ेंटेशन जनरेट करती है.
GetTLVFieldSize(uint8_t type)
TLVFieldSize
IsContextTag(uint64_t tag)
bool
अगर दिया गया टैग संदर्भ के हिसाब से कोई टैग है, तो यह 'सही' दिखाता है.
IsProfileTag(uint64_t tag)
bool
दिया गया टैग, प्रोफ़ाइल के हिसाब से बनाया गया टैग है, जो 'सही' दिखाता है.
IsSpecialTag(uint64_t tag)
bool
IsValidTLVType(uint8_t type)
bool
अगर दिया गया टीएलवी टाइप मान्य है, तो 'सही' दिखाता है.
ProfileIdFromTag(uint64_t tag)
uint32_t
टीएलवी टैग से प्रोफ़ाइल आईडी दिखाता है.
ProfileNumFromTag(uint64_t tag)
uint16_t
टीएलवी टैग से प्रोफ़ाइल नंबर दिखाता है.
ProfileTag(uint32_t profileId, uint32_t tagNum)
uint64_t
यह प्रोफ़ाइल आईडी और टैग नंबर से, प्रोफ़ाइल के हिसाब से बने TLV टैग का एपीआई वर्शन जनरेट करता है.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
यह नीति, वेंडर आईडी, प्रोफ़ाइल नंबर, और टैग नंबर से, प्रोफ़ाइल के हिसाब से बने TLV टैग का एपीआई वर्शन जनरेट करती है.
TLVFieldSizeToBytes(TLVFieldSize fieldSize)
uint8_t
TLVTypeHasLength(uint8_t type)
bool
अगर दिया गया TLV टाइप, इससे जुड़े लंबाई वाले फ़ील्ड की मौजूदगी का दावा करता है, तो 'सही' दिखाता है.
TLVTypeHasValue(uint8_t type)
bool
अगर दिया गया TLV टाइप, उससे जुड़े वैल्यू फ़ील्ड की मौजूदगी का दावा करता है, तो 'सही' दिखाता है.
TLVTypeIsContainer(uint8_t type)
bool
अगर दिया गया टीएलवी टाइप कोई कंटेनर है, तो 'सही' दिखाता है.
TLVTypeIsString(uint8_t type)
bool
अगर दिया गया TLV टाइप, UTF8 या बाइट स्ट्रिंग है, तो 'सही' दिखाता है.
TagNumFromTag(uint64_t tag)
uint32_t
टीएलवी टैग का टैग नंबर दिखाता है.
VendorIdFromTag(uint64_t tag)
uint16_t
टीएलवी टैग से वेंडर आईडी दिखाता है.

क्लास

nl::Weave::TLV::CircularTLVReader
nl::Weave::TLV::CircularTLVWriter
nl::Weave::TLV::TLVReader

Weave TLV फ़ॉर्मैट में कोड में बदले गए डेटा के लिए, मेमोरी की क्षमता वाला पार्सर देता है.

nl::Weave::TLV::TLVUpdater

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

nl::Weave::TLV::TLVWriter

यह Weave TLV फ़ॉर्मैट में, डेटा लिखने के लिए मेमोरी की बचत करने वाला एन्कोडर देता है.

nl::Weave::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer चैनल, nl::Weave::TLV::TLVWriter और nl::Weave::TLVTLVReader डिवाइस के लिए सर्कुलर स्टोरेज देता है.

नाम स्थान

nl::Weave::TLV::Debug

इस नेमस्पेस में, डीबग और लॉग करने के लिए TLV टाइप और इंटरफ़ेस शामिल हैं.

nl::Weave::TLV::Utilities

इस नेमस्पेस में Weave TLV के साथ मैनेज करने और उसके साथ काम करने के लिए, टाइप और यूटिलिटी इंटरफ़ेस शामिल हैं.

गिनती

@71

 @71

@73

 @73

@74

 @74
प्रॉपर्टी
AnonymousTag

टीएलवी एलिमेंट को दिखाने वाली वैल्यू, जिसमें कोई टैग नहीं है (जैसे,

एक एलिमेंट, जिसमें पहचान छिपाई गई है).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
प्रॉपर्टी
kProfileIdNotSpecified

इसका इस्तेमाल, किसी वैरिएबल या मेंबर में प्रोफ़ाइल आईडी न होने के बारे में बताने के लिए किया जाता है.

यह काफ़ी हद तक WeaveProfiles.h में बताई गई kWeaveProfile_Notspecified जैसी ही होती है

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

टीएलवी एलिमेंट के टाइप की पहचान करने वाला इन्यूमेशन.

वैरिएबल

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

रीडर ऑब्जेक्ट से टीएलवी एलिमेंट को लेखक में कॉपी करता है.

कॉपी एलिमेंट() वाला तरीका, एक नए TLV एलिमेंट को कोड में बदलता है. इसका टाइप और वैल्यू, TLVReader ऑब्जेक्ट से ली जाती है. जब तरीके को कॉल किया जाता है, तो सप्लाई किए गए रीडर ऑब्जेक्ट को सोर्स टीएलवी एलिमेंट पर रखा जाना चाहिए. कोड में बदले गए नए एलिमेंट का टाइप और कॉन्टेंट, इनपुट कंटेनर के जैसा ही होगा. हालांकि, टैग को तय किए गए आर्ग्युमेंट पर सेट किया जाएगा. अगर दिया गया एलिमेंट TLV कंटेनर (स्ट्रक्चर, ऐरे या पाथ) है, तो कंटेनर का पूरा कॉन्टेंट कॉपी किया जाएगा.

जानकारी
पैरामीटर
[in] tag
कंटेनर के साथ एन्कोड किया जाने वाला TLV टैग. अगर कंटेनर को टैग के बिना कोड में बदलना है, तो AnonymousTag. टैग वैल्यू, टैग परिभाषा फ़ंक्शन ProfileTag(), ContextTag() या CommonTag() में से किसी एक के साथ बनाई जानी चाहिए.
[in] reader
TLVReader ऑब्जेक्ट का रेफ़रंस, जो पहले से कोड में बदले गए TLV एलिमेंट की पहचान करता है और जिसका टाइप और वैल्यू कॉपी की जानी चाहिए.
रिटर्न वैल्यू
WEAVE_NO_ERROR
अगर तरीका काम कर गया है.
WEAVE_ERROR_INCORRECT_STATE
अगर दिया गया रीडर किसी एलिमेंट पर नहीं हो.
WEAVE_ERROR_TLV_CONTAINER_OPEN
अगर कंटेनर राइटर को मौजूदा लेखक पर खोला गया है और वह अभी तक बंद नहीं हुआ है.
WEAVE_ERROR_TLV_UNDERRUN
अगर दिए गए रीडर के साथ दी गई टीएलवी एन्कोडिंग, समय से पहले खत्म हो गई हो.
WEAVE_ERROR_INVALID_TLV_ELEMENT
अगर दिए गए रीडर को किसी अमान्य या काम न करने वाले TLV एलिमेंट टाइप का सामना करना पड़ा है.
WEAVE_ERROR_INVALID_TLV_TAG
अगर दिए गए रीडर को किसी अमान्य कॉन्टेक्स्ट में टीएलवी टैग मिला है या दिया गया टैग, उस कॉन्टेक्स्ट में अमान्य या गलत है जिसमें नया कंटेनर लिखा जा रहा है.
WEAVE_ERROR_BUFFER_TOO_SMALL
अगर वैल्यू लिखने पर, लेखक को शुरू करते समय तय की गई ज़्यादा से ज़्यादा बाइट संख्या को पार कर जाता है.
WEAVE_ERROR_NO_MEMORY
अगर मेमोरी में कमी की वजह से, आउटपुट बफ़र असाइन करने की कोशिश नाकाम रही.
other
अन्य Weave या प्लैटफ़ॉर्म की खास गड़बड़ियां, कॉन्फ़िगर किए गए getNewBuffer() या FinalizeBuffer() फ़ंक्शन से या रीडर ऑब्जेक्ट से जुड़े getNextBuffer() फ़ंक्शन से मिलती हैं.

sTagSizes

const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }

फ़ंक्शन

CommonTag

uint64_t CommonTag(
  uint32_t tagNum
)

सामान्य प्रोफ़ाइल TLV टैग का एपीआई रिप्रज़ेंटेशन जनरेट करता है.

जानकारी
पैरामीटर
[in] tagNum
टैग को असाइन किया गया सामान्य प्रोफ़ाइल टैग नंबर.
लौटाए गए सामान
टैग को दिखाने वाला 64-बिट पूर्णांक.

ContextTag

uint64_t ContextTag(
  uint8_t tagNum
)

यह नीति, कॉन्टेक्स्ट के हिसाब से टीएलवी टैग के लिए, एपीआई रिप्रज़ेंटेशन जनरेट करती है.

जानकारी
पैरामीटर
[in] tagNum
टैग को असाइन किया गया, कॉन्टेक्स्ट के हिसाब से टैग नंबर.
लौटाए गए सामान
टैग को दिखाने वाला 64-बिट पूर्णांक.

GetTLVFieldSize

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

अगर दिया गया टैग संदर्भ के हिसाब से कोई टैग है, तो यह 'सही' दिखाता है.

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

दिया गया टैग, प्रोफ़ाइल के हिसाब से बनाया गया टैग है, जो 'सही' दिखाता है.

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

IsValidTLVType

bool IsValidTLVType(
  uint8_t type
)

अगर दिया गया टीएलवी टाइप मान्य है, तो 'सही' दिखाता है.

जानकारी
लौटाए गए सामान
true, अगर दिया गया टीएलवी टाइप मान्य है, नहीं तो false.

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

टीएलवी टैग से प्रोफ़ाइल आईडी दिखाता है.

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

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

टीएलवी टैग से प्रोफ़ाइल नंबर दिखाता है.

जानकारी
पैरामीटर
[in] tag
प्रोफ़ाइल के हिसाब से बने टीएलवी टैग का एपीआई प्रज़ेंटेशन.
लौटाए गए सामान
जुड़ा हुआ प्रोफ़ाइल नंबर.

ProfileTag

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

यह प्रोफ़ाइल आईडी और टैग नंबर से, प्रोफ़ाइल के हिसाब से बने TLV टैग का एपीआई वर्शन जनरेट करता है.

जानकारी
पैरामीटर
[in] profileId
उस प्रोफ़ाइल का आईडी जिसमें टैग को परिभाषित किया गया है.
[in] tagNum
टैग को असाइन की गई प्रोफ़ाइल का खास टैग नंबर.
लौटाए गए सामान
टैग को दिखाने वाला 64-बिट पूर्णांक.

ProfileTag

uint64_t ProfileTag(
  uint16_t vendorId,
  uint16_t profileNum,
  uint32_t tagNum
)

यह नीति, वेंडर आईडी, प्रोफ़ाइल नंबर, और टैग नंबर से, प्रोफ़ाइल के हिसाब से बने TLV टैग का एपीआई वर्शन जनरेट करती है.

जानकारी
पैरामीटर
[in] vendorId
टैग को तय करने वाले वेंडर का आईडी.
[in] profileNum
वेंडर को उस प्रोफ़ाइल के लिए नंबर असाइन किया गया जिसमें टैग को शामिल किया गया है.
[in] tagNum
टैग को असाइन की गई प्रोफ़ाइल का खास टैग नंबर.
लौटाए गए सामान
टैग को दिखाने वाला 64-बिट पूर्णांक.

TLVFieldSizeToBytes

uint8_t TLVFieldSizeToBytes(
  TLVFieldSize fieldSize
)

TLVTypeHasLength

bool TLVTypeHasLength(
  uint8_t type
)

अगर दिया गया TLV टाइप, इससे जुड़े लंबाई वाले फ़ील्ड की मौजूदगी का दावा करता है, तो 'सही' दिखाता है.

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

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

अगर दिया गया TLV टाइप, उससे जुड़े वैल्यू फ़ील्ड की मौजूदगी का दावा करता है, तो 'सही' दिखाता है.

जानकारी
लौटाए गए सामान
true, अगर दिया गया TLV टाइप, इससे जुड़े वैल्यू फ़ील्ड की मौजूदगी का दावा करता है, नहीं तो false.

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

अगर दिया गया टीएलवी टाइप कोई कंटेनर है, तो 'सही' दिखाता है.

जानकारी
लौटाए गए सामान
true, अगर बताया गया टीएलवी टाइप कोई कंटेनर है, नहीं तो false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

अगर दिया गया TLV टाइप, UTF8 या बाइट स्ट्रिंग है, तो 'सही' दिखाता है.

जानकारी
लौटाए गए सामान
true, अगर बताया गया टीएलवी टाइप UTF8 या बाइट स्ट्रिंग है, नहीं तो false है.

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

टीएलवी टैग का टैग नंबर दिखाता है.

जानकारी
पैरामीटर
[in] tag
प्रोफ़ाइल के हिसाब से या संदर्भ के हिसाब से बनाए गए टीएलवी टैग को एपीआई के ज़रिए दिखाने की सुविधा.
लौटाए गए सामान
जुड़ा हुआ टैग नंबर.
यह भी देखें:
IsProfileTag() और IsContextTag()

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

टीएलवी टैग से वेंडर आईडी दिखाता है.

जानकारी
पैरामीटर
[in] tag
प्रोफ़ाइल के हिसाब से बने टीएलवी टैग का एपीआई प्रज़ेंटेशन.
लौटाए गए सामान
इससे जुड़ा वेंडर आईडी.