nl:: बुनाई::टीएलवी

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
टीएलवी एलिमेंट के टाइप की पहचान.

वैरिएबल

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
खास तौर पर किसी प्रोफ़ाइल आईडी और टैग नंबर से, प्रोफ़ाइल के लिए टीएलवी टैग को एपीआई के तौर पर जनरेट करता है.
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
uint64_t
किसी वेंडर के आईडी, प्रोफ़ाइल नंबर, और टैग नंबर से, किसी खास प्रोफ़ाइल के लिए टीएलवी टैग को एपीआई के हिसाब से जनरेट करता है.
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::वज़न::TLV::CircularTLVReader
nl::वज़न::TLV::CircularTLVWrite
nl:: बुनाई::TLV::TLVReader

Weave TLV प्रारूप में डेटा को एन्कोड करने वाला मेमोरी पार्सर देता है.

nl:: बुनाई::TLV::TLVUpdater

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

nl:: बुनाई::TLV::TLVWriter

Weave TLV प्रारूप में डेटा लिखने के लिए मेमोरी बचाने वाला एक एन्कोडर उपलब्ध कराता है.

nl:: बुनाई::TLV::WeaveCircularTLVBuffer

WeaveCircularTLVBuffer nl::Weave::TLV::TLVWriter और nl::Weave::TLVTLVReader के लिए सर्कुलर स्टोरेज की सुविधा देता है.

नेमस्पेस

nl::वेव::TLV::Debug

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

nl:: बुना::TLV::उपयोगिताएं

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

गिनती

@71

 @71

@33

 @73

@74

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

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

एक अनाम तत्व).

@75

 @75

TLVसामान्य प्रोफ़ाइल

 TLVCommonProfiles
प्रॉपर्टी
kProfileIdNotSpecified

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

यह, WeaveProfiles.h में बताई गई KWeaveProfile_NotDescription की सुविधा के समान है

TLVElementType

 TLVElementType

TLVफ़ील्डसाइज़

 TLVFieldSize

TLVTagControl

 TLVTagControl

TLVTagField

 TLVTagFields

TLVType

 TLVType

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

वैरिएबल

kWeaveTLVcopyChunkSize

const size_t kWeaveTLVCopyChunkSize = 16

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

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

ब्यौरा
पैरामीटर
[in] tag
कंटेनर के साथ एन्कोड करने के लिए TLV टैग होना चाहिए या अगर कंटेनर को टैग के बिना एन्कोड किया जाना चाहिए, तो AnonymousTag. टैग की वैल्यू को टैग प्रोफ़ाइल के किसी एक फ़ंक्शन ProfileTag(), ContextTag() या GeneralTag() की मदद से बनाया जाना चाहिए.
[in] reader
TLVReader ऑब्जेक्ट का रेफ़रंस, जो पहले से एन्कोड किए गए TLV एलिमेंट की पहचान करता है. इसका टाइप और वैल्यू कॉपी करना चाहिए.
सामान लौटाने की वैल्यू
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() फ़ंक्शन की मदद से, वीव या प्लैटफ़ॉर्म के हिसाब से होने वाली अन्य गड़बड़ियां मिलती हैं.

sTagSizes

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

फ़ंक्शन

कॉमन टैग

uint64_t CommonTag(
  uint32_t tagNum
)

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

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

प्रसंग वाला टैग

uint64_t ContextTag(
  uint8_t tagNum
)

संदर्भ के हिसाब से खास TLV टैग के लिए, एपीआई जनरेट करता है.

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

GetTLVफ़ील्डसाइज़

TLVFieldSize GetTLVFieldSize(
  uint8_t type
)

IsContextTag

bool IsContextTag(
  uint64_t tag
)

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

IsProfileTag

bool IsProfileTag(
  uint64_t tag
)

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

IsSpecialTag

bool IsSpecialTag(
  uint64_t tag
)

isमान्यTLVType

bool IsValidTLVType(
  uint8_t type
)

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

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

प्रोफ़ाइल आईडी (टैग)

uint32_t ProfileIdFromTag(
  uint64_t tag
)

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

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

ProfileNumFromTag

uint16_t ProfileNumFromTag(
  uint64_t tag
)

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

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

प्रोफ़ाइल टैग

uint64_t ProfileTag(
  uint32_t profileId,
  uint32_t tagNum
)

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

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

प्रोफ़ाइल टैग

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

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

ब्यौरा
पैरामीटर
[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
खास तौर पर, प्रोफ़ाइल के लिए या एपीआई के हिसाब से बनाए गए टीएलवी टैग को एपीआई के ज़रिए दिखाना.
लौटाए गए सामान
समस्या से जुड़ा टैग नंबर.
यह भी देखें:
IsProfileTag() और IsContextTag()

वेंडर आईडी का टैग

uint16_t VendorIdFromTag(
  uint64_t tag
)

TLV टैग से वेंडर आईडी लौटाता है.

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