nl:: Weave:: TLV:: TLVWriter
#include <src/lib/core/WeaveTLV.h>
มีโปรแกรมเปลี่ยนไฟล์สําหรับหน่วยความจําที่มีประสิทธิภาพสําหรับเขียนข้อมูลในรูปแบบ Weave TLV
สรุป
TLVWriter นําโปรแกรมเปลี่ยนไฟล์แบบสตรีมแบบส่งต่อเท่านั้นไปใช้กับข้อมูล Weave TLV แอปพลิเคชันจะเขียนข้อมูลลงในการเข้ารหัสโดยเรียกใช้วิธี Put() ของผู้เขียนวิธีใดค่าหนึ่ง โดยส่งผ่านแท็กและข้อมูลที่เกี่ยวข้องตามความจําเป็น ในทํานองเดียวกัน แอปพลิเคชันจะเข้ารหัสประเภทคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ได้โดยการเรียกใช้เมธอด OpenContainer() หรือ EnterContainer() ของนักเขียน
ออบเจ็กต์ TLVWriter จะเขียนข้อมูลไปยังบัฟเฟอร์เอาต์พุตแบบคงที่หรือไปยังเชนของออบเจ็กต์ PacketBuffer ได้โดยตรง นอกจากนี้ แอปพลิเคชันยังจัดหาฟังก์ชัน GetNewBuffer
และ FinalizeBuffer
ของตนเองเพื่อเอาต์พุตไปยังปลายทางที่กําหนดเองได้ เช่น ซ็อกเก็ตหรือคิวเหตุการณ์
การสืบทอด
คลาสย่อยที่เป็นที่รู้จักโดยตรง: nl::Weave::TLV::CircularTLVWriter
ประเภทที่ป้องกัน |
|
---|---|
@72{
|
enum |
ประเภทสาธารณะ |
|
---|---|
FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen)
|
ข้อผิดพลาด(* ฟังก์ชันที่ใช้เพื่อสรุปเอาต์พุตจากออบเจ็กต์ TLVWriter |
GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)
|
ข้อผิดพลาด(* ฟังก์ชันที่ให้พื้นที่บัฟเฟอร์เอาต์พุตใหม่ไปยัง TLVWriter |
แอตทริบิวต์สาธารณะ |
|
---|---|
AppData
|
void *
ช่องตัวชี้ที่สามารถใช้สําหรับข้อมูลเฉพาะแอปพลิเคชัน
|
FinalizeBuffer
|
ตัวชี้ไปยังฟังก์ชันที่จะเรียกใช้เมื่อ TLVWriter ได้รับการสรุปผล
|
GetNewBuffer
|
ตัวชี้ไปยังฟังก์ชันที่จะจัดสรรพื้นที่บัฟเฟอร์เอาต์พุตใหม่ให้กับ TLVWriter
|
ImplicitProfileId
|
uint32_t
รหัสโปรไฟล์ของแท็กที่ควรเข้ารหัสในรูปแบบโดยนัย
|
แอตทริบิวต์ที่ได้รับการปกป้อง |
|
---|---|
mBufHandle
|
uintptr_t
|
mBufStart
|
uint8_t *
|
mContainerType
|
|
mLenWritten
|
uint32_t
|
mMaxLen
|
uint32_t
|
mRemainingLen
|
uint32_t
|
mWritePoint
|
uint8_t *
|
ฟังก์ชันสาธารณะ |
|
---|---|
CloseContainer(TLVWriter & containerWriter)
|
เขียนคอนเทนเนอร์ TLV ให้เสร็จสมบูรณ์หลังการเรียกไปยัง OpenContainer()
|
ContinuePutBytes(const uint8_t *buf, uint32_t len)
|
เข้ารหัสค่าสตริงเป็น TLV ไบต์
|
CopyContainer(TLVReader & container)
|
|
CopyContainer(uint64_t tag, TLVReader & container)
|
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV จากชุดองค์ประกอบสมาชิกที่เข้ารหัสไว้ล่วงหน้า
|
CopyContainer(uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen)
|
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ที่มีองค์ประกอบสมาชิกจากคอนเทนเนอร์ที่เข้ารหัสไว้ล่วงหน้า
|
CopyElement(TLVReader & reader)
|
คัดลอกองค์ประกอบ TLV จากออบเจ็กต์ผู้อ่านไปยังผู้เขียน
|
CopyElement(uint64_t tag, TLVReader & reader)
|
|
EndContainer(TLVType outerContainerType)
|
ทําการเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ให้เสร็จสิ้น
|
Finalize(void)
|
เขียนการเข้ารหัส TLV ให้เสร็จสิ้น
|
GetContainerType(void) const
|
แสดงผลประเภทคอนเทนเนอร์ที่ TLVWriter เขียนอยู่
|
GetLengthWritten(void)
|
uint32_t
แสดงจํานวนไบต์ทั้งหมดที่เขียนขึ้นมาตั้งแต่เริ่มเขียน
|
Init(uint8_t *buf, uint32_t maxLen)
|
void
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนเป็นบัฟเฟอร์เอาต์พุตเดียว
|
Init(PacketBuffer *buf, uint32_t maxLen)
|
void
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนลงใน PacketBuffer รายการเดียว
|
Init(PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers)
|
void
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนลงใน PacketBuffers อย่างน้อย 1 รายการ
|
InitMalloced(uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen)
|
void
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนไปยังบัฟเฟอร์แบบไดนามิก
|
OpenContainer(uint64_t tag, TLVType containerType, TLVWriter & containerWriter)
|
|
Put(uint64_t tag, int8_t v)
|
เข้ารหัสค่าที่เป็นจํานวนเต็มของ TLV
|
Put(uint64_t tag, int8_t v, bool preserveSize)
|
เข้ารหัสค่าที่เป็นจํานวนเต็มของ TLV
|
Put(uint64_t tag, int16_t v)
|
|
Put(uint64_t tag, int16_t v, bool preserveSize)
|
|
Put(uint64_t tag, int32_t v)
|
|
Put(uint64_t tag, int32_t v, bool preserveSize)
|
|
Put(uint64_t tag, int64_t v)
|
|
Put(uint64_t tag, int64_t v, bool preserveSize)
|
|
Put(uint64_t tag, uint8_t v)
|
เข้ารหัสค่าจํานวนเต็มที่ไม่มีเครื่องหมาย TLV
|
Put(uint64_t tag, uint8_t v, bool preserveSize)
|
เข้ารหัสค่าจํานวนเต็มที่ไม่มีเครื่องหมาย TLV
|
Put(uint64_t tag, uint16_t v)
|
|
Put(uint64_t tag, uint16_t v, bool preserveSize)
|
|
Put(uint64_t tag, uint32_t v)
|
|
Put(uint64_t tag, uint32_t v, bool preserveSize)
|
|
Put(uint64_t tag, uint64_t v)
|
|
Put(uint64_t tag, uint64_t v, bool preserveSize)
|
|
Put(uint64_t tag, float v)
|
|
Put(uint64_t tag, double v)
|
เข้ารหัสค่าจุดลอยตัว TLV
|
PutBoolean(uint64_t tag, bool v)
|
เข้ารหัสค่าบูลีน TLV
|
PutBytes(uint64_t tag, const uint8_t *buf, uint32_t len)
|
เข้ารหัสค่าสตริงเป็น TLV ไบต์
|
PutNull(uint64_t tag)
|
เข้ารหัสค่า Null TLV
|
PutPreEncodedContainer(uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen)
|
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV จากชุดองค์ประกอบสมาชิกที่เข้ารหัสไว้ล่วงหน้า
|
PutString(uint64_t tag, const char *buf)
|
เข้ารหัสค่าสตริง UTF8 TLV
|
PutString(uint64_t tag, const char *buf, uint32_t len)
|
เข้ารหัสค่าสตริง UTF8 TLV
|
PutStringF(uint64_t tag, const char *fmt, ...)
|
เข้ารหัสเอาต์พุตของสตริงที่จัดรูปแบบตามรูปแบบในองค์ประกอบ TLV
|
StartContainer(uint64_t tag, TLVType containerType, TLVType & outerContainerType)
|
เริ่มเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่
|
StartPutBytes(uint64_t tag, uint32_t totalLen)
|
เข้ารหัสสตริง TLV ไบต์เป็นกลุ่ม
|
VPutStringF(uint64_t tag, const char *fmt, va_list ap)
|
เข้ารหัสเอาต์พุตของสตริงที่จัดรูปแบบตามรูปแบบในองค์ประกอบ TLV
|
ฟังก์ชันสาธารณะแบบคงที่ |
|
---|---|
FinalizePacketBuffer(TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen)
|
การใช้ฟังก์ชัน TLVWriter FinalizeBuffer เพื่อเขียนลงในเชนของ PacketBuffers
|
GetNewBuffer_Malloced(TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen)
|
การใช้ฟังก์ชัน GetTBuffer ของ TLVWriter สําหรับการเขียนไปยังบัฟเฟอร์แบบไดนามิก
|
GetNewPacketBuffer(TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen)
|
การใช้ฟังก์ชัน GetTBuffer ของ TLVWriter สําหรับการเขียนไปยังเชน PacketBuffers
|
ฟังก์ชันที่ได้รับการคุ้มครอง |
|
---|---|
IsCloseContainerReserved(void) const
|
bool
ระบุว่าคอนเทนเนอร์ควรจองพื้นที่สําหรับสัญลักษณ์ CloseContainer ที่จุดเริ่มต้น / เปิดคอนเทนเนอร์หรือไม่
|
IsContainerOpen(void) const
|
bool
|
SetCloseContainerReserved(bool aCloseContainerReserved)
|
void
กําหนดว่าจะให้คอนเทนเนอร์จองพื้นที่สําหรับสัญลักษณ์ CloseContainer ที่จุดเริ่มต้น / เปิดคอนเทนเนอร์หรือไม่
|
SetContainerOpen(bool aContainerOpen)
|
void
|
WriteData(const uint8_t *p, uint32_t len)
|
|
WriteElementHead(TLVElementType elemType, uint64_t tag, uint64_t lenOrVal)
|
|
WriteElementWithData(TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen)
|
ประเภทที่ป้องกัน
@72
@72
ประเภทสาธารณะ
สุดท้าย BufferFunct
WEAVE_ERROR(* FinalizeBufferFunct)(TLVWriter &writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t bufLen)
ฟังก์ชันที่ใช้เพื่อสรุปเอาต์พุตจากออบเจ็กต์ TLVWriter
ระบบจะเรียกใช้ฟังก์ชันประเภทนี้เมื่อมีการเรียกเมธอด TLVWriter's Finalize() ฟังก์ชันการทํางานนี้จะต้องล้างข้อมูลหรือดําเนินการตามความจําเป็นซึ่งเกี่ยวข้องกับการใช้เอาต์พุตของออบเจ็กต์ผู้เขียน ตัวอย่างเช่น การบันทึกความยาวสุดท้ายของการเข้ารหัส หรือปิดตัวอธิบายไฟล์
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
รับฟีดบัฟเฟอร์ใหม่
WEAVE_ERROR(* GetNewBufferFunct)(TLVWriter &writer, uintptr_t &bufHandle, uint8_t *&bufStart, uint32_t &bufLen)
ฟังก์ชันที่ให้พื้นที่บัฟเฟอร์เอาต์พุตใหม่ไปยัง TLVWriter
ฟังก์ชันประเภทนี้ใช้เพื่อเตรียมพื้นที่บัฟเฟอร์ใหม่ให้ TLVWriter เขียนด้วย เมื่อเรียกใช้ ฟังก์ชันควรส่งคืนตัวชี้ไปยังตําแหน่งหน่วยความจําที่ควรเขียนข้อมูลใหม่ พร้อมทั้งความยาวสูงสุดที่เกี่ยวข้อง ฟังก์ชันดังกล่าวจะมีพื้นที่เขียนด้วยการจัดสรรบัฟเฟอร์ใหม่เพื่อใช้เก็บข้อมูลหรือล้างข้อมูลที่เขียนก่อนหน้านี้ออกจากบัฟเฟอร์ที่มีอยู่
รายละเอียด | |||||||||
---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||
แสดงผลค่า |
|
แอตทริบิวต์สาธารณะ
ข้อมูลแอป
void * AppData
ช่องตัวชี้ที่สามารถใช้สําหรับข้อมูลเฉพาะแอปพลิเคชัน
ขั้นตอนสุดท้าย
FinalizeBufferFunct FinalizeBuffer
ตัวชี้ไปยังฟังก์ชันที่จะเรียกใช้เมื่อ TLVWriter ได้รับการสรุปผล
ออบเจ็กต์ TLVWriter จะเรียกใช้ฟังก์ชัน FinalizeBuffer เมื่อมีการเรียกเมธอด Finalize() แอปพลิเคชันจะตั้งค่าตัวชี้ฟังก์ชันได้ทุกเมื่อก่อนเรียกใช้ Finalize() โดยค่าเริ่มต้น ตัวชี้จะตั้งค่าเป็น NULL ซึ่งจะทําให้เมธอด Finalize() ไม่สนใจการเรียกใช้ฟังก์ชันนั้น
ดูคําจํากัดความประเภท FinalizeBufferFunct เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งานฟังก์ชัน FinalizeBuffer
ดาวน์โหลด GetNewBuffer
GetNewBufferFunct GetNewBuffer
ตัวชี้ไปยังฟังก์ชันที่จะจัดสรรพื้นที่บัฟเฟอร์เอาต์พุตใหม่ให้กับ TLVWriter
ออบเจ็กต์ TLVWriter จะเรียกใช้ฟังก์ชัน GetNewBuffer ทุกครั้งที่มีการพยายามเขียนข้อมูลที่เกินขนาดบัฟเฟอร์ของเอาต์พุตปัจจุบัน หากตั้งค่าเป็น NULL (ค่าเริ่มต้น) ผู้เขียนจะส่งคืน WEhave_ERROR_NO_MEMORY หากข้อมูลเอาต์พุตเกินบัฟเฟอร์ปัจจุบัน
แอปพลิเคชันอาจได้รับการตั้งค่า GetNewBuffer ได้ทุกเมื่อ แต่โดยทั่วไปจะมีการตั้งค่าให้เมื่อผู้เขียนเริ่มต้น
ดูคําจํากัดความประเภท GetNewBufferFunct เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการติดตั้งใช้งานฟังก์ชัน GetNewBuffer
รหัสโปรไฟล์โดยนัย
uint32_t ImplicitProfileId
รหัสโปรไฟล์ของแท็กที่ควรเข้ารหัสในรูปแบบโดยนัย
เมื่อระบบขอให้ผู้เขียนเข้ารหัสองค์ประกอบใหม่ หากรหัสของแท็กที่เชื่อมโยงกับองค์ประกอบใหม่ตรงกับค่าของสมาชิก ImplicitProfileId
ผู้เขียนจะเข้ารหัสแท็กในรูปแบบโดยนัยโดยละเว้นรหัสโปรไฟล์ในขั้นตอนนี้
ตามค่าเริ่มต้น พร็อพเพอร์ตี้ ImplicitProfileId
จะตั้งค่าเป็น kProfileIdNotSpecified ซึ่งบอกผู้เขียนว่าไม่ให้ปล่อยแท็กที่เข้ารหัสโดยนัย แอปพลิเคชันจะตั้งค่า ImplicitProfileId
ได้ทุกเมื่อเพื่อเปิดใช้แท็กการเข้ารหัสในรูปแบบโดยนัยโดยเริ่มที่จุดปัจจุบันในการเข้ารหัส รหัสโปรไฟล์ที่เหมาะสมในการตั้งค่ามักจะขึ้นอยู่กับบริบทของแอปพลิเคชันหรือโปรโตคอลที่มีการพูด
แอตทริบิวต์ที่ได้รับการปกป้อง
แฮนเดิล mBuf
uintptr_t mBufHandle
mBufStart
uint8_t * mBufStart
ประเภทคอนเทนเนอร์
TLVType mContainerType
mLenWritten
uint32_t mLenWritten
ยาวสุด
uint32_t mMaxLen
mRemainingLen
uint32_t mRemainingLen
mmPoint
uint8_t * mWritePoint
ฟังก์ชันสาธารณะ
ปิดคอนเทนเนอร์
WEAVE_ERROR CloseContainer( TLVWriter & containerWriter )
เขียนคอนเทนเนอร์ TLV ให้เสร็จสมบูรณ์หลังการเรียกไปยัง OpenContainer()
เมธอด CloseContainer() จะกู้คืนออบเจ็กต์ของ TLVWriter ระดับบนสุดหลังจากเรียกไปยัง OpenContainer() สําหรับการเรียกใช้แอปพลิเคชัน OpenContainer() ทุกครั้งต้องเรียกใช้ CloseContainer() กับการอ้างอิงไปยังผู้เขียนคอนเทนเนอร์เดียวกันไปยังทั้ง 2 เมธอด
เมื่อ CloseContainer() แสดงผลแล้ว แอปพลิเคชันอาจใช้ผู้เขียนระดับบนสุดเพื่อเขียนองค์ประกอบ TLV เพิ่มเติมที่ปรากฏหลังองค์ประกอบคอนเทนเนอร์ต่อไป ณ จุดนี้ ผู้เขียนคอนเทนเนอร์ที่ระบุควรได้รับการพิจารณาว่าพร้อมใช้งาน
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
พัตตาไบท์
WEAVE_ERROR ContinuePutBytes( const uint8_t *buf, uint32_t len )
เข้ารหัสค่าสตริงเป็น TLV ไบต์
ซึ่งควรใช้กับ StartPutBytes
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
คัดลอกคอนเทนเนอร์
WEAVE_ERROR CopyContainer( TLVReader & container )
คัดลอกองค์ประกอบคอนเทนเนอร์ TLV จากออบเจ็กต์ TLVReader
CopyContainer() จะเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่โดยการคัดลอกองค์ประกอบคอนเทนเนอร์ที่เข้ารหัสไว้ล่วงหน้าซึ่งอยู่ในตําแหน่งปัจจุบันของออบเจ็กต์ TLVReader เมธอดจะเขียนองค์ประกอบคอนเทนเนอร์ใหม่ทั้งหมดในการเรียกใช้ครั้งเดียว โดยคัดลอกประเภท แท็ก และองค์ประกอบของคอนเทนเนอร์จากการเข้ารหัสแหล่งที่มา เมื่อเมธอดถูกส่งกลับมา ออบเจ็กต์ของผู้เขียนสามารถใช้เขียนองค์ประกอบ TLV เพิ่มเติมหลังองค์ประกอบคอนเทนเนอร์ได้
รายละเอียด | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||||
แสดงผลค่า |
|
คัดลอกคอนเทนเนอร์
WEAVE_ERROR CopyContainer( uint64_t tag, TLVReader & container )
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV จากชุดองค์ประกอบสมาชิกที่เข้ารหัสไว้ล่วงหน้า
เมธอด CopyContainer() จะเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่ (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ที่มีชุดองค์ประกอบสมาชิกที่ได้รับจากออบเจ็กต์ TLVReader เมื่อมีการเรียกใช้เมธอด ออบเจ็กต์การอ่านที่ระบุจะอยู่ในตําแหน่งขององค์ประกอบคอนเทนเนอร์ TLV คอนเทนเนอร์ที่เข้ารหัสใหม่จะมีประเภทและสมาชิกเหมือนกับคอนเทนเนอร์อินพุต แท็กสําหรับคอนเทนเนอร์ใหม่จะระบุเป็นพารามิเตอร์อินพุต
เมื่อเมธอดถูกส่งกลับมา ออบเจ็กต์ของผู้เขียนสามารถใช้เขียนองค์ประกอบ TLV เพิ่มเติมหลังองค์ประกอบคอนเทนเนอร์ได้
รายละเอียด | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||||
แสดงผลค่า |
|
คัดลอกคอนเทนเนอร์
WEAVE_ERROR CopyContainer( uint64_t tag, const uint8_t *encodedContainer, uint16_t encodedContainerLen )
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ที่มีองค์ประกอบสมาชิกจากคอนเทนเนอร์ที่เข้ารหัสไว้ล่วงหน้า
เมธอด CopyContainer() จะเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่ (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ที่มีชุดองค์ประกอบสมาชิกที่มาจากเนื้อหาของคอนเทนเนอร์ที่เข้ารหัสไว้ล่วงหน้า เมื่อมีการเรียกใช้เมธอด ระบบจะแยกวิเคราะห์ข้อมูลในบัฟเฟอร์อินพุตที่ระบุเป็นองค์ประกอบคอนเทนเนอร์ TLV ซึ่งเขียนคอนเทนเนอร์ใหม่ที่มีประเภทและสมาชิกเหมือนกับคอนเทนเนอร์อินพุต แท็กสําหรับคอนเทนเนอร์ใหม่จะระบุเป็นพารามิเตอร์อินพุต
เมื่อเมธอดถูกส่งกลับมา ออบเจ็กต์ของผู้เขียนสามารถใช้เขียนองค์ประกอบ TLV เพิ่มเติมหลังองค์ประกอบคอนเทนเนอร์ได้
รายละเอียด | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||
แสดงผลค่า |
|
องค์ประกอบที่คัดลอก
WEAVE_ERROR CopyElement( TLVReader & reader )
คัดลอกองค์ประกอบ TLV จากออบเจ็กต์ผู้อ่านไปยังผู้เขียน
เมธอด CopyElement() จะเข้ารหัสองค์ประกอบ TLV ใหม่ที่มีประเภท แท็ก และค่าจากออบเจ็กต์ TLVReader เมื่อมีการเรียกใช้เมธอด ออบเจ็กต์การอ่านที่ระบุจะอยู่ในตําแหน่งขององค์ประกอบ TLV ต้นทาง องค์ประกอบที่เข้ารหัสใหม่จะมีประเภท แท็ก และเนื้อหาเหมือนกับคอนเทนเนอร์อินพุต หากองค์ประกอบที่ระบุเป็นคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ระบบจะคัดลอกเนื้อหาทั้งหมดของคอนเทนเนอร์นั้น
รายละเอียด | |||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||||||
แสดงผลค่า |
|
องค์ประกอบที่คัดลอก
WEAVE_ERROR CopyElement( uint64_t tag, TLVReader & reader )
ที่เก็บขนาดใหญ่
WEAVE_ERROR EndContainer( TLVType outerContainerType )
ทําการเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ให้เสร็จสิ้น
เมธอด EndContainer() จะเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ให้เสร็จสมบูรณ์และกู้คืนสถานะของออบเจ็กต์ TLVWrite หลังการเรียกไปยัง StartContainer() ทุกครั้ง การเรียกแอปพลิเคชัน StartContainer() ทุกครั้งต้องเรียกใช้ EndContainer() ค่า TLVType ที่ส่งโดยการเรียก StartContainer() เมื่อ EndContainer() แสดงผล คุณสามารถใช้ออบเจ็กต์ผู้เขียนเพื่อเขียนองค์ประกอบ TLV เพิ่มเติมที่เกิดขึ้นหลังองค์ประกอบคอนเทนเนอร์ได้
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ทำให้สิ้นสุด
WEAVE_ERROR Finalize( void )
เขียนการเข้ารหัส TLV ให้เสร็จสิ้น
เมธอด Finalize() จะทําให้การเขียนการเข้ารหัส TLV เสร็จสมบูรณ์ไปยังบัฟเฟอร์เอาต์พุตที่เกี่ยวข้อง แอปพลิเคชันต้องเรียกใช้เมธอดก่อนที่จะใช้เนื้อหาของบัฟเฟอร์ เรียก Finalize() ได้ก็ต่อเมื่อไม่มีผู้เขียนคอนเทนเนอร์ที่เปิดอยู่สําหรับนักเขียนปัจจุบัน (ดู OpenContainer()
)
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
แสดงผลค่า |
|
ประเภท GetContainer
TLVType GetContainerType( void ) const
แสดงผลประเภทคอนเทนเนอร์ที่ TLVWriter เขียนอยู่
เมธอด GetContainerType() จะแสดงประเภทคอนเทนเนอร์ TLV ที่ TLVWriter กําลังเขียนอยู่ หาก TLVWriter ไม่ได้เขียนองค์ประกอบภายในคอนเทนเนอร์ (เช่น หากเขียนในระดับที่ด้านนอกสุดของการเข้ารหัส) เมธอดจะแสดง kTLVType_NotSpecified
รายละเอียด | |
---|---|
การคืนสินค้า |
TLVType ของคอนเทนเนอร์ปัจจุบัน หรือ kTLVType_NotSpecified หาก TLVWriter ไม่ได้เขียนองค์ประกอบภายในคอนเทนเนอร์
|
ความสูงในการเขียน
uint32_t GetLengthWritten( void )
แสดงจํานวนไบต์ทั้งหมดที่เขียนขึ้นมาตั้งแต่เริ่มเขียน
รายละเอียด | |
---|---|
การคืนสินค้า |
จํานวนไบต์ที่เขียนทั้งหมดนับตั้งแต่ที่เริ่มเขียน
|
เริ่ม
void Init( uint8_t *buf, uint32_t maxLen )
เริ่ม
void Init( PacketBuffer *buf, uint32_t maxLen )
เริ่ม
void Init( PacketBuffer *buf, uint32_t maxLen, bool allowDiscontiguousBuffers )
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนลงใน PacketBuffers อย่างน้อย 1 รายการ
การเขียนจะเริ่มขึ้นทันทีหลังจากไบต์สุดท้ายของข้อมูลที่มีอยู่แล้วในบัฟเฟอร์ที่ระบุ หาก allowDiscontiguousBuffers
มีค่าจริง ระบบจะจัดสรร PacketBuffers เพิ่มเติมและเชนกับบัฟเฟอร์ที่ระบุตามความจําเป็นเพื่อรองรับจํานวนข้อความที่เขียน หากบัฟเฟอร์เอาต์พุตที่ระบุเป็นส่วนหัวของเชนบัฟเฟอร์แล้ว ระบบจะเขียนเอาต์พุตไปยังบัฟเฟอร์ลําดับต่อไปในเชนก่อนที่จะจัดสรรบัฟเฟอร์ใหม่
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
InitMalloced
void InitMalloced( uint8_t *& outBuf, uint32_t initialBufSize, uint32_t maxLen )
เริ่มต้นออบเจ็กต์ TLVWriter เพื่อเขียนไปยังบัฟเฟอร์แบบไดนามิก
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
คอนเทนเนอร์เปิด
WEAVE_ERROR OpenContainer( uint64_t tag, TLVType containerType, TLVWriter & containerWriter )
เริ่มต้นออบเจ็กต์ TLVWriter ใหม่เพื่อเขียนสมาชิกขององค์ประกอบคอนเทนเนอร์ TLV
เมธอด OpenContainer() ใช้เพื่อเขียนองค์ประกอบคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ลงในการเข้ารหัส วิธีการนี้จะนําประเภทและแท็ก (หากมี) ของคอนเทนเนอร์ใหม่มาใช้อ้างอิงไปยังออบเจ็กต์ผู้เขียนใหม่ (ผู้เขียนคอนเทนเนอร์) ที่จะเริ่มต้นเพื่อจุดประสงค์ในการเขียนองค์ประกอบคอนเทนเนอร์ แอปพลิเคชันจะเขียนสมาชิกของคอนเทนเนอร์ใหม่โดยใช้ผู้เขียนคอนเทนเนอร์ จากนั้นเรียกใช้ CloseContainer() เพื่อเข้ารหัสคอนเทนเนอร์ให้เสร็จสิ้น
ขณะที่ผู้เขียนคอนเทนเนอร์เปิดอยู่ แอปพลิเคชันต้องไม่เรียกใช้หรือเปลี่ยนสถานะของผู้เขียนหลัก
ผู้เขียนคอนเทนเนอร์จะนําคุณสมบัติการกําหนดค่าต่างๆ มาจากผู้เขียนระดับบนสุด ได้แก่
- รหัสโปรไฟล์โดยนัย (ImplicitProfileId)
- ตัวระบุข้อมูลแอปพลิเคชัน (AppData)
- ตัวชี้ฟังก์ชัน GetNewBuffer และ FinalizeBuffer
รายละเอียด | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||
แสดงผลค่า |
|
ใส่
WEAVE_ERROR Put( uint64_t tag, int8_t v )
เข้ารหัสค่าที่เป็นจํานวนเต็มของ TLV
ฟังก์ชันการทํางานนี้เน้นภาระงานมากเกินไปเพื่อมอบความสะดวกสบาย ซึ่งแตกต่างจากฟังก์ชันด้านบนเฉพาะอาร์กิวเมนต์ที่ยอมรับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่
WEAVE_ERROR Put( uint64_t tag, int8_t v, bool preserveSize )
เข้ารหัสค่าที่เป็นจํานวนเต็มของ TLV
ฟังก์ชันการทํางานนี้เน้นภาระงานมากเกินไปเพื่อมอบความสะดวกสบาย ซึ่งแตกต่างจากฟังก์ชันด้านบนเฉพาะอาร์กิวเมนต์ที่ยอมรับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่
WEAVE_ERROR Put( uint64_t tag, int16_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, int16_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, int32_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, int32_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, int64_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, int64_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint8_t v )
เข้ารหัสค่าจํานวนเต็มที่ไม่มีเครื่องหมาย TLV
ฟังก์ชันการทํางานนี้เน้นภาระงานมากเกินไปเพื่อมอบความสะดวกสบาย ซึ่งแตกต่างจากฟังก์ชันด้านบนเฉพาะอาร์กิวเมนต์ที่ยอมรับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่
WEAVE_ERROR Put( uint64_t tag, uint8_t v, bool preserveSize )
เข้ารหัสค่าจํานวนเต็มที่ไม่มีเครื่องหมาย TLV
ฟังก์ชันการทํางานนี้เน้นภาระงานมากเกินไปเพื่อมอบความสะดวกสบาย ซึ่งแตกต่างจากฟังก์ชันด้านบนเฉพาะอาร์กิวเมนต์ที่ยอมรับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่
WEAVE_ERROR Put( uint64_t tag, uint16_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint16_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint32_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint32_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint64_t v )
ใส่
WEAVE_ERROR Put( uint64_t tag, uint64_t v, bool preserveSize )
ใส่
WEAVE_ERROR Put( uint64_t tag, float v )
ใส่
WEAVE_ERROR Put( uint64_t tag, double v )
เข้ารหัสค่าจุดลอยตัว TLV
ฟังก์ชันการทํางานนี้เน้นภาระงานมากเกินไปเพื่อมอบความสะดวกสบาย ซึ่งแตกต่างจากฟังก์ชันด้านบนเฉพาะอาร์กิวเมนต์ที่ยอมรับ
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ปูนบูลีน
WEAVE_ERROR PutBoolean( uint64_t tag, bool v )
เข้ารหัสค่าบูลีน TLV
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
PutBytes
WEAVE_ERROR PutBytes( uint64_t tag, const uint8_t *buf, uint32_t len )
เข้ารหัสค่าสตริงเป็น TLV ไบต์
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ปูนนัล
WEAVE_ERROR PutNull( uint64_t tag )
เข้ารหัสค่า Null TLV
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่ PrePreEncodeContainer
WEAVE_ERROR PutPreEncodedContainer( uint64_t tag, TLVType containerType, const uint8_t *data, uint32_t dataLen )
เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV จากชุดองค์ประกอบสมาชิกที่เข้ารหัสไว้ล่วงหน้า
เมธอด PutPreEnencryptedContainer() เข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่ (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ที่มีชุดองค์ประกอบสมาชิกจากบัฟเฟอร์ล่วงหน้า ระบบคาดการณ์ว่าบัฟเฟอร์อินพุตจะมีองค์ประกอบ TLV ที่เข้ารหัสแบบสมบูรณ์อย่างน้อย 0 รายการ โดยมีแท็กที่สอดคล้องกับกฎที่เชื่อมโยงกับประเภทคอนเทนเนอร์ที่ระบุ (เช่น สมาชิกโครงสร้างต้องมีแท็ก ในขณะที่สมาชิกอาร์เรย์ต้องไม่มี)
วิธีการนี้เข้ารหัสองค์ประกอบทั้งหมดขององค์ประกอบในการเรียกครั้งเดียว เมื่อ PutPreEncodingContainer() แสดงผล คุณจะใช้ออบเจ็กต์ผู้เขียนเพื่อเขียนองค์ประกอบ TLV เพิ่มเติมต่อจากองค์ประกอบของคอนเทนเนอร์ได้
รายละเอียด | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||
แสดงผลค่า |
|
ใส่สตริง
WEAVE_ERROR PutString( uint64_t tag, const char *buf )
เข้ารหัสค่าสตริง UTF8 TLV
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
ใส่สตริง
WEAVE_ERROR PutString( uint64_t tag, const char *buf, uint32_t len )
เข้ารหัสค่าสตริง UTF8 TLV
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
สตริง ตัวอย่างเช่น
WEAVE_ERROR PutStringF( uint64_t tag, const char *fmt, ... )
เข้ารหัสเอาต์พุตของสตริงที่จัดรูปแบบตามรูปแบบในองค์ประกอบ TLV
PutStringF เป็นแอนะล็อกของ sprintf ที่เก็บเอาต์พุตในองค์ประกอบ TLV แทนที่จะเป็นบัฟเฟอร์อักขระ เมื่อมีฟังก์ชันเครื่องพิมพ์แบบขยายได้ ฟังก์ชันจะเอาต์พุตสตริงผลลัพธ์ให้เป็นพื้นที่เก็บข้อมูลที่ต่อเนื่องไม่ได้ การใช้งานจะรองรับการเพิ่มประสิทธิภาพงานพิมพ์ต่อไปนี้
แพลตฟอร์มมี vcbprintf
ตามโค้ดเรียกกลับที่ช่วยให้สามารถเรียกโค้ดเรียกกลับที่กําหนดเองแทนข้อความนี่คือ
แพลตฟอร์มนี้มีตัวแปร vsnprintf
ชื่อว่า vsnprintf_ex
ซึ่งมีลักษณะการทํางานเหมือนกับnnprintf ทุกประการ ยกเว้นในกรณีที่มีการละเว้นอักขระ n
ตัวแรกของเอาต์พุต
โปรดทราบว่าแม้ฟังก์ชันโค้ดเรียกกลับจะเรียบง่ายที่สุดและใช้โค้ดน้อยที่สุด แต่ฟังก์ชันที่หลากหลายของ vsprintf_ex
จะใช้สแต็กน้อยลง
หากไม่มีข้อใดข้างต้น แต่แพลตฟอร์มให้ malloc
ฟังก์ชันจะจัดสรรบัฟเฟอร์ชั่วคราวเพื่อเก็บเอาต์พุต เมื่อแพลตฟอร์มไม่เพิ่มประสิทธิภาพให้ตระกูล Printf หรือห้างสรรพสินค้า เอาต์พุตจะถูกตัดให้พอดีอยู่ในสถานะต่อเนื่องในพื้นที่เก็บข้อมูล TLV ปัจจุบัน
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
เริ่มที่คอนเทนเนอร์
WEAVE_ERROR StartContainer( uint64_t tag, TLVType containerType, TLVType & outerContainerType )
เริ่มเข้ารหัสองค์ประกอบคอนเทนเนอร์ TLV ใหม่
เมธอด StartContainer() ใช้เพื่อเขียนองค์ประกอบคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) ไปยังการเข้ารหัส เมธอดจะนําประเภทและแท็ก (หากมี) ของคอนเทนเนอร์ใหม่ และการอ้างอิงไปยังค่า TLVType ซึ่งจะใช้เพื่อบันทึกบริบทปัจจุบันของผู้เขียนในขณะที่เขียนคอนเทนเนอร์
เมื่อเมธอด StartContainer() แสดงผล แอปพลิเคชันควรใช้ออบเจ็กต์ TLVWriter ปัจจุบันเพื่อเขียนองค์ประกอบของคอนเทนเนอร์ เมื่อเสร็จแล้ว แอปพลิเคชันจะต้องเรียกใช้เมธอด EndContainer() เพื่อเข้ารหัสคอนเทนเนอร์ให้เสร็จสิ้น
รายละเอียด | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||||
แสดงผลค่า |
|
StartPutBytes
WEAVE_ERROR StartPutBytes( uint64_t tag, uint32_t totalLen )
เข้ารหัสสตริง TLV ไบต์เป็นกลุ่ม
ซึ่งควรใช้กับContinuePutBytes
รายละเอียด | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||||||||
แสดงผลค่า |
|
แบบสายรัด
WEAVE_ERROR VPutStringF( uint64_t tag, const char *fmt, va_list ap )
เข้ารหัสเอาต์พุตของสตริงที่จัดรูปแบบตามรูปแบบในองค์ประกอบ TLV
PutStringF เป็นแอนะล็อกของ sprintf ที่เก็บเอาต์พุตในองค์ประกอบ TLV แทนที่จะเป็นบัฟเฟอร์อักขระ เมื่อมีฟังก์ชันเครื่องพิมพ์แบบขยายได้ ฟังก์ชันจะเอาต์พุตสตริงผลลัพธ์ให้เป็นพื้นที่เก็บข้อมูลที่ต่อเนื่องไม่ได้ การใช้งานจะรองรับการเพิ่มประสิทธิภาพงานพิมพ์ต่อไปนี้
แพลตฟอร์มมี vcbprintf
ตามโค้ดเรียกกลับที่ช่วยให้สามารถเรียกโค้ดเรียกกลับที่กําหนดเองแทนข้อความนี่คือ
แพลตฟอร์มนี้มีตัวแปร vsnprintf
ชื่อว่า vsnprintf_ex
ซึ่งมีลักษณะการทํางานเหมือนกับnnprintf ทุกประการ ยกเว้นในกรณีที่มีการละเว้นอักขระ n
ตัวแรกของเอาต์พุต
โปรดทราบว่าแม้ฟังก์ชันโค้ดเรียกกลับจะเรียบง่ายที่สุดและใช้โค้ดน้อยที่สุด แต่ฟังก์ชันที่หลากหลายของ vsprintf_ex
จะใช้สแต็กน้อยลง
หากไม่มีข้อใดข้างต้น แต่แพลตฟอร์มให้ malloc
ฟังก์ชันจะจัดสรรบัฟเฟอร์ชั่วคราวเพื่อเก็บเอาต์พุต เมื่อแพลตฟอร์มไม่เพิ่มประสิทธิภาพให้ตระกูล Printf หรือห้างสรรพสินค้า เอาต์พุตจะถูกตัดให้พอดีอยู่ในสถานะต่อเนื่องในพื้นที่เก็บข้อมูล TLV ปัจจุบัน
รายละเอียด | |||||||
---|---|---|---|---|---|---|---|
พารามิเตอร์ |
|
||||||
แสดงผลค่า |
|
ฟังก์ชันสาธารณะแบบคงที่
FinalizePacketBuffer
WEAVE_ERROR FinalizePacketBuffer( TLVWriter & writer, uintptr_t bufHandle, uint8_t *bufStart, uint32_t dataLen )
การใช้ฟังก์ชัน TLVWriter FinalizeBuffer เพื่อเขียนลงในเชนของ PacketBuffers
ฟังก์ชัน FinalizePacketBuffer() จะสรุปที่จําเป็นที่จําเป็นเมื่อใช้ TLVWriter เพื่อเขียนไปยังเชน PacketBuffers โดยฟังก์ชันนี้ได้รับการออกแบบมาให้ใช้ร่วมกับฟังก์ชัน GetNewPacketBuffer()
ดูคําจํากัดความประเภท FinalizeBufferFunct เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ API ของฟังก์ชัน FinalizePacketBuffer()
GetNewBuffer_Malloced
WEAVE_ERROR GetNewBuffer_Malloced( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
การใช้ฟังก์ชัน GetTBuffer ของ TLVWriter สําหรับการเขียนไปยังบัฟเฟอร์แบบไดนามิก
ฟังก์ชัน GetNewBuffer_Malloced() จะให้พื้นที่เอาต์พุตใหม่แก่ TLVWriter โดยเพิ่มขนาดของบัฟเฟอร์แบบไดนามิกที่สําคัญเท่าที่จําเป็นเพื่อเก็บการเข้ารหัส ฟังก์ชันนี้ได้รับการออกแบบมาให้กําหนดให้กับตัวชี้ฟังก์ชัน TLVWriter GetNewBuffer
ดูคําจํากัดความประเภท GetNewBufferFunct เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ API ของฟังก์ชัน GetNewBuffer_Malloced()
GetNewPacketBuffer
WEAVE_ERROR GetNewPacketBuffer( TLVWriter & writer, uintptr_t & bufHandle, uint8_t *& bufStart, uint32_t & bufLen )
การใช้ฟังก์ชัน GetTBuffer ของ TLVWriter สําหรับการเขียนไปยังเชน PacketBuffers
ฟังก์ชัน GetNewPacketBuffer() จะจัดสรรพื้นที่เอาต์พุตใหม่ให้กับ TLVWriter โดยการจัดสรรเชนของ PacketBuffers อย่างน้อย 1 รายการตามความจําเป็นเพื่อจัดเก็บการเข้ารหัส ฟังก์ชันนี้ได้รับการออกแบบมาให้กําหนดให้กับตัวชี้ฟังก์ชัน TLVWriter GetNewBuffer
โปรดทราบว่าเมื่อใช้ GetNewPacketBuffer กับ TLVWriter ฟังก์ชัน FinalizePacketBuffer() ที่เทียบเท่ากัน (หรือเทียบเท่า) ควรใช้ในการสรุปเชนบัฟเฟอร์ด้วย
ดูคําจํากัดความประเภท GetNewBufferFunct เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ API ของฟังก์ชัน GetNewPacketBuffer()
ฟังก์ชันที่ได้รับการคุ้มครอง
IsContainContainer ที่จองไว้
bool IsCloseContainerReserved( void ) const
ระบุว่าคอนเทนเนอร์ควรจองพื้นที่สําหรับสัญลักษณ์ CloseContainer ที่จุดเริ่มต้น / เปิดคอนเทนเนอร์หรือไม่
IsContainerOpen
bool IsContainerOpen( void ) const
ปิดการตั้งค่าคอนเทนเนอร์
void SetCloseContainerReserved( bool aCloseContainerReserved )
กําหนดว่าจะให้คอนเทนเนอร์จองพื้นที่สําหรับสัญลักษณ์ CloseContainer ที่จุดเริ่มต้น / เปิดคอนเทนเนอร์หรือไม่
SetContainerOpen
void SetContainerOpen( bool aContainerOpen )
เขียนข้อมูล
WEAVE_ERROR WriteData( const uint8_t *p, uint32_t len )
เขียนองค์ประกอบ
WEAVE_ERROR WriteElementHead( TLVElementType elemType, uint64_t tag, uint64_t lenOrVal )
เขียนองค์ประกอบข้อมูล
WEAVE_ERROR WriteElementWithData( TLVType type, uint64_t tag, const uint8_t *data, uint32_t dataLen )