ไม่มี:: สาน:: ทีแอลวี:: สานวงกลมTLVBuffer

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

WeaveCircularTLVBuffer มีที่เก็บวงกลมสำหรับNL :: สาน :: TLV :: TLVWriter และ NL :: สาน :: TLVTLVReader

สรุป

NL :: สาน :: TLV :: TLVWriter คือสามารถที่จะเขียนเป็นจำนวนมากมายของ TLV รายการไป WeaveCircularTLVBuffer ตราบใดที่แต่ละ TLV เหมาะกับรายการทั้งหมดภายในการจัดเก็บให้NL :: สาน :: TLV :: TLVReader จะอ่านที่มีขนาดมากที่สุดของบัฟเฟอร์ แต่จะรองรับวิจิตรภายในบัฟเฟอร์

ตัวสร้างและตัวทำลาย

WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength)
WeaveCircularTLVBuffer คอนสตรัค
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead)
WeaveCircularTLVBuffer คอนสตรัค

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

ProcessEvictedElementFunct )(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader) WEAVE_ERROR(*
ฟังก์ชั่นที่เรียกว่าการประมวลผล TLV องค์ประกอบก่อนที่จะถูกขับไล่ออกจาก NL :: สาน :: TLV :: WeaveCircularTLVBuffer

คุณลักษณะสาธารณะ

mAppData
void *
บริบททางเลือกที่ผู้ใช้ระบุเพื่อใช้กับการประมวลผลการโทรกลับองค์ประกอบที่ถูกขับออก
mImplicitProfileId
uint32_t
mProcessEvictedElement
การเรียกกลับที่เป็นทางเลือกที่ผู้ใช้จัดหาซึ่งประมวลผลองค์ประกอบก่อนที่จะขับออกจากบัฟเฟอร์แบบวงกลม

งานสาธารณะ

AvailableDataLength (void) const
size_t
DataLength (void) const
size_t
EvictHead (void)
evicts ระดับบนสุดที่เก่าแก่ที่สุด TLV องค์ประกอบใน WeaveCircularTLVBuffer
FinalizeBuffer (TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen)
FinalizeBuffer ปรับ WeaveCircularTLVBuffer ของรัฐเกี่ยวกับความสำเร็จของการส่งออกจากTLVWriter
GetNewBuffer (TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen)
ได้รับพื้นที่เพิ่มเติมสำหรับTLVWriter
GetNextBuffer (TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen)
ได้รับพื้นที่เพิ่มเติมสำหรับTLVReader
GetQueue (void) const
uint8_t *
GetQueueSize (void) const
size_t
QueueHead (void) const
uint8_t *
QueueTail (void) const
uint8_t *
SetQueueHead (uint8_t *aQueueHead)
void
SetQueueLength (size_t aQueueLength)
void

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

FinalizeBufferFunct (TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen)
ผ้าใบเพื่อ WeaveCircularTLVBuffer :: FinalizeBuffer
GetNewBufferFunct (TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen)
ผ้าใบสามารถดึงข้อมูลพื้นที่มากขึ้นสำหรับTLVWriter
GetNextBufferFunct (TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen)
ผ้าใบเพื่อ WeaveCircularTLVBuffer :: GetNextBuffer

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

ProcessEvictedElementFunct

WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)

ฟังก์ชั่นที่เรียกว่าการประมวลผล TLV องค์ประกอบก่อนที่จะถูกขับไล่ออกจาก NL :: สาน :: TLV :: WeaveCircularTLVBuffer

ฟังก์ชั่นประเภทนี้จะใช้ในการประมวลผล TLV องค์ประกอบจะถูกขับไล่ออกจากบัฟเฟอร์ ฟังก์ชั่นจะได้รับNL :: สาน :: TLV :: TLVReader ตำแหน่งในองค์ประกอบเกี่ยวกับการที่จะถูกลบเช่นเดียวกับบริบท * โมฆะที่ผู้ใช้อาจได้ให้สภาพแวดล้อมเพิ่มเติมสำหรับการเรียกกลับ ถ้าฟังก์ชันการประมวลผลองค์ประกอบที่ประสบความสำเร็จนั้นจะต้องกลับ WEAVE_NO_ERROR ; หมายนี้ไป WeaveCircularTLVBuffer ว่าองค์ประกอบอาจถูกขับไล่อย่างปลอดภัย ใด ๆ ค่าตอบแทนอื่น ๆ จะถือว่าเป็นข้อผิดพลาดและจะป้องกันไม่ให้ WeaveCircularTLVBuffer จากขี้บ่นองค์ประกอบภายใต้การพิจารณา

หมายเหตุ: การเรียกกลับนี้อาจจะถูกใช้เพื่อบังคับ WeaveCircularTLVBuffer ไม่ขับไล่องค์ประกอบ สิ่งนี้อาจมีประโยชน์ในหลาย ๆ สถานการณ์ เมื่อต้องการให้มีบัฟเฟอร์แบบวงกลมแฝงอยู่ แต่ไม่ต้องแทนที่องค์ประกอบใด ๆ ภายในนั้น

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

คุณลักษณะสาธารณะ

mAppData

void * mAppData

บริบททางเลือกที่ผู้ใช้ระบุเพื่อใช้กับการประมวลผลการโทรกลับองค์ประกอบที่ถูกขับออก

mImplicitProfileId

uint32_t mImplicitProfileId

mProcessEvictedElement

ProcessEvictedElementFunct mProcessEvictedElement

การเรียกกลับที่เป็นทางเลือกที่ผู้ใช้จัดหาซึ่งประมวลผลองค์ประกอบก่อนที่จะขับออกจากบัฟเฟอร์แบบวงกลม

ดูข้อกำหนดประเภท ProcessEvictedElementFunct เกี่ยวกับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ฟังก์ชัน mProcessEvictedElement

งานสาธารณะ

AvailableDataLength

size_t AvailableDataLength(
  void
) const 

DataLength

size_t DataLength(
  void
) const 

EvictHead

WEAVE_ERROR EvictHead(
  void
)

evicts ระดับบนสุดที่เก่าแก่ที่สุด TLV องค์ประกอบใน WeaveCircularTLVBuffer

ฟังก์ชั่นนี้จะเอาระดับบนสุดที่เก่าแก่ที่สุด TLV องค์ประกอบในบัฟเฟอร์ ฟังก์ชั่นจะโทรเรียกกลับลงทะเบียนที่ mProcessEvictedElement ในการประมวลผลองค์ประกอบก่อนที่จะกำจัด ถ้าอะไรที่ผลตอบแทนการเรียกกลับ แต่ WEAVE_NO_ERROR องค์ประกอบไม่ถูกลบออก ในทำนองเดียวกันถ้าข้อผิดพลาดอื่นใด ๆ เกิดขึ้นไม่มีองค์ประกอบภายในบัฟเฟอร์ ฯลฯ พื้นฐาน WeaveCircularTLVBuffer ยังคงไม่เปลี่ยนแปลง

รายละเอียด
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
other
ในข้อผิดพลาดอื่น ๆ กลับมาทั้งโดยการเรียกกลับหรือโดยTLVReader

FinalizeBuffer

WEAVE_ERROR FinalizeBuffer(
  TLVWriter & ioWriter,
  uint8_t *inBufStart,
  uint32_t inBufLen
)

FinalizeBuffer ปรับ WeaveCircularTLVBuffer ของรัฐเกี่ยวกับความสำเร็จของการส่งออกจากTLVWriter

ฟังก์ชันนี้ส่งผลต่อตำแหน่งของส่วนท้ายของคิว

รายละเอียด
พารามิเตอร์
[in,out] ioWriter
TLVWriter เรียกฟังก์ชั่นนี้
[in] inBufStart
ตัวชี้ไปยังจุดเริ่มต้นของข้อมูล (จาก TLVWriter มุมมอง)
[in] inBufLen
ความยาวของข้อมูลในบัฟเฟอร์ชี้ไปตาม inbufStart
ส่งกลับค่า
WEAVE_NO_ERROR
อย่างไม่มีเงื่อนไข

GetNewBuffer

WEAVE_ERROR GetNewBuffer(
  TLVWriter & ioWriter,
  uint8_t *& outBufStart,
  uint32_t & outBufLen
)

ได้รับพื้นที่เพิ่มเติมสำหรับTLVWriter

ในความเป็นจริง ฟังก์ชันขับไล่องค์ประกอบออกจากบัฟเฟอร์แบบวงกลม และปรับส่วนหัวของคิวบัฟเฟอร์นี้ this

รายละเอียด
พารามิเตอร์
[in,out] ioWriter
TLVWriter เรียกฟังก์ชั่นนี้
[out] outBufStart
ตัวชี้ไปยังบัฟเฟอร์ใหม่
[out] outBufLen
ความยาวที่มีอยู่สำหรับการเขียน
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
other
ถ้าฟังก์ชันไม่สามารถที่จะมองข้ามระดับบนสุดที่สมบูรณ์ TLV องค์ประกอบ

GetNextBuffer

WEAVE_ERROR GetNextBuffer(
  TLVReader & ioReader,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

ได้รับพื้นที่เพิ่มเติมสำหรับTLVReader

การจัดเก็บข้อมูลที่มีให้โดย WeaveCircularTLVBuffer อาจจะวิจิตรภายในบัฟเฟอร์ ฟังก์ชั่นนี้จะช่วยให้เรามีความสามารถที่จะตรงกับบัฟเฟอร์ของกันชนกลมไปTLVReader จำกัด ผู้อ่านจะอ่านมากที่สุด mQueueSize ไบต์จากบัฟเฟอร์

รายละเอียด
พารามิเตอร์
[in] ioReader
TLVReader เรียกฟังก์ชั่นนี้
[in,out] outBufStart
การอ้างอิงถึงบัฟเฟอร์ข้อมูล เมื่อส่งคืน จะถูกตั้งค่าเป็นค่าภายในบัฟเฟอร์นี้
[out] outBufLen
เมื่อกลับมา ให้ตั้งค่าเป็นจำนวนไบต์ต่อเนื่องที่สามารถอ่านได้จากบัฟเฟอร์
ส่งกลับค่า
WEAVE_NO_ERROR
ประสบความสำเร็จอย่างไม่มีเงื่อนไข

รับคิว

uint8_t * GetQueue(
  void
) const 

GetQueueSize

size_t GetQueueSize(
  void
) const 

คิวเฮด

uint8_t * QueueHead(
  void
) const 

QueueTail

uint8_t * QueueTail(
  void
) const 

SetQueueHead

void SetQueueHead(
  uint8_t *aQueueHead
)

SetQueueLength

void SetQueueLength(
  size_t aQueueLength
)

สานวงกลมTLVBuffer

 WeaveCircularTLVBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength
)

WeaveCircularTLVBuffer คอนสตรัค

รายละเอียด
พารามิเตอร์
[in] inBuffer
ตัวชี้ไปยังที่เก็บสำรองสำหรับคิว
[in] inBufferLength
ความยาวเป็นไบต์ของที่เก็บสำรอง

สานวงกลมTLVBuffer

 WeaveCircularTLVBuffer(
  uint8_t *inBuffer,
  size_t inBufferLength,
  uint8_t *inHead
)

WeaveCircularTLVBuffer คอนสตรัค

รายละเอียด
พารามิเตอร์
[in] inBuffer
ตัวชี้ไปยังที่เก็บสำรองสำหรับคิว
[in] inBufferLength
ความยาว เป็นไบต์ ของที่เก็บสำรอง
[in] inHead
จุดเริ่มต้นสำหรับหัว ตัวชี้ inHead คือจะต้องตกอยู่ในการจัดเก็บสำรองสำหรับกันชนกลมเช่นภายใน inBuffer และ (inBuffer [inBufferLength])

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

FinalizeBufferFunct

WEAVE_ERROR FinalizeBufferFunct(
  TLVWriter & ioWriter,
  uintptr_t inBufHandle,
  uint8_t *inBufStart,
  uint32_t inBufLen
)

ผ้าใบเพื่อ WeaveCircularTLVBuffer :: FinalizeBuffer

รายละเอียด
พารามิเตอร์
[in,out] ioWriter
TLVWriter เรียกฟังก์ชั่นนี้
[in,out] inBufHandle
จับไป CircularTLVWriter วัตถุ
[in] inBufStart
ตัวชี้ไปยังจุดเริ่มต้นของข้อมูล (จาก TLVWriter มุมมอง)
[in] inBufLen
ความยาวของข้อมูลในบัฟเฟอร์ชี้ไปตาม inbufStart
ส่งกลับค่า
WEAVE_NO_ERROR
อย่างไม่มีเงื่อนไข

GetNewBufferFunct

WEAVE_ERROR GetNewBufferFunct(
  TLVWriter & ioWriter,
  uintptr_t & inBufHandle,
  uint8_t *& outBufStart,
  uint32_t & outBufLen
)

ผ้าใบสามารถดึงข้อมูลพื้นที่มากขึ้นสำหรับTLVWriter

รายละเอียด
พารามิเตอร์
[in,out] ioWriter
TLVWriter เรียกฟังก์ชั่นนี้
[in,out] inBufHandle
จับไป CircularTLVWriter วัตถุ
[out] outBufStart
ตัวชี้ไปยังบัฟเฟอร์ใหม่
[out] outBufLen
ความยาวที่ใช้ได้สำหรับการเขียน
ส่งกลับค่า
WEAVE_NO_ERROR
เมื่อประสบความสำเร็จ
other
ถ้าฟังก์ชันไม่สามารถที่จะมองข้ามระดับบนสุดที่สมบูรณ์ TLV องค์ประกอบ

GetNextBufferFunct

WEAVE_ERROR GetNextBufferFunct(
  TLVReader & ioReader,
  uintptr_t & inBufHandle,
  const uint8_t *& outBufStart,
  uint32_t & outBufLen
)

ผ้าใบเพื่อ WeaveCircularTLVBuffer :: GetNextBuffer

รายละเอียด
พารามิเตอร์
[in,out] ioReader
TLVReader เรียกฟังก์ชั่นนี้
[in,out] inBufHandle
จับไป CircularTLVWriter วัตถุ
[in,out] outBufStart
การอ้างอิงถึงบัฟเฟอร์ข้อมูล เมื่อส่งคืน จะถูกตั้งค่าเป็นค่าภายในบัฟเฟอร์นี้
[out] outBufLen
เมื่อกลับมา ให้ตั้งค่าเป็นจำนวนไบต์ต่อเนื่องที่สามารถอ่านได้จากบัฟเฟอร์
ส่งกลับค่า
WEAVE_NO_ERROR
ประสบความสำเร็จอย่างไม่มีเงื่อนไข