nl::Weave::Profiles::ReferencedTLVData

#include <src/lib/profiles/common/WeaveMessage.h>

ในทำนองเดียวกัน เราต้องสามารถแสดง BLOB เก่าขนาดใหญ่ของข้อมูล TLV ได้

สรุป

การสืบทอด

รับค่าจาก: nl::Weave::Profiles::RetainedPacketBuffer

ผู้ผลิตและผู้ทำลาย

ReferencedTLVData(void)
-------------- คำจำกัดความของข้อมูล TLV --------------

ประเภทสาธารณะ

TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState) Typedef
void(*

แอตทริบิวต์สาธารณะ

theData
uint8_t *
theLength
uint16_t
theMaxLength
uint16_t

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

free(void)
void
ทำให้ออบเจ็กต์ ReferencedTLVData ว่าง ซึ่งก็คือยกเลิกการกำหนด
init(System::PacketBuffer *aBuffer)
เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่กำหนด PacketBuffer
init(MessageIterator & i)
เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่ระบุ MessageIterator
init(uint16_t aLength, uint16_t aMaxLength, uint8_t *aByteString)
เริ่มต้น ReferencedTLVObject ที่ระบุสตริงไบต์
init(TLVWriteCallback aWriteCallback, void *anAppState)
เริ่มต้นออบเจ็กต์ RefererencedTLVData โดยใช้ฟังก์ชัน Callback
isEmpty(void)
bool
ตรวจสอบว่าออบเจ็กต์ ReferencedTLVData มีข้อมูลอะไรอยู่ไหม
isFree(void)
bool
ตรวจสอบว่าออบเจ็กต์ ReferencedTLVData เป็น "ฟรี" หรือไม่ เช่น
operator==(const ReferencedTLVData &) const
bool
ตรวจสอบออบเจ็กต์ ReferencedTLVData กับออบเจ็กต์อื่นเพื่อความเท่าเทียม
pack(System::PacketBuffer *buff)
แพ็กออบเจ็กต์ ReferencedTLVData ลงใน PacketBuffer โดยตรง
pack(MessageIterator & i, uint32_t maxLen)
packedLength(void)
uint16_t
แสดงความยาวของข้อมูลโดยมีสมมติฐานว่าออบเจ็กต์ได้รับการบรรจุในบัฟเฟอร์แล้ว

ฟังก์ชันสาธารณะแบบคงที่

parse(System::PacketBuffer *buff, ReferencedTLVData & aTarget)
แยกวิเคราะห์ออบเจ็กต์ ReferencedTLVData จาก PacketBuffer ที่ระบุ
parse(MessageIterator & i, ReferencedTLVData & aTarget)
แยกวิเคราะห์ออบเจ็กต์ ReferencedTLVData จาก MessageIterator ที่ให้มา

ประเภทสาธารณะ

TLVWriteCallback

void(* TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState)

แอตทริบิวต์สาธารณะ

theData

uint8_t * theData

theLength

uint16_t theLength

theMaxLength

uint16_t theMaxLength

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

ReferencedTLVData

 ReferencedTLVData(
  void
)

-------------- คำจำกัดความของข้อมูล TLV --------------

ตัวสร้าง No-Ar สําหรับข้อมูล TLV นำส่งออบเจ็กต์ฟรี/ไม่ได้เริ่มต้นซึ่งต้องอยู่ภายใต้เมธอด init() แบบใดแบบหนึ่งที่ระบุไว้ที่นี่ จึงจะมีประโยชน์

ฟรี

void free(
  void
)

ทำให้ออบเจ็กต์ ReferencedTLVData ว่าง ซึ่งก็คือยกเลิกการกำหนด

Init

WEAVE_ERROR init(
  System::PacketBuffer *aBuffer
)

เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่กำหนด PacketBuffer

เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่มีบัฟเฟอร์ TLV เต็ม โดยสมมติว่าบัฟเฟอร์มี TLV เท่านั้น

รายละเอียด
พารามิเตอร์
[in] aBuffer
บัฟเฟอร์ข้อความที่มี TLV อยู่
ผลลัพธ์
WEAVE_NO_ERROR
ไม่มีเงื่อนไข

Init

WEAVE_ERROR init(
  MessageIterator & i
)

เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่ระบุ MessageIterator

เริ่มต้นออบเจ็กต์ ReferencedTLVData ที่ระบุ MessageIterator ในกรณีนี้ TLV คือส่วนสุดท้ายของบัฟเฟอร์และเราจะส่งผ่านตัวทำซ้ำข้อความที่ชี้ไปยังบัฟเฟอร์

รายละเอียด
พารามิเตอร์
[in] i
ตัวซ้ำข้อความที่ชี้ไปยัง TLV เพื่อดึงข้อมูล
ผลลัพธ์
WEAVE_NO_ERROR
ไม่มีเงื่อนไข

Init

WEAVE_ERROR init(
  uint16_t aLength,
  uint16_t aMaxLength,
  uint8_t *aByteString
)

เริ่มต้น ReferencedTLVObject ที่ระบุสตริงไบต์

เริ่มต้นออบเจ็กต์ ReferencedTLVData ด้วยสตริงไบต์ที่มี TLV โปรแกรมเริ่มต้นนี้เป็นเวอร์ชันที่เราใช้หากไม่มี PacketrBuffer เนื่องจากเรากำลังสร้างหนึ่งในชุดเริ่มต้นเพื่อบรรจุและส่ง

รายละเอียด
พารามิเตอร์
[in] aLength
ความยาวของข้อมูล TLV
[in] aMaxLength
ความยาวรวมของบัฟเฟอร์
[in] aByteString
ตัวชี้ไปยังข้อมูลสตริง
ผลลัพธ์
WEAVE_NO_ERROR
ไม่มีเงื่อนไข

Init

WEAVE_ERROR init(
  TLVWriteCallback aWriteCallback,
  void *anAppState
)

เริ่มต้นออบเจ็กต์ RefererencedTLVData โดยใช้ฟังก์ชัน Callback

เริ่มต้นออบเจ็กต์ ReferencedTLVData แทนที่จะจัดหาข้อมูลอย่างชัดแจ้ง เวอร์ชันนี้จะมีฟังก์ชัน, Write Callback และอ็อบเจกต์อ้างอิง ซึ่งจะถูกส่งต่อไปยังออบเจ็กต์ TLVWriter ทั้งๆ ที่ควรมีการแพคข้อมูลและส่งข้อมูลที่อ้างอิง ลายเซ็นของ Callback นี้คือ

typedef void (*TLVWriteCallback)(TLV::TLVWriter &aWriter, void *aAppState);

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

ว่าง

bool isEmpty(
  void
)

ตรวจสอบว่าออบเจ็กต์ ReferencedTLVData มีข้อมูลอะไรอยู่ไหม

การที่ออบเจ็กต์ดังกล่าว "มี" นั้นมี 2 วิธีที่เป็นไปได้ บางสิ่ง โดยอาจมีความยาวเป็น 0 หรือไม่มีการเรียกกลับสำหรับการเขียน

รายละเอียด
การคืนสินค้า
true หากชุดข้อมูลมีความยาว 0 หรือไม่มีการเขียน Callback อยู่ในมือ ในกรณีอื่นๆ จะเป็น false

isFree

bool isFree(
  void
)

ตรวจสอบว่าออบเจ็กต์ ReferencedTLVData เป็น "ฟรี" หรือไม่ เช่น

ไม่ได้กำหนด

รายละเอียด
การคืนสินค้า
true หากไม่ได้กำหนดออบเจ็กต์ เป็น false หากไม่กำหนด

โอเปอเรเตอร์==

bool operator==(
  const ReferencedTLVData &
) const 

ตรวจสอบออบเจ็กต์ ReferencedTLVData กับออบเจ็กต์อื่นเพื่อความเท่าเทียม

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

รายละเอียด
พารามิเตอร์
[in] Another
ออบเจ็กต์ที่ต้องตรวจสอบ
ผลลัพธ์
true
วัตถุต่างๆ เท่ากัน
false
สตริงออบเจ็กต์ไม่เท่ากัน

แพ็ก

WEAVE_ERROR pack(
  System::PacketBuffer *buff
)

แพ็กออบเจ็กต์ ReferencedTLVData ลงใน PacketBuffer โดยตรง

รายละเอียด
พารามิเตอร์
[in] buff
เพื่อเติมพื้นให้เต็ม
การคืนสินค้า
WEAVE_ERROR ที่สะท้อนให้เห็นถึงความสำเร็จของการเรียกใช้แพ็กเก็ตพื้นฐาน

แพ็ก

WEAVE_ERROR pack(
  MessageIterator & i,
  uint32_t maxLen
)

packedLength

uint16_t packedLength(
  void
)

แสดงความยาวของข้อมูลโดยมีสมมติฐานว่าออบเจ็กต์ได้รับการบรรจุในบัฟเฟอร์แล้ว

รายละเอียด
การคืนสินค้า
ความยาวจำนวนเต็มของข้อมูลที่ใส่

ฟังก์ชันสาธารณะแบบคงที่

แยกวิเคราะห์

WEAVE_ERROR parse(
  System::PacketBuffer *buff,
  ReferencedTLVData & aTarget
)

แยกวิเคราะห์ออบเจ็กต์ ReferencedTLVData จาก PacketBuffer ที่ระบุ

แยกวิเคราะห์ออบเจ็กต์ ReferencedTLVData ออกจากบัฟเฟอร์ภายใน (สมมติว่ามีเพียง TLV)

รายละเอียด
พารามิเตอร์
[in] buff
เพื่อการอ่าน
[out] aTarget
ออบเจ็กต์ ReferencedTLVData เพื่อ "เติม" กับผลลัพธ์
การคืนสินค้า
WEAVE_ERROR ที่แสดงถึงความสำเร็จของการเรียกใช้การแยกวิเคราะห์เบื้องหลัง

แยกวิเคราะห์

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

แยกวิเคราะห์ออบเจ็กต์ ReferencedTLVData จาก MessageIterator ที่ให้ไว้

แยกวิเคราะห์ออบเจ็กต์ ReferenceTLVData จากออบเจ็กต์ MessageIterator ที่คาดว่าชี้ไปยังส่วน TLV ของข้อความ

โปรดทราบว่าไม่มี "การแยกวิเคราะห์" ก็ทำได้เลยเนื่องจาก TLV ค้างอยู่ในบัฟเฟอร์และไม่มีการดำเนินการใดๆ เลย วิธีนี้เป็นเพียงการตั้งค่าโครงสร้าง ReferencedTLVData เป็นหลักสำหรับใช้ในภายหลัง

รายละเอียด
พารามิเตอร์
[in] i
ตัววนซ้ำข้อความที่กำลังแยกวิเคราะห์
[out] aTarget
ตำแหน่งสำหรับใส่ผลลัพธ์ของการแยกวิเคราะห์
ผลลัพธ์
WEAVE_NO_ERROR
ไม่มีเงื่อนไข