nl::Weave::Profiles::ReferencedTLVData

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

ในทำนองเดียวกัน เราต้องสามารถแสดงข้อมูลใน 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 พร้อมฟังก์ชันเรียกกลับ
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 --------------

ตัวสร้างที่ไม่มีอาร์กิวเมนต์สำหรับข้อมูล 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 พร้อมฟังก์ชันเรียกกลับ

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

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

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

isEmpty

bool isEmpty(
  void
)

ตรวจสอบว่าออบเจ็กต์ ReferencedTLVData มีข้อมูลใดอยู่ในนั้นหรือไม่

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

รายละเอียด
การส่งคืน
"จริง" หากชุดข้อมูลมีความยาว 0 หรือไม่มีโค้ดเรียกกลับที่เขียนไว้ "เท็จ"

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
)

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

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

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

parse

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

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

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

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

parse

WEAVE_ERROR parse(
  MessageIterator & i,
  ReferencedTLVData & aTarget
)

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

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

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

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