TNB Library
公開メンバ関数 | 全メンバ一覧
CSimpleQueueT< TYP, ISI, INV > クラステンプレート

簡易リング式キュー型情報管理テンプレート [詳解]

#include <TnbSimpleQueue.h>

+ CSimpleQueueT< TYP, ISI, INV > の継承関係図

公開メンバ関数

INDEX Add (const TYP &t)
 [追加] 要素追加. [詳解]
 
size_t AddElements (size_t size, const TYP *P=NULL)
 [追加] 複数要素追加. [詳解]
 
 CSimpleQueueT (size_t size=10000)
 コンストラクタ [詳解]
 
size_t GetFreeSize (void) const
 [取得] 格納可能数取得. [詳解]
 
size_t GetQueueSize (void) const
 [取得] リングキューサイズ取得. [詳解]
 
size_t GetSize (void) const
 [取得] 要素数取得 [詳解]
 
bool IsFull (void) const
 [確認] 満タン? [詳解]
 
TYP & Ref (INDEX index)
 [取得] 要素アドレス取得 [詳解]
 
const TYP & Ref (INDEX index) const
 [取得] 要素参照 [詳解]
 
bool RemoveAll (void)
 [削除] データ全削除. [詳解]
 
void SetQueueSize (size_t size)
 [設定] リングキューサイズ指定. [詳解]
 
TYP Take (void)
 [取得] 先頭要素取り出し. [詳解]
 
size_t TakeElements (size_t size, TYP *P=NULL)
 [取得] 複数要素取り出し. [詳解]
 
virtual ~CSimpleQueueT (void)
 デストラクタ [詳解]
 

詳解

template<typename TYP, bool ISI = false, class INV = TYP>
class TNB::CSimpleQueueT< TYP, ISI, INV >

簡易リング式キュー型情報管理テンプレート

覚え書き
キューの大きさは固定です。最初にすべてのインスタンスが作られます (破棄されるのは、デストラクタの時です)。 そのためメモリの確保開放が発生しません。
引数
TYP保持する型(コピー可能の型に限る)
ISItrueならGet/Eraseした時に、不必要になったバッファの部分を INV を代入して初期化します。 TYPがクラスでメモリを確保しているときなどにtrueにします。
INV初期化時に使う値。省略すると、TYP()が使われます。
必要ファイル
TnbSimpleQueue.h
日付
13/08/29 新規作成

TnbSimpleQueue.h44 行目に定義があります。

構築子と解体子

◆ CSimpleQueueT()

CSimpleQueueT ( size_t  size = 10000)
explicit

コンストラクタ

覚え書き
コンストラクタ時に、リングキューの最大サイズを指定します。 動的に大きくなりません。
引数
sizeリングキューのサイズ。省略すると10000です。

TnbSimpleQueue.h54 行目に定義があります。

◆ ~CSimpleQueueT()

virtual ~CSimpleQueueT ( void  )
virtual

デストラクタ

TnbSimpleQueue.h62 行目に定義があります。

関数詳解

◆ Add()

INDEX Add ( const TYP &  t)

[追加] 要素追加.

要素一つをキューの最後に追加する。

覚え書き
非スレッドセーブメソッドです。 複数のスレッドからアクセスがある場合、 AddEx() を使用してください。
引数
t追加する要素。
戻り値
INVALID_INDEX失敗。
上記以外追加したINDEX。

TnbSimpleQueue.h124 行目に定義があります。

◆ AddElements()

size_t AddElements ( size_t  size,
const TYP *  P = NULL 
)

[追加] 複数要素追加.

連続したデータをキューの最後に追加します。

注意
指定したデータ数、全部入る空きがないとエラーになります。
引数
size追加するデータの数
P追加するデータ列のポインタ。省略すると TYP()が代入されます。
戻り値
INVALID_SIZEエラー。
それ以外追加した数。

TnbSimpleQueue.h150 行目に定義があります。

◆ GetFreeSize()

size_t GetFreeSize ( void  ) const

[取得] 格納可能数取得.

覚え書き
Ringキューはリングキューのサイズが固定です。
戻り値
サイズ

TnbSimpleQueue.h283 行目に定義があります。

◆ GetQueueSize()

size_t GetQueueSize ( void  ) const

[取得] リングキューサイズ取得.

戻り値
リングキューのサイズ。

TnbSimpleQueue.h87 行目に定義があります。

◆ GetSize()

size_t GetSize ( void  ) const

[取得] 要素数取得

戻り値
サイズ

TnbSimpleQueue.h96 行目に定義があります。

◆ IsFull()

bool IsFull ( void  ) const

[確認] 満タン?

戻り値
trueキューは満タン。これ以上追加できない状態。
false否。

TnbSimpleQueue.h106 行目に定義があります。

◆ Ref() [1/2]

TYP & Ref ( INDEX  index)

[取得] 要素アドレス取得

引数
indexインデックス
戻り値
参照
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

TnbSimpleQueue.h267 行目に定義があります。

◆ Ref() [2/2]

const TYP & Ref ( INDEX  index) const

[取得] 要素参照

引数
indexインデックス
戻り値
参照
例外
CIndexOutOfBoundsExceptionインデックスが範囲外であることを示すためにスローされます。

TnbSimpleQueue.h250 行目に定義があります。

◆ RemoveAll()

bool RemoveAll ( void  )

[削除] データ全削除.

キューの内容を空にします。

戻り値
常にtrue

TnbSimpleQueue.h135 行目に定義があります。

◆ SetQueueSize()

void SetQueueSize ( size_t  size)

[設定] リングキューサイズ指定.

覚え書き
コンストラクタでも指定できます。
このメソッドを使うと、情報はクリアされます。
引数
sizeリングキューのサイズ。

TnbSimpleQueue.h73 行目に定義があります。

◆ Take()

TYP Take ( void  )

[取得] 先頭要素取り出し.

キューから削除します

戻り値
要素内容
例外
CEmptyException空であることを示すためにスローされます。

TnbSimpleQueue.h191 行目に定義があります。

◆ TakeElements()

size_t TakeElements ( size_t  size,
TYP *  P = NULL 
)

[取得] 複数要素取り出し.

指定バッファにコピーし、キューから削除します。

注意
指定数分、データ無いとエラーになります。
引数
[in]size取り出す数。
[out]P取り出すバッファ。 NULLなら取得しません。
戻り値
INVALID_SIZEエラー。
それ以外取り出した数。

TnbSimpleQueue.h211 行目に定義があります。