nl::Weave::TLV

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

खास जानकारी

Weave TLV, सामान्य स्ट्रक्चर्ड डेटा के लिए कोड में बदलने का एक सामान्य तरीका है. यह आम तौर पर इस्तेमाल किए जाने वाले 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
TLV एलिमेंट के टाइप की पहचान करने वाली गिनती.

वैरिएबल

kWeaveTLVCopyChunkSize = 16
const size_t
किसी TLV एलिमेंट को रीडर ऑब्जेक्ट से राइटर में कॉपी करता है.
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
यह कॉन्टेक्स्ट के हिसाब से TLV टैग के लिए, एपीआई को दिखाता है.
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
अगर बताया गया TLV टाइप मान्य है, तो 'सही' दिखाता है.
ProfileIdFromTag(uint64_t tag)
uint32_t
यह विकल्प TLV टैग से प्रोफ़ाइल आईडी दिखाता है.
ProfileNumFromTag(uint64_t tag)
uint16_t
यह फ़ंक्शन किसी TLV टैग से प्रोफ़ाइल नंबर दिखाता है.
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
अगर बताया गया TLV टाइप एक कंटेनर है, तो 'सही' दिखाता है.
TLVTypeIsString(uint8_t type)
bool
अगर दिया गया TLV टाइप UTF8 या बाइट स्ट्रिंग है, तो 'सही' दिखाता है.
TagNumFromTag(uint64_t tag)
uint32_t
यह विकल्प, TLV टैग से टैग नंबर दिखाता है.
VendorIdFromTag(uint64_t tag)
uint16_t
यह विकल्प TLV टैग से वेंडर आईडी दिखाता है.

क्लास

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

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

nl::Weave::TLV::Utilities

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

इन्यूमरेशन

@71

 @71

@73

 @73

@74

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

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

एक अनाम एलिमेंट).

@75

 @75

TLVCommonProfiles

 TLVCommonProfiles
प्रॉपर्टी
kProfileIdNotSpecified

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

यह ठीक वैसे ही है जैसा WeaveProfiles.h में kWeaveProfile_Not गाड़ी के बारे में बताया गया है

TLVElementType

 TLVElementType

TLVFieldSize

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagFields

 TLVTagFields

TLVType

 TLVType

TLV एलिमेंट के टाइप की पहचान करने वाली गिनती.

वैरिएबल

kWeaveTLVCopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

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

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

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

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
)

यह कॉन्टेक्स्ट के हिसाब से TLV टैग के लिए, एपीआई को दिखाता है.

ब्यौरा
पैरामीटर
[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
)

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

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

ProfileIdFromTag

uint32_t ProfileIdFromTag(
  uint64_t tag
)

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

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

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

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

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

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, अगर बताया गया TLV टाइप, इससे जुड़े लंबाई वाले फ़ील्ड की मौजूदगी का पता लगाता है; नहीं तो false.

TLVTypeHasValue

bool TLVTypeHasValue(
  uint8_t type
)

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

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

TLVTypeIsContainer

bool TLVTypeIsContainer(
  uint8_t type
)

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

ब्यौरा
लौटाए जाने वाले प्रॉडक्ट
true, अगर दिया गया TLV टाइप एक कंटेनर है; नहीं तो false.

TLVTypeIsString

bool TLVTypeIsString(
  uint8_t type
)

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

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

TagNumFromTag

uint32_t TagNumFromTag(
  uint64_t tag
)

यह विकल्प, TLV टैग से टैग नंबर दिखाता है.

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

VendorIdFromTag

uint16_t VendorIdFromTag(
  uint64_t tag
)

यह विकल्प TLV टैग से वेंडर आईडी दिखाता है.

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