nl :: 짜다:: TLV :: WeaveCircularTLVBuffer
#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 (*WEAVE_ERROR (* 처리하기 위해 호출되는 함수 TLV의 전에 그것을 요소로부터 축출되는 NL :: 직조 : TLV : WeaveCircularTLVBuffer . |
공용 속성 | |
---|---|
mAppData | void * 제거 된 요소를 처리하는 콜백과 함께 사용할 선택적 사용자 제공 컨텍스트입니다. |
mImplicitProfileId | uint32_t |
mProcessEvictedElement | 순환 버퍼에서 요소를 제거하기 전에 요소를 처리하는 선택적 사용자 제공 콜백입니다. |
공공 기능 | |
---|---|
AvailableDataLength (void) const | size_t |
DataLength (void) const | size_t |
EvictHead (void) | 가장 오래된 최고 수준의 퇴거 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 |
공개 정적 함수 | |
---|---|
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을 하지 EVICT 요소에. 이는 기본 순환 버퍼를 갖고 싶지만 그 안에있는 요소를 재정의하지 않는 것이 필요한 여러 상황에서 유용 할 수 있습니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
공용 속성
mAppData
void * mAppData
제거 된 요소를 처리하는 콜백과 함께 사용할 선택적 사용자 제공 컨텍스트입니다.
mImplicitProfileId
uint32_t mImplicitProfileId
mProcessEvictedElement
ProcessEvictedElementFunct mProcessEvictedElement
순환 버퍼에서 요소를 제거하기 전에 요소를 처리하는 선택적 사용자 제공 콜백입니다.
mProcessEvictedElement 함수 구현에 대한 추가 정보는 ProcessEvictedElementFunct 유형 정의를 참조하십시오.
공공 기능
AvailableDataLength
size_t AvailableDataLength( void ) const
DataLength
size_t DataLength( void ) const
EvictHead
WEAVE_ERROR EvictHead( void )
가장 오래된 최고 수준의 퇴거 TLV의 의 요소 WeaveCircularTLVBuffer을 .
이 함수는 오래된 최상위 제거 TLV의 버퍼 소자. 이 기능은 등록 된 콜백을 호출한다 mProcessEvictedElement 제거 전의 요소를 처리한다. 콜백은 아무것도하지만 반환하는 경우 WEAVE_NO_ERROR를 , 요소가 제거되지 않습니다. 다른 오류가 버퍼 내에 요소가 발생하지 않으면 마찬가지로 등 기본 WeaveCircularTLVBuffer는 변하지 않는다.
세부 | |||||
---|---|---|---|---|---|
반환 값 |
|
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer는 조정 WeaveCircularTLVBuffer
로부터의 출력의 완료에 상태TLVWriter .
이 함수는 큐 테일의 위치에 영향을줍니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
를위한 추가 공간 가져TLVWriter을 .
실제로이 함수는 순환 버퍼에서 요소를 제거하고이 버퍼 큐의 헤드를 조정합니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
GetNextBuffer
WEAVE_ERROR GetNextBuffer( TLVReader & ioReader, const uint8_t *& outBufStart, uint32_t & outBufLen )
를위한 추가 공간 가져TLVReader을 .
에 의해 제공되는 저장 WeaveCircularTLVBuffer는 버퍼 내에 랩 어라운드된다. 이 기능은에 순환 버퍼의 버퍼링과 일치 할 수있는 능력을 우리에게 제공TLVReader의 제약. 독자는 기껏 읽을 mQueueSize
버퍼의 바이트.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||
반환 값 |
|
GetQueue
uint8_t * GetQueue( void ) const
GetQueueSize
size_t GetQueueSize( void ) const
큐 헤드
uint8_t * QueueHead( void ) const
큐 테일
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의 생성자입니다.
세부 | |||||
---|---|---|---|---|---|
매개 변수 |
|
WeaveCircularTLVBuffer
WeaveCircularTLVBuffer( uint8_t *inBuffer, size_t inBufferLength, uint8_t *inHead )
WeaveCircularTLVBuffer의 생성자입니다.
세부 | |||||||
---|---|---|---|---|---|---|---|
매개 변수 |
|
공개 정적 함수
FinalizeBufferFunct
WEAVE_ERROR FinalizeBufferFunct( TLVWriter & ioWriter, uintptr_t inBufHandle, uint8_t *inBufStart, uint32_t inBufLen )
에 대한 트램 폴린 WeaveCircularTLVBuffer :: FinalizeBuffer .
세부 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||
반환 값 |
|
GetNewBufferFunct
WEAVE_ERROR GetNewBufferFunct( TLVWriter & ioWriter, uintptr_t & inBufHandle, uint8_t *& outBufStart, uint32_t & outBufLen )
트램 폴린은 더 많은 공간을 가져올 수TLVWriter .
세부 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||
반환 값 |
|
GetNextBufferFunct
WEAVE_ERROR GetNextBufferFunct( TLVReader & ioReader, uintptr_t & inBufHandle, const uint8_t *& outBufStart, uint32_t & outBufLen )
에 대한 트램 폴린 WeaveCircularTLVBuffer :: GetNextBuffer .
세부 | |||||||||
---|---|---|---|---|---|---|---|---|---|
매개 변수 |
| ||||||||
반환 값 |
|