TNB Library
TnbListQueue.h
[詳解]
1#pragma once
15#include "TnbQueue.h"
16#include "TnbList.h"
17
18
19
20//TNB Library
21namespace TNB
22{
23
24
25
50template<typename TYP>
51class CListQueueT : public CListT<TYP> , public IQueueT<TYP>
52{
53 DEFSUPER(CListT<TYP>);
54public:
55
57 CListQueueT(void) : _super()
58 {
59 }
60
65 CListQueueT(const CListQueueT& other) : _super(other)
66 {
67 }
68
72 virtual ~CListQueueT(void) {}
73
80 {
81 _super::operator=(other);
82 return *this;
83 }
84
93 {
94 _super::operator+=(queue);
95 return *this;
96 }
97
106 virtual INDEX Add(const TYP& t)
107 {
108 return _super::Add(t);
109 }
110
119 virtual size_t AddElements(size_t size, const TYP* P = NULL)
120 {
121 return _super::AddElements(size, P);
122 }
123
133 INDEX Add(const TYP& t, DWORD dwParam)
134 {
135 return _super::Add(t, dwParam);
136 }
137
145 INDEX AddEx(const TYP& t, DWORD dwParam)
146 {
147 return _super::AddEx(t, dwParam);
148 }
149
158 virtual size_t TakeElements(size_t size, TYP* P = NULL)
159 {
160 EXCLUSIVE(this);
161 if ( size > GetSize() )
162 {
163 return INVALID_SIZE;
164 }
165 if ( P != NULL )
166 {
167 loop ( i, size )
168 {
169 *P++ = _super::At(i);
170 }
171 }
172 loop ( i, size )
173 {
174 _super::Remove(0);
175 }
176 return size;
177 }
178
179private:
180 friend class CListQueueTest;
181};
182
183
184
185}; // TNB
#define loop(VAR, CNT)
loop構文.
Definition: TnbDef.h:343
リスト型情報管理関係のヘッダ
キュー型情報管理関係のヘッダ
リスト式キュー型情報管理テンプレート
Definition: TnbListQueue.h:52
friend class CListQueueTest
フレンドクラス宣言
Definition: TnbListQueue.h:180
virtual ~CListQueueT(void)
デストラクタ
Definition: TnbListQueue.h:72
CListQueueT(void)
コンストラクタ
Definition: TnbListQueue.h:57
CListQueueT(const CListQueueT &other)
コピーコンストラクタ
Definition: TnbListQueue.h:65
CListQueueT & operator+=(const CListQueueT< TYP > &queue)
[追加] 追加オペレータ
Definition: TnbListQueue.h:92
INDEX Add(const TYP &t, DWORD dwParam)
[追加] 要素追加.
Definition: TnbListQueue.h:133
CListQueueT & operator=(const CListQueueT &other)
[代入] コピーオペレータ
Definition: TnbListQueue.h:79
virtual size_t TakeElements(size_t size, TYP *P=NULL)
[取得] 複数要素取り出し
Definition: TnbListQueue.h:158
virtual size_t AddElements(size_t size, const TYP *P=NULL)
[追加] 複数要素追加.
Definition: TnbListQueue.h:119
INDEX AddEx(const TYP &t, DWORD dwParam)
[追加] 要素追加.
Definition: TnbListQueue.h:145
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
Definition: TnbListQueue.h:106
リスト型情報管理テンプレート
Definition: TnbList.h:61
virtual size_t GetSize(void) const
[取得] 要素数取得
Definition: TnbList.h:316
#define EXCLUSIVE(CLS)
簡易排他制御マクロ.
Definition: TnbSync.h:788
TNB Library
Definition: TnbDoxyTitle.txt:2
キュー型情報管理インターフェーステンプレート
Definition: TnbQueue.h:43