nl::
  #include <src/lib/core/WeaveCircularTLVBuffer.h>
  WeaveCircularTLVBuffer は、nl::Weave::TLV::TLVWriter と nl::Weave::TLVTLVReader に循環型ストレージを提供します。
概要
nl::Weave::TLV::TLVWriter は、それぞれの TLV エントリが指定のストレージ内に完全に収まっている限り、無制限の数の TLV エントリを WeaveCircularTLVBuffer に書き込むことができます。nl::Weave::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(*) TLVTLV 要素が nl::Weave::TLV::WeaveCircularTLVBuffer から削除される前に、その要素を処理するために呼び出される関数。 | 
| パブリック属性 | |
|---|---|
| mAppData | void *強制排除された要素を処理するコールバックで使用する、ユーザーが指定するコンテキスト(省略可)。 | 
| mImplicitProfileId | uint32_t | 
| mProcessEvictedElement | 要素を処理して循環バッファから要素を削除する、ユーザー指定のコールバック(省略可)。 | 
| パブリック関数 | |
|---|---|
| AvailableDataLength(void) const  | size_t | 
| DataLength(void) const  | size_t | 
| EvictHead(void) | WeaveCircularTLVBuffer 内の最も古いトップレベルの TLV 要素を削除します。 | 
| FinalizeBuffer(TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen) | FinalizeBuffer は、TLVWriter からの出力の完了時に  WeaveCircularTLVBuffer状態を調整します。 | 
| 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)
TLVTLV 要素が nl::Weave::TLV::WeaveCircularTLVBuffer から削除される前に、その要素を処理するために呼び出される関数。
この型の関数は、バッファからエビクションされる予定の TLV 要素を処理するために使用されます。この関数には、削除しようとしている要素上にある nl::Weave::TLV::TLVReader と、ユーザーがコールバック用に追加の環境を提供した可能性のある void * コンテキストが渡されます。関数が要素を正常に処理した場合は、WEAVE_NO_ERROR が返されます。これは、要素を安全にエビクションできることを WeaveCircularTLVBuffer に通知します。その他の戻り値はエラーとして扱われ、WeaveCircularTLVBuffer で対象となる要素がエビクションされるのを防ぐことができます。
注: このコールバックは、WeaveCircularTLVBuffer で要素を強制排除しないようにする場合に使用できます。これはさまざまな状況で有用です。たとえば、内部に循環バッファを持たせたいが、その中のどの要素もオーバーライドしたくない場合などです。
| 詳細 | |||||||
|---|---|---|---|---|---|---|---|
| パラメータ | 
 | ||||||
| 戻り値 | 
 | ||||||
パブリック属性
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 )
WeaveCircularTLVBuffer 内の最も古いトップレベルの TLV 要素を削除します。
この関数は、バッファ内の最も古いトップレベルの TLV 要素を削除します。この関数は、mProcessEvictedElement に登録されているコールバックを呼び出して、要素を削除する前に処理します。コールバックが WEAVE_NO_ERROR 以外の値を返した場合、要素は削除されません。同様に、他のエラーが発生しても、バッファ内に要素が存在しないなど、基盤となる WeaveCircularTLVBuffer は変更されません。
| 詳細 | |||||
|---|---|---|---|---|---|
| 戻り値 | 
 | ||||
FinalizeBuffer
WEAVE_ERROR FinalizeBuffer( TLVWriter & ioWriter, uint8_t *inBufStart, uint32_t inBufLen )
FinalizeBuffer は、TLVWriter からの出力の完了時に WeaveCircularTLVBuffer 状態を調整します。
この関数はキューのテール位置に影響します。
| 詳細 | |||||||
|---|---|---|---|---|---|---|---|
| パラメータ | 
 | ||||||
| 戻り値 | 
 | ||||||
GetNewBuffer
WEAVE_ERROR GetNewBuffer( TLVWriter & ioWriter, uint8_t *& outBufStart, uint32_t & outBufLen )
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
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 コンストラクタ。
| 詳細 | |||||
|---|---|---|---|---|---|
| パラメータ | 
 | ||||
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 へのトランポリン。
| 詳細 | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| パラメータ | 
 | ||||||||
| 戻り値 | 
 | ||||||||