Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

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(*
処理するために呼び出される関数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)
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)

パブリックタイプ

ProcessEvictedElementFunct

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

処理するために呼び出される関数TLVの前に、それに要素から追い出されているNL ::織り:: TLV :: WeaveCircularTLVBuffer

このタイプの機能は、処理するために使用されるTLVのバッファから削除されようと素子。機能が与えられますNL ::織り:: TLV :: TLVReaderユーザーがコールバック用の追加の環境を提供している可能性が削除されようとしている要素だけでなく、void *型のコンテキストに配置します。関数が正常に要素を処理した場合、それは返す必要がありWEAVE_NO_ERRORを。このが意味WeaveCircularTLVBuffer要素が安全に追い出されます。他の戻り値はエラーとして処理されなくなりWeaveCircularTLVBufferを検討中の要素を立ち退かから。

注:このコールバックは、強制的に使用することができるWeaveCircularTLVBufferを要素を立ち退かないし。これは、基になる循環バッファが必要であるが、その中の要素をオーバーライドしたくない場合に、多くの状況で役立つ場合があります。

詳細
パラメーター
[in] inBuffer
立ち退きが行われるバッファへの参照
[in] inAppData
このコールバックの追加コンテキストを含む、ユーザー提供の構造体へのポインター
[in] inReader
ATLVReaderが追い出されるべき要素に配置されます。
戻り値
WEAVE_NO_ERROR
成功したとき。要素は削除されます。
other
イベント処理中にエラーが発生しました。要素はバッファに残ります。この要素の削除をトリガーした書き込み機能は失敗します。

パブリック属性

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は変わりません。

詳細
戻り値
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を

実際には、関数は循環バッファから要素を削除し、このバッファキューの先頭を調整します

詳細
パラメーター
[in,out] ioWriter
TLVWriterこの関数を呼び出します
[out] outBufStart
新しいバッファへのポインタ
[out] outBufLen
書き込みに使用できる長さ
戻り値
WEAVE_NO_ERROR
成功したとき。
other
この関数は、完全なトップレベルElideのできなかった場合は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
無条件に成功します。

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のコンストラクタ。

詳細
パラメーター
[in] inBuffer
キューのバッキングストアへのポインタ
[in] inBufferLength
バッキングストアの長さ(バイト単位)

WeaveCircularTLVBuffer

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

WeaveCircularTLVBufferのコンストラクタ。

詳細
パラメーター
[in] inBuffer
キューのバッキングストアへのポインタ
[in] inBufferLength
バッキングストアの長さ(バイト単位)
[in] inHead
頭の始点。 inHeadポインタ、すなわちinBuffer内、循環バッファのためのバッキングストア内に入ると&(inBuffer [inBufferLength])必要があります

パブリック静的関数

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
この関数は、完全なトップレベルElideのできなかった場合は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
無条件に成功します。