nl::Weave::TLV::TLVUpdater

#include <src/lib/core/WeaveTLV.h>

มีอินเทอร์เฟซ Reader/Writer แบบรวมสำหรับการแก้ไข/เพิ่ม/ลบองค์ประกอบในการเข้ารหัส TLV

สรุป

TLVUpdater คือการรวมออบเจ็กต์ TLVReader และ TLVWriter และให้คุณมีวิธีอินเทอร์เฟซสำหรับแก้ไข/ลบข้อมูลในการเข้ารหัส รวมทั้งเพิ่มองค์ประกอบใหม่ๆ ลงในการเข้ารหัส TLV ด้วย โดยพื้นฐานแล้ว ออบเจ็กต์ TLVUpdater ทำหน้าที่เหมือนเคอร์เซอร์ 2 อัน อันหนึ่งสำหรับอ่านการเข้ารหัสที่มีอยู่และอีกอันสำหรับการเขียน (ทั้งการคัดลอกข้อมูลที่มีอยู่หรือการเขียนข้อมูลใหม่)

ในเชิงความหมาย ออบเจ็กต์ TLVUpdater ทำงานเหมือนกับการรวมของ TLVReader และ TLVWriter เมธอด TLVUpdater มีความหมายคล้ายกันมากหรือน้อยไม่ต่างจากวิธีที่มีชื่อคล้ายกันใน TLVReader/TLVWriter หากคำที่ใช้ความหมายต่างกัน จะมีการบันทึกความแตกต่างไว้ชัดเจนในส่วนความคิดเห็นของฟังก์ชันใน WeaveTLVUpdater.cpp

สิ่งสำคัญที่ควรทราบอย่างหนึ่งเกี่ยวกับวิธีการ PutBytes() และ PutString() ของ TLVUpdater คือ ฟังก์ชันดังกล่าวอาจทำให้การเข้ารหัสอยู่ในสถานะเสียหายได้โดยเขียนส่วนหัวขององค์ประกอบไว้เมื่อเกิดการล้นเกิน แอปพลิเคชันสามารถเรียกใช้ GetRemainingFreeLength() เพื่อตรวจสอบว่ามีพื้นที่ว่างประมาณเพียงพอที่จะเขียนการเข้ารหัส โปรดทราบว่า GetRemainingFreeLength() บอกเฉพาะไบต์ว่างที่มีอยู่และไม่มีวิธีที่แอปพลิเคชันจะรู้ความยาวของข้อมูลที่เข้ารหัสซึ่งเขียนขึ้น ในกรณีที่มีรายการเพิ่มเติม ทั้ง PutBytes() และ PutString() จะแสดง WEAVE_ERROR_BUFFER_TOO_SMALL ไปยังผู้เรียก

นอกจากนี้ โปรดทราบว่าเมธอด Next() มีการใช้งานมากเกินไปจนทำให้ข้ามองค์ประกอบปัจจุบันและเลื่อนโปรแกรมอ่านภายในไปยังองค์ประกอบถัดไปด้วย เนื่องจากการข้ามองค์ประกอบที่เข้ารหัสอยู่แล้วจะต้องมีการเปลี่ยนแปลงตัวแปรสถานะพื้นที่ว่างของผู้เขียนภายในให้สอดคล้องกับพื้นที่ว่างใหม่ (ทำให้พร้อมใช้งานด้วยการข้าม) คาดว่าแอปพลิเคชันจะเรียกใช้ Next() ในโปรแกรมอัปเดตหลังเมธอด Get() ซึ่งไม่ต้องการเขียนกลับ (ซึ่งเทียบเท่ากับการข้ามองค์ประกอบปัจจุบัน)

ฟังก์ชันสาธารณะ

CopyElement(TLVReader & reader)
CopyElement(uint64_t tag, TLVReader & reader)
DupBytes(uint8_t *& buf, uint32_t & dataLen)
DupString(char *& buf)
EndContainer(TLVType outerContainerType)
EnterContainer(TLVType & outerContainerType)
เตรียมออบเจ็กต์ TLVUpdater สำหรับการอ่านองค์ประกอบของคอนเทนเนอร์
ExitContainer(TLVType outerContainerType)
อ่านค่าขององค์ประกอบคอนเทนเนอร์ TLV ให้เสร็จสมบูรณ์และเข้ารหัสจุดสิ้นสุดขององค์ประกอบ TLV ในเอาต์พุต TLV
Finalize(void)
Get(bool & v)
Get(int8_t & v)
Get(int16_t & v)
Get(int32_t & v)
Get(int64_t & v)
Get(uint8_t & v)
Get(uint16_t & v)
Get(uint32_t & v)
Get(uint64_t & v)
Get(float & v)
Get(double & v)
GetBytes(uint8_t *buf, uint32_t bufSize)
GetContainerType(void) const
GetDataPtr(const uint8_t *& data)
GetImplicitProfileId(void)
uint32_t
GetLength(void) const
uint32_t
GetLengthRead(void) const
uint32_t
GetLengthWritten(void)
uint32_t
GetReader(TLVReader & containerReader)
void
GetRemainingFreeLength(void)
uint32_t
GetRemainingLength(void) const
uint32_t
GetString(char *buf, uint32_t bufSize)
GetTag(void) const
uint64_t
GetType(void) const
Init(uint8_t *buf, uint32_t dataLen, uint32_t maxLen)
เริ่มต้นออบเจ็กต์ TLVUpdater เพื่อแก้ไขบัฟเฟอร์อินพุตเดี่ยว
Init(TLVReader & aReader, uint32_t freeLen)
เริ่มต้นออบเจ็กต์ TLVUpdater โดยใช้ TLVReader
Move(void)
คัดลอกองค์ประกอบปัจจุบันจากอินพุต TLV ไปยังเอาต์พุต TLV
MoveUntilEnd(void)
void
ย้ายทุกอย่างจากจุดอ่านปัจจุบันของ TLVUpdater จนถึงจุดสิ้นสุดของบัฟเฟอร์ TLV ของอินพุตไปยังเอาต์พุต
Next(void)
ข้ามองค์ประกอบปัจจุบันและเลื่อนออบเจ็กต์ TLVUpdater ไปยังองค์ประกอบถัดไปในอินพุต TLV
Put(uint64_t tag, int8_t v)
Put(uint64_t tag, int16_t v)
Put(uint64_t tag, int32_t v)
Put(uint64_t tag, int64_t v)
Put(uint64_t tag, uint8_t v)
Put(uint64_t tag, uint16_t v)
Put(uint64_t tag, uint32_t v)
Put(uint64_t tag, uint64_t v)
Put(uint64_t tag, int8_t v, bool preserveSize)
Put(uint64_t tag, int16_t v, bool preserveSize)
Put(uint64_t tag, int32_t v, bool preserveSize)
Put(uint64_t tag, int64_t v, bool preserveSize)
Put(uint64_t tag, uint8_t v, bool preserveSize)
Put(uint64_t tag, uint16_t v, bool preserveSize)
Put(uint64_t tag, uint32_t v, bool preserveSize)
Put(uint64_t tag, uint64_t v, bool preserveSize)
Put(uint64_t tag, float v)
Put(uint64_t tag, double v)
PutBoolean(uint64_t tag, bool v)
PutBytes(uint64_t tag, const uint8_t *buf, uint32_t len)
PutNull(uint64_t tag)
PutString(uint64_t tag, const char *buf)
PutString(uint64_t tag, const char *buf, uint32_t len)
SetImplicitProfileId(uint32_t profileId)
void
ตั้งค่ารหัสโปรไฟล์โดยนัยสำหรับออบเจ็กต์ TLVUpdater
StartContainer(uint64_t tag, TLVType containerType, TLVType & outerContainerType)
VerifyEndOfContainer(void)

ฟังก์ชันสาธารณะ

CopyElement

WEAVE_ERROR CopyElement(
  TLVReader & reader
)

CopyElement

WEAVE_ERROR CopyElement(
  uint64_t tag,
  TLVReader & reader
)

DupBytes

WEAVE_ERROR DupBytes(
  uint8_t *& buf,
  uint32_t & dataLen
)

DupString

WEAVE_ERROR DupString(
  char *& buf
)

EndContainer

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

EnterContainer

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

เตรียมออบเจ็กต์ TLVUpdater สำหรับการอ่านองค์ประกอบของคอนเทนเนอร์

นอกจากนี้ยังเข้ารหัสจุดเริ่มต้นของออบเจ็กต์คอนเทนเนอร์ในเอาต์พุต TLV ด้วย

เมธอด EnterContainer() จะเตรียมออบเจ็กต์ TLVUpdater ปัจจุบันเพื่อเริ่มอ่านองค์ประกอบสมาชิกของคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) สำหรับการเรียกแอปพลิเคชัน EnterContainer() ทุกครั้งจะต้องเรียกใช้ ExitContainer() อย่างถูกต้อง

เมื่อมีการเรียก EnterContainer() ผู้อ่านของ TLVUpdater จะต้องวางตำแหน่งไว้ในองค์ประกอบคอนเทนเนอร์ เมธอดนี้ใช้เป็นอาร์กิวเมนต์ที่ใช้อ้างอิงค่า TLVType ซึ่งจะใช้เพื่อบันทึกบริบทของโปรแกรมอัปเดตขณะที่อ่านคอนเทนเนอร์

เมื่อเมธอด EnterContainer() แสดงผล ระบบจะวางตัวอัปเดตก่อนสมาชิกคนแรกของคอนเทนเนอร์ การเรียก Next() ซ้ำๆ จะทำให้โปรแกรมอัปเดตเลื่อนผ่านสมาชิกของคอลเล็กชันไปจนสิ้นสุด ซึ่งจากนั้นโปรแกรมอัปเดตจะแสดงผล WEAVE_END_OF_TLV

เมื่อแอปพลิเคชันอ่านคอนเทนเนอร์เสร็จแล้ว แอปจะยังอ่านองค์ประกอบต่อจากคอนเทนเนอร์ได้โดยเรียกใช้เมธอด ExitContainer()

รายละเอียด
พารามิเตอร์
[out] outerContainerType
การอ้างอิงค่า TLVType ที่จะได้รับบริบทของโปรแกรมอัปเดต
ผลลัพธ์
WEAVE_NO_ERROR
หากวิธีการสำเร็จ
WEAVE_ERROR_INCORRECT_STATE
หากโปรแกรมอ่าน TLVUpdater ไม่ได้อยู่บนเอลิเมนต์คอนเทนเนอร์
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่แสดงโดย TLVWriter::StartContainer() หรือ TLVReader::EnterContainer()

ExitContainer

WEAVE_ERROR ExitContainer(
  TLVType outerContainerType
)

อ่านค่าขององค์ประกอบคอนเทนเนอร์ TLV ให้เสร็จสมบูรณ์และเข้ารหัสจุดสิ้นสุดขององค์ประกอบ TLV ในเอาต์พุต TLV

เมธอด ExitContainer() จะคืนค่าสถานะของออบเจ็กต์ TLVUpdater หลังจากการเรียกใช้ EnterContainer() สำหรับการเรียกแอปพลิเคชัน EnterContainer() ทุกรายการจะต้องเรียกใช้ ExitContainer() ที่สอดคล้องกัน โดยส่งค่าบริบทที่แสดงผลโดยเมธอด EnterContainer()

เมื่อ ExitContainer() แสดงผล โปรแกรมอ่าน TLVUpdater จะมีตำแหน่งอยู่ก่อนองค์ประกอบแรกที่ตามหลังคอนเทนเนอร์ในอินพุต TLV จากจุดนี้ แอปพลิเคชันสามารถเรียกใช้ Next() เพื่อเลื่อนผ่านองค์ประกอบที่เหลืออยู่

เมื่อเรียก EnterContainer() แล้ว แอปพลิเคชันจะเรียกใช้ ExitContainer() ในโปรแกรมอัปเดตได้ทุกเมื่อ ไม่ว่าจะมีการอ่านองค์ประกอบทั้งหมดในคอนเทนเนอร์ที่สำคัญหรือไม่ นอกจากนี้ โปรดทราบว่าการเรียกใช้ ExitContainer() ก่อนอ่านองค์ประกอบทั้งหมดในคอนเทนเนอร์นี้จะทำให้คอนเทนเนอร์ที่อัปเดตถูกตัดในเอาต์พุต TLV

รายละเอียด
พารามิเตอร์
[in] outerContainerType
ค่า TLVType ที่ส่งคืนโดยเมธอด EnterContainer()
ผลลัพธ์
WEAVE_NO_ERROR
หากวิธีการสำเร็จ
WEAVE_ERROR_TLV_UNDERRUN
กรณีที่การเข้ารหัส TLV ที่เกี่ยวข้องสิ้นสุดก่อนกำหนด
WEAVE_ERROR_INVALID_TLV_ELEMENT
หากโปรแกรมอัปเดตพบประเภทองค์ประกอบ TLV ที่ไม่ถูกต้องหรือไม่รองรับ
WEAVE_ERROR_INVALID_TLV_TAG
หากโปรแกรมอัปเดตพบแท็ก TLV ในบริบทที่ไม่ถูกต้อง
other
รหัสข้อผิดพลาดอื่นๆ ของ Weave หรือแพลตฟอร์มที่แสดงโดย TLVWriter::EndContainer() หรือ TLVReader::ExitContainer()

สรุป

WEAVE_ERROR Finalize(
  void
)

ดาวน์โหลด

WEAVE_ERROR Get(
  bool & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  int8_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  int16_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  int32_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  int64_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  uint8_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  uint16_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  uint32_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  uint64_t & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  float & v
)

ดาวน์โหลด

WEAVE_ERROR Get(
  double & v
)

GetBytes

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

GetContainerType

TLVType GetContainerType(
  void
) const 

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

GetImplicitProfileId

uint32_t GetImplicitProfileId(
  void
)

GetLength

uint32_t GetLength(
  void
) const 

GetLengthRead

uint32_t GetLengthRead(
  void
) const 

GetLengthWritten

uint32_t GetLengthWritten(
  void
)

GetReader

void GetReader(
  TLVReader & containerReader
)

GetRemainingFreeLength

uint32_t GetRemainingFreeLength(
  void
)

GetRemainingLength

uint32_t GetRemainingLength(
  void
) const 

GetString

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

GetTag

uint64_t GetTag(
  void
) const 

GetType

TLVType GetType(
  void
) const 

Init

WEAVE_ERROR Init(
  uint8_t *buf,
  uint32_t dataLen,
  uint32_t maxLen
)

เริ่มต้นออบเจ็กต์ TLVUpdater เพื่อแก้ไขบัฟเฟอร์อินพุตเดี่ยว

เมื่อเรียกใช้เมธอดนี้ ข้อมูล TLV ในบัฟเฟอร์จะถูกย้ายไปยังจุดสิ้นสุดของบัฟเฟอร์ และออบเจ็กต์ TLVReader ส่วนตัวจะเริ่มต้นบนบัฟเฟอร์ที่ย้ายตำแหน่งนี้ ออบเจ็กต์ TLVWriter ส่วนตัวยังเริ่มต้นอยู่ในพื้นที่ว่างซึ่งพร้อมใช้งานในตอนแรกด้วย แอปพลิเคชันสามารถใช้ออบเจ็กต์ TLVUpdater เพื่อแยกวิเคราะห์ข้อมูล TLV และแก้ไข/ลบองค์ประกอบที่มีอยู่ หรือเพิ่มองค์ประกอบใหม่ในการเข้ารหัส

รายละเอียด
พารามิเตอร์
[in] buf
ตัวชี้ไปยังบัฟเฟอร์ที่มีข้อมูล TLV ที่ต้องการแก้ไข
[in] dataLen
ความยาวของข้อมูล TLV ในบัฟเฟอร์
[in] maxLen
ความยาวรวมของบัฟเฟอร์
ผลลัพธ์
WEAVE_NO_ERROR
หากวิธีการสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากที่อยู่บัฟเฟอร์ไม่ถูกต้อง
WEAVE_ERROR_BUFFER_TOO_SMALL
หากบัฟเฟอร์มีขนาดเล็กเกินไป

Init

WEAVE_ERROR Init(
  TLVReader & aReader,
  uint32_t freeLen
)

เริ่มต้นออบเจ็กต์ TLVUpdater โดยใช้ TLVReader

เมื่อเรียกใช้เมธอดนี้ ข้อมูล TLV ในบัฟเฟอร์ที่ TLVReader ชี้ไปจะถูกย้ายจากจุดอ่านปัจจุบันไปยังจุดสิ้นสุดของบัฟเฟอร์ ออบเจ็กต์ TLVReader ใหม่แบบส่วนตัวได้รับการเริ่มต้นให้อ่านจากตำแหน่งใหม่นี้ ขณะที่ออบเจ็กต์ TLVWriter ส่วนตัวใหม่จะเริ่มทำงานเพื่อเขียนไปยังพื้นที่บัฟเฟอร์ที่มีพื้นที่ว่างมากขึ้น

โปรดทราบว่าหาก TLVReader อยู่ในตำแหน่ง "เปิด" แล้ว องค์ประกอบหนึ่ง จะได้รับการสำรองข้อมูลไว้ที่จุดเริ่มต้นขององค์ประกอบนั้น นอกจากนี้ โปรดทราบว่าการสำรองข้อมูลนี้จะทำงานได้ดีกับองค์ประกอบของคอนเทนเนอร์ กล่าวคือ หากใช้ TLVReader เพื่อเรียกใช้ EnterContainer() อยู่แล้วก็จะไม่มีอะไรให้ย้อนกลับ แต่ถ้าวาง TLVReader ไว้ในองค์ประกอบคอนเทนเนอร์และยังไม่ได้เรียก EnterContainer() ไว้ ระบบจะสำรองออบเจ็กต์ TLVReader ไว้ที่จุดเริ่มต้นของหัวคอนเทนเนอร์

ออบเจ็กต์ TLVReader ที่ป้อนจะถูกทำลายก่อนกลับมา และแอปพลิเคชันจะต้องไม่ใช้ประโยชน์จากออบเจ็กต์เดียวกันนี้เมื่อกลับมา

รายละเอียด
พารามิเตอร์
[in,out] aReader
การอ้างอิงออบเจ็กต์ TLVReader ที่จะถูกทำลายก่อนแสดงผล
[in] freeLen
ความยาวของพื้นที่ว่าง (ในหน่วยไบต์) ที่มีอยู่ในบัฟเฟอร์ข้อมูลที่เข้ารหัสล่วงหน้า
ผลลัพธ์
WEAVE_NO_ERROR
หากวิธีการสำเร็จ
WEAVE_ERROR_INVALID_ARGUMENT
หากที่อยู่บัฟเฟอร์ไม่ถูกต้อง
WEAVE_ERROR_NOT_IMPLEMENTED
หากมีการเริ่มต้นผู้อ่านบนห่วงโซ่บัฟเฟอร์

ย้าย

WEAVE_ERROR Move(
  void
)

คัดลอกองค์ประกอบปัจจุบันจากอินพุต TLV ไปยังเอาต์พุต TLV

เมธอด Move() จะคัดลอกองค์ประกอบปัจจุบันที่มีการวางตำแหน่งผู้อ่าน TLVUpdater ไปยังผู้เขียนของ TLVUpdater แอปพลิเคชันควรเรียกใช้ Next() และจัดตำแหน่งเครื่องอ่านของ TLVUpdater ในองค์ประกอบก่อนเรียกใช้เมธอดนี้ เช่นเดียวกับเมธอด TLVReader::Next() หากเครื่องอ่านวางอยู่บนองค์ประกอบคอนเทนเนอร์ ณ เวลาที่เรียกใช้ ระบบก็จะคัดลอกสมาชิกทั้งหมดของคอนเทนเนอร์นั้นด้วย หากไม่มีตำแหน่งเครื่องอ่านอยู่ในองค์ประกอบใดๆ การเรียกใช้วิธีนี้จะไม่มีการเปลี่ยนแปลง

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
ตำแหน่งเครื่องอ่าน TLVUpdater ในองค์ประกอบใหม่สำเร็จหรือไม่
WEAVE_END_OF_TLV
หากเครื่องอ่านของ TLVUpdater ชี้ไปที่จุดสิ้นสุดของคอนเทนเนอร์
WEAVE_ERROR_INVALID_TLV_ELEMENT
หากเครื่องอ่านของ TLVIpdater ไม่ได้อยู่บนองค์ประกอบ TLV ที่ถูกต้อง
other
แสดงรหัสข้อผิดพลาดอื่นๆ ที่แสดงผลโดยเมธอด TLVReader::Skip() แสดง

MoveUntilEnd

void MoveUntilEnd(
  void
)

ย้ายทุกอย่างจากจุดอ่านปัจจุบันของ TLVUpdater จนถึงจุดสิ้นสุดของบัฟเฟอร์ TLV ของอินพุตไปยังเอาต์พุต

วิธีนี้จะรองรับการย้ายทุกอย่างจากจุดอ่านปัจจุบันของ TLVUpdater จนถึงจุดสิ้นสุดของบัฟเฟอร์ผู้อ่านไปยังผู้เขียนของ TLVUpdater

ถัดไป

WEAVE_ERROR Next(
  void
)

ข้ามองค์ประกอบปัจจุบันและเลื่อนออบเจ็กต์ TLVUpdater ไปยังองค์ประกอบถัดไปในอินพุต TLV

เมธอด Next() จะข้ามองค์ประกอบปัจจุบันในอินพุต TLV แล้วเลื่อนโปรแกรมอ่านของ TLVUpdater ไปยังองค์ประกอบถัดไปที่อยู่ในบริบทของการควบคุมเดียวกัน โดยเฉพาะอย่างยิ่ง หากเครื่องอ่านอยู่ในตำแหน่งที่ด้านนอกของการเข้ารหัส TLV มากที่สุด การเรียกใช้ Next() จะเลื่อนเครื่องไปยังองค์ประกอบถัดไปที่อยู่บนสุด หากเครื่องอ่านอยู่ในองค์ประกอบคอนเทนเนอร์ TLV (โครงสร้าง อาร์เรย์ หรือเส้นทาง) การเรียกใช้ Next() จะเลื่อนไปยังองค์ประกอบสมาชิกถัดไปของคอนเทนเนอร์นั้น

เนื่องจาก Next() จะบังคับการเคลื่อนที่ของผู้อ่านไปยังบริบทการปิดกั้นปัจจุบัน การเรียกใช้ Next() เมื่อวางตำแหน่งผู้อ่านบนองค์ประกอบของคอนเทนเนอร์จะเลื่อนไปยังคอนเทนเนอร์เหนือคอนเทนเนอร์ โดยข้ามองค์ประกอบสมาชิก (และสมาชิกของคอนเทนเนอร์ที่ฝังอยู่) จนกว่าจะถึงองค์ประกอบแรกหลังคอนเทนเนอร์

เมื่อไม่มีองค์ประกอบเพิ่มเติมภายในบริบทของการควบคุมที่เฉพาะเจาะจง เมธอด Next() จะแสดงผลข้อผิดพลาด WEAVE_END_OF_TLV และตำแหน่งของผู้อ่านจะไม่เปลี่ยนแปลง

รายละเอียด
ผลลัพธ์
WEAVE_NO_ERROR
ตำแหน่งเครื่องอ่าน TLVUpdater ในองค์ประกอบใหม่สำเร็จหรือไม่
other
แสดงรหัสข้อผิดพลาดของ Weave หรือแพลตฟอร์มที่ส่งคืนโดยเมธอด TLVReader::Skip() และ TLVReader::Next()

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int16_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int32_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int64_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint16_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint32_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint64_t v
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int8_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int16_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int32_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  int64_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint8_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint16_t v,
  bool preserveSize
)

วาง

WEAVE_ERROR Put(
  uint64_t tag,
  uint32_t v,
  bool preserveSize
)

วาง

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
)

PutBoolean

WEAVE_ERROR PutBoolean(
  uint64_t tag,
  bool v
)

PutBytes

WEAVE_ERROR PutBytes(
  uint64_t tag,
  const uint8_t *buf,
  uint32_t len
)

PutNull

WEAVE_ERROR PutNull(
  uint64_t tag
)

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

PutString

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf,
  uint32_t len
)

SetImplicitProfileId

void SetImplicitProfileId(
  uint32_t profileId
)

ตั้งค่ารหัสโปรไฟล์โดยนัยสำหรับออบเจ็กต์ TLVUpdater

เมธอดนี้จะตั้งค่ารหัสโปรไฟล์โดยนัยสำหรับออบเจ็กต์ TLVUpdater เมื่อมีการขอให้โปรแกรมอัปเดตเข้ารหัสองค์ประกอบใหม่ หากรหัสโปรไฟล์ของแท็กที่เชื่อมโยงกับองค์ประกอบใหม่ตรงกับค่าของ profileId โปรแกรมอัปเดตจะเข้ารหัสแท็กในรูปแบบโดยนัย ซึ่งจะละเว้นรหัสโปรไฟล์ในกระบวนการ

รายละเอียด
พารามิเตอร์
[in] profileId
รหัสโปรไฟล์ของแท็กที่ควรเข้ารหัสในรูปแบบโดยนัย

StartContainer

WEAVE_ERROR StartContainer(
  uint64_t tag,
  TLVType containerType,
  TLVType & outerContainerType
)

VerifyEndOfContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)