จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

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

หมายเหตุสําคัญประการหนึ่งเกี่ยวกับเมธอด TLVUpdater's PutBytes() และ PutString() ก็คือสามารถทําให้การเข้ารหัสเสียหายได้ โดยมีเฉพาะส่วนหัวขององค์ประกอบที่เขียนไว้เมื่อมีรายการเพิ่มเติมเกิดขึ้น แอปพลิเคชันสามารถเรียกใช้ GetRemainingFreeLength() เพื่อให้แน่ใจว่ามีพื้นที่ว่างเพียงพอสําหรับการเขียนการเข้ารหัสประมาณ โปรดทราบว่า GetRemainingFreeLength() จะบอกเฉพาะไบต์ฟรีที่มีอยู่เท่านั้น และแอปพลิเคชันไม่ทราบความยาวของข้อมูลที่เข้ารหัสซึ่งเขียน ในกรณีที่มีรายการเพิ่มเติม ทั้ง PutBytes() และ PutString() จะส่งคืน WEhave_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)

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

องค์ประกอบคัดลอก

WEAVE_ERROR CopyElement(
  TLVReader & reader
)

องค์ประกอบคัดลอก

WEAVE_ERROR CopyElement(
  uint64_t tag,
  TLVReader & reader
)

ไบต์ข้อมูล

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

สตริงซ้ําซ้อน

WEAVE_ERROR DupString(
  char *& buf
)

คอนเทนเนอร์ท้ายสุด

WEAVE_ERROR EndContainer(
  TLVType outerContainerType
)

คอนเทนเนอร์คอนเทนเนอร์

WEAVE_ERROR EnterContainer(
  TLVType & outerContainerType
)

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

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

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

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

เมื่อเมธอด EnterContainer() แสดงผล ระบบจะอัปเดตผู้อัปเดตทันทีก่อนสมาชิกคนแรกของคอนเทนเนอร์ การเรียก Next() ซ้ําจะส่งต่อผู้อัปเดตผ่านสมาชิกของคอลเล็กชันจนกว่าจะถึงเวลาสิ้นสุด จากนั้นผู้อัปเดตจะส่งคืน WEhave_END_OF_TLV

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

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

ออกจากคอนเทนเนอร์

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
)

ไบต์

WEAVE_ERROR GetBytes(
  uint8_t *buf,
  uint32_t bufSize
)

ประเภท GetContainer

TLVType GetContainerType(
  void
) const 

GetDataPtr

WEAVE_ERROR GetDataPtr(
  const uint8_t *& data
)

รหัสโปรไฟล์โดยนัย

uint32_t GetImplicitProfileId(
  void
)

ปรับความยาวได้

uint32_t GetLength(
  void
) const 

อ่านความยาว

uint32_t GetLengthRead(
  void
) const 

รับข้อมูลความยาว

uint32_t GetLengthWritten(
  void
)

GetReader

void GetReader(
  TLVReader & containerReader
)

รับระยะเวลาฟรีที่เหลืออยู่

uint32_t GetRemainingFreeLength(
  void
)

ความยาวที่เหลืออยู่

uint32_t GetRemainingLength(
  void
) const 

สตริงสตริง

WEAVE_ERROR GetString(
  char *buf,
  uint32_t bufSize
)

รับแท็ก

uint64_t GetTag(
  void
) const 

ประเภท Get

TLVType GetType(
  void
) const 

อิต

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
หากบัฟเฟอร์มีขนาดเล็กเกินไป

อิต

WEAVE_ERROR Init(
  TLVReader & aReader,
  uint32_t freeLen
)

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

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

โปรดทราบว่าหากมีการวางตําแหน่ง TLVReader แล้ว "on" องค์ประกอบ องค์ประกอบจะได้รับการสํารองข้อมูลไปยังจุดเริ่มต้นขององค์ประกอบนั้นก่อน นอกจากนี้ โปรดทราบว่าการสํารองข้อมูลนี้ใช้ได้ดีกับองค์ประกอบคอนเทนเนอร์ เช่น หากมีการใช้ TLVReader ในการเรียก EnterContainer() อยู่แล้ว ก็จะไม่มีการปิดการทํางานใดๆ หากไม่ได้วางองค์ประกอบ TLVReader ในองค์ประกอบคอนเทนเนอร์แล้ว แต่ไม่ได้เรียกออบเจ็กต์ 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() แสดงผล

ย้ายจนสิ้นสุด

void MoveUntilEnd(
  void
)

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

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

ถัดไป

WEAVE_ERROR Next(
  void
)

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

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

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

เมื่อไม่มีองค์ประกอบเพิ่มเติมภายในบริบทการควบคุมนั้นๆ เมธอด Next() จะแสดงข้อผิดพลาด WEhave_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
)

พุทบูลีน

WEAVE_ERROR PutBoolean(
  uint64_t tag,
  bool v
)

พัตตี้

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

พุทัล

WEAVE_ERROR PutNull(
  uint64_t tag
)

ใส่สตริง

WEAVE_ERROR PutString(
  uint64_t tag,
  const char *buf
)

ใส่สตริง

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

ตั้งค่ารหัสโปรไฟล์โดยนัย

void SetImplicitProfileId(
  uint32_t profileId
)

กําหนดรหัสโปรไฟล์โดยนัยสําหรับออบเจ็กต์ TLVUpdater

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

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

เริ่มคอนเทนเนอร์

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

ยืนยัน EnderContainer

WEAVE_ERROR VerifyEndOfContainer(
  void
)