nl :: Dệt :: TLV :: WeaveCircularTLVBuffer
#include <src/lib/core/WeaveCircularTLVBuffer.h>
WeaveCircularTLVBuffer cung cấp lưu trữ hình tròn chonl :: Weave :: TLV :: TLVWriter và nl :: Weave :: TLVTLVReader.
Tóm lược
nl :: Weave :: TLV :: TLVWriter có thể viết một số không giới hạn của TLV mục vào WeaveCircularTLVBuffer miễn là mỗi cá nhân TLV fits nhập hoàn toàn trong việc lưu trữ được cung cấp. Cácnl :: Weave :: TLV :: TLVReader sẽ đọc tại hầu hết các kích thước của bộ đệm, nhưng sẽ thích ứng với bao quanh trong bộ đệm.
Người xây dựng và Người phá hủy | |
---|---|
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength) WeaveCircularTLVBuffer constructor. | |
WeaveCircularTLVBuffer (uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead) WeaveCircularTLVBuffer constructor. |
Các loại công khai | |
---|---|
ProcessEvictedElementFunct )(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader) | WEAVE_ERROR (*WEAVE_ERROR (* Một chức năng được gọi để xử lý một TLV yếu tố trước khi nó bị đuổi khỏi các nl :: Weave :: TLV :: WeaveCircularTLVBuffer . |
Thuộc tính công cộng | |
---|---|
mAppData | void * Một ngữ cảnh tùy chọn do người dùng cung cấp sẽ được sử dụng với quá trình gọi lại xử lý phần tử bị loại bỏ. |
mImplicitProfileId | uint32_t |
mProcessEvictedElement | Một lệnh gọi lại tùy chọn, do người dùng cung cấp xử lý phần tử trước khi loại bỏ phần tử đó khỏi bộ đệm tròn. |
Chức năng công cộng | |
---|---|
AvailableDataLength (void) const | size_t |
DataLength (void) const | size_t |
EvictHead (void) | Evicts các cấp cao nhất lâu đời nhất TLV phần tử trong WeaveCircularTLVBuffer . |
FinalizeBuffer (TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen) | FinalizeBuffer điều chỉnh WeaveCircularTLVBuffer nhà nước khi hoàn thành đầu ra từTLVWriter . |
GetNewBuffer (TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen) | Nhận thêm không gian choTLVWriter . |
GetNextBuffer (TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen) | Nhận thêm không gian choTLVReader . |
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 |
Chức năng tĩnh công khai | |
---|---|
FinalizeBufferFunct (TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen) | Một tấm bạt lò xo để WeaveCircularTLVBuffer :: FinalizeBuffer . |
GetNewBufferFunct (TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen) | Một tấm bạt lò xo để lấy nhiều không gian hơn choTLVWriter . |
GetNextBufferFunct (TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen) | Một tấm bạt lò xo để WeaveCircularTLVBuffer :: GetNextBuffer . |
Các loại công khai
ProcessEvictedElementFunct
WEAVE_ERROR(* ProcessEvictedElementFunct)(WeaveCircularTLVBuffer &inBuffer, void *inAppData, TLVReader &inReader)
Một chức năng được gọi để xử lý một TLV yếu tố trước khi nó bị đuổi khỏi các nl :: Weave :: TLV :: WeaveCircularTLVBuffer .
Chức năng của loại hình này được sử dụng để xử lý một TLV yếu tố sắp bị đuổi khỏi bộ đệm. Các chức năng sẽ được cung cấp mộtnl :: Weave :: TLV :: TLVReader đặt trên các yếu tố sắp bị xóa, cũng như bối cảnh * khoảng trống nơi người dùng có thể đã cung cấp môi trường bổ sung cho các callback. Nếu chức năng xử lý các phần tử thành công, nó phải trả lại WEAVE_NO_ERROR ; biểu thị này đến WeaveCircularTLVBuffer rằng nguyên tố này có thể bị đuổi một cách an toàn. Bất kỳ giá trị trả về khác được coi là một lỗi và sẽ ngăn chặn sự WeaveCircularTLVBuffer từ trục xuất các phần tử đang được xem xét.
Lưu ý: callback này có thể được sử dụng để buộc WeaveCircularTLVBuffer không đuổi các phần tử. Điều này có thể hữu ích trong một số trường hợp, khi muốn có một bộ đệm tròn bên dưới, nhưng không ghi đè lên bất kỳ phần tử nào bên trong nó.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
Thuộc tính công cộng
mAppData
void * mAppData
Một ngữ cảnh tùy chọn, do người dùng cung cấp sẽ được sử dụng với quá trình gọi lại xử lý phần tử bị loại bỏ.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
Một lệnh gọi lại tùy chọn, do người dùng cung cấp sẽ xử lý phần tử trước khi loại bỏ nó khỏi bộ đệm tròn.
Xem định nghĩa loại ProcessEvictedElementFunct về thông tin bổ sung về cách triển khai chức năng mProcessEvictedElement.
Chức năng công cộng
Có sẵnDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
Evicts các cấp cao nhất lâu đời nhất TLV phần tử trong WeaveCircularTLVBuffer .
Chức năng này loại bỏ các cấp cao nhất lâu đời nhất TLV yếu tố trong bộ đệm. Các chức năng sẽ gọi callback đăng ký tại mProcessEvictedElement để xử lý các yếu tố trước khi loại bỏ. Nếu gọi lại trả về bất cứ điều gì nhưng WEAVE_NO_ERROR , nguyên tố này không được cắt bỏ. Tương tự như vậy, nếu có lỗi khác xảy ra không có các yếu tố trong bộ đệm, vv nằm dưới WeaveCircularTLVBuffer vẫn không thay đổi.
Chi tiết | |||||
---|---|---|---|---|---|
Giá trị trả lại |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer điều chỉnh WeaveCircularTLVBuffer
nhà nước khi hoàn thành đầu ra từTLVWriter .
Hàm này ảnh hưởng đến vị trí của đuôi hàng đợi.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
Nhận thêm không gian choTLVWriter .
Trên thực tế, hàm loại bỏ một phần tử khỏi bộ đệm tròn và điều chỉnh phần đầu của hàng đợi bộ đệm này
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
Nhận thêm không gian choTLVReader .
Việc lưu trữ được cung cấp bởi các WeaveCircularTLVBuffer chưa bao quanh trong bộ đệm. Chức năng này cung cấp cho chúng ta khả năng để phù hợp với đệm của bộ đệm tròn đếnTLVReader ràng buộc. Người đọc sẽ đọc nhiều nhất mQueueSize
byte từ bộ đệm.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
| ||||||
Giá trị trả lại |
|
GetQueue
uint8_t * GetQueue( void ) const
GetQueueSize
size_t GetQueueSize( void ) const
QueueHead
uint8_t * QueueHead( void ) const
QueueTail
uint8_t * QueueTail( void ) const
SetQueueHead
void SetQueueHead( uint8_t *aQueueHead )
SetQueueLength
void SetQueueLength( size_t aQueueLength )
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength )
WeaveCircularTLVBuffer constructor.
Chi tiết | |||||
---|---|---|---|---|---|
Thông số |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer constructor.
Chi tiết | |||||||
---|---|---|---|---|---|---|---|
Thông số |
|
Chức năng tĩnh công khai
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
Một tấm bạt lò xo để WeaveCircularTLVBuffer :: FinalizeBuffer .
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
Một tấm bạt lò xo để lấy nhiều không gian hơn choTLVWriter .
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
Một tấm bạt lò xo để WeaveCircularTLVBuffer :: GetNextBuffer .
Chi tiết | |||||||||
---|---|---|---|---|---|---|---|---|---|
Thông số |
| ||||||||
Giá trị trả lại |
|