nl:: Weave:: TLV
คำจำกัดความสำหรับการทำงานกับข้อมูลที่เข้ารหัสในรูปแบบ Weave TLV
สรุป
Weave TLV เป็นวิธีการเข้ารหัสทั่วไปสำหรับข้อมูลที่มีโครงสร้างแบบง่าย โดยจะแชร์คุณสมบัติหลายอย่างกับรูปแบบการเรียงอันดับ JSON ที่ใช้กันโดยทั่วไป ในขณะเดียวกันก็มีความกะทัดรัดมากกว่าสายไฟ
การแจงนับ |
|
---|---|
@71
|
enum |
@73
|
enum |
@74{
|
enum |
@75
|
enum |
TLVCommonProfiles{
|
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
สร้างการแสดง API ของแท็ก TLV ของโปรไฟล์ทั่วไป
|
ContextTag(uint8_t tagNum)
|
uint64_t
สร้างการแสดง API สำหรับแท็ก TLV เฉพาะบริบท
|
GetTLVFieldSize(uint8_t type)
|
TLVFieldSize
|
IsContextTag(uint64_t tag)
|
bool
แสดงค่า "จริง" หากแท็กที่ระบุเป็นแท็กที่ระบุบริบท
|
IsProfileTag(uint64_t tag)
|
bool
แสดงผล true ของแท็กที่ระบุคือแท็กเฉพาะโปรไฟล์
|
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
สร้างการแสดง API ของแท็ก TLV เฉพาะโปรไฟล์จากรหัสโปรไฟล์และหมายเลขแท็ก
|
ProfileTag(uint16_t vendorId, uint16_t profileNum, uint32_t tagNum)
|
uint64_t
สร้างการแสดง API ของแท็ก 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:: |
|
nl:: |
|
nl:: |
มีโปรแกรมแยกวิเคราะห์ประสิทธิภาพหน่วยความจำสำหรับข้อมูลที่เข้ารหัสในรูปแบบ Weave TLV |
nl:: |
มีอินเทอร์เฟซ Reader/Writer แบบรวมสำหรับการแก้ไข/เพิ่ม/ลบองค์ประกอบในการเข้ารหัส TLV |
nl:: |
มีโปรแกรมเปลี่ยนไฟล์ที่มีประสิทธิภาพหน่วยความจำสำหรับการเขียนข้อมูลในรูปแบบ Weave TLV |
nl:: |
WeaveCircularTLVBuffer ใช้พื้นที่เก็บข้อมูลแบบวงกลมสำหรับ nl::Weave::TLV::TLVWriter และ nl::Weave::TLVTLVReader |
เนมสเปซ |
|
---|---|
nl:: |
เนมสเปซนี้มีประเภทและอินเทอร์เฟซสำหรับการแก้ไขข้อบกพร่องและการบันทึก Weave TLV |
nl:: |
เนมสเปซนี้มีประเภทและอินเทอร์เฟซยูทิลิตีสำหรับการจัดการและการทำงานร่วมกับ Weave TLV |
การแจงนับ
@71
@71
@73
@73
@74
@74
พร็อพเพอร์ตี้ | |
---|---|
AnonymousTag
|
ค่าที่แสดงถึงองค์ประกอบ TLV ที่ไม่มีแท็ก (เช่น องค์ประกอบที่ไม่เปิดเผยตัวตน) |
@75
@75
TLVCommonProfiles
TLVCommonProfiles
พร็อพเพอร์ตี้ | |
---|---|
kProfileIdNotSpecified
|
ใช้เพื่อระบุไม่มีรหัสโปรไฟล์ในตัวแปรหรือสมาชิก โดยจะเหมือนกับ kWeaveProfile_NotSpecified ที่กำหนดไว้ใน WeaveProfiles.h |
TLVElementType
TLVElementType
TLVFieldSize
TLVFieldSize
TLVTagControl
TLVTagControl
TLVTagFields
TLVTagFields
ตัวแปร
kWeaveTLVCopyChunkSize
const size_t kWeaveTLVCopyChunkSize = 16
คัดลอกองค์ประกอบ TLV จากออบเจ็กต์ผู้อ่านไปยังผู้เขียน
เมธอด CopyElement() จะเข้ารหัสองค์ประกอบ TLV ใหม่ซึ่งมีประเภทและค่าที่ได้จากออบเจ็กต์ TLVReader เมื่อมีการเรียกเมธอด ออบเจ็กต์ผู้อ่านที่ให้มาจะต้องอยู่ในองค์ประกอบ TLV ต้นทาง องค์ประกอบที่เข้ารหัสใหม่จะมีประเภทและเนื้อหาเหมือนกับคอนเทนเนอร์อินพุต แต่แท็กจะถูกตั้งค่าเป็นอาร์กิวเมนต์ที่ระบุ หากองค์ประกอบที่ระบุเป็นคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ระบบจะคัดลอกเนื้อหาทั้งหมดของคอนเทนเนอร์
รายละเอียด | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||||
ผลลัพธ์ |
|
sTagSizes
const uint8_t sTagSizes[] = { 0, 1, 2, 4, 2, 4, 6, 8 }
ฟังก์ชัน
CommonTag
uint64_t CommonTag( uint32_t tagNum )
สร้างการแสดง API ของแท็ก TLV ของโปรไฟล์ทั่วไป
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
จำนวนเต็ม 64 บิตที่แทนแท็ก
|
ContextTag
uint64_t ContextTag( uint8_t tagNum )
สร้างการแสดง API สำหรับแท็ก TLV เฉพาะบริบท
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
จำนวนเต็ม 64 บิตที่แทนแท็ก
|
GetTLVFieldSize
TLVFieldSize GetTLVFieldSize( uint8_t type )
IsContextTag
bool IsContextTag( uint64_t tag )
แสดงค่า "จริง" หากแท็กที่ระบุเป็นแท็กที่ระบุบริบท
IsProfileTag
bool IsProfileTag( uint64_t tag )
แสดงผล true ของแท็กที่ระบุคือแท็กเฉพาะโปรไฟล์
IsSpecialTag
bool IsSpecialTag( uint64_t tag )
IsValidTLVType
bool IsValidTLVType( uint8_t type )
ProfileIdFromTag
uint32_t ProfileIdFromTag( uint64_t tag )
ProfileNumFromTag
uint16_t ProfileNumFromTag( uint64_t tag )
ProfileTag
uint64_t ProfileTag( uint32_t profileId, uint32_t tagNum )
สร้างการแสดง API ของแท็ก TLV เฉพาะโปรไฟล์จากรหัสโปรไฟล์และหมายเลขแท็ก
รายละเอียด | |||||
---|---|---|---|---|---|
พารามิเตอร์ |
|
||||
การคืนสินค้า |
จำนวนเต็ม 64 บิตที่แทนแท็ก
|
ProfileTag
uint64_t ProfileTag( uint16_t vendorId, uint16_t profileNum, uint32_t tagNum )
สร้างการแสดง API ของแท็ก TLV เฉพาะโปรไฟล์จากรหัสผู้ให้บริการ หมายเลขโปรไฟล์ และหมายเลขแท็ก
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
การคืนสินค้า |
จำนวนเต็ม 64 บิตที่แทนแท็ก
|
TLVFieldSizeToBytes
uint8_t TLVFieldSizeToBytes( TLVFieldSize fieldSize )
TLVTypeHasLength
bool TLVTypeHasLength( uint8_t type )
TLVTypeHasValue
bool TLVTypeHasValue( uint8_t type )
TLVTypeIsContainer
bool TLVTypeIsContainer( uint8_t type )
TLVTypeIsString
bool TLVTypeIsString( uint8_t type )
TagNumFromTag
uint32_t TagNumFromTag( uint64_t tag )
แสดงผลหมายเลขแท็กจากแท็ก TLV
รายละเอียด | |||
---|---|---|---|
พารามิเตอร์ |
|
||
การคืนสินค้า |
หมายเลขแท็กที่เกี่ยวข้อง
|
IsProfileTag() และ IsContextTag()