TNB Library
TnbDummyCollection.h
[詳解]
1#pragma once
11#include "TnbCollection.h"
12
13
14
15//TNB Library
16namespace TNB
17{
18
19
20
41template<typename TYP>
43{
44 DEFSUPER(ICollectionT<TYP>);
45public:
46
51 CDummyCollectionT(const TYP& typ = TYP()) : _super(), m_data(typ), m_size(0)
52 {
53 }
54
60 virtual bool Lock(DWORD dwTime = INFINITE) const { return true; }
61
63 virtual void Unlock(void) const {}
64
69 virtual size_t GetSize(void) const
70 {
71 return m_size;
72 }
73
80 virtual const TYP& At(INDEX index) const
81 {
82 if ( ! IsInRange(index) ){ throw CIndexOutOfBoundsException(); }
83 return m_data;
84 }
85
95 virtual TYP& Ref(INDEX index)
96 {
97 if ( ! IsInRange(index) ){ throw CIndexOutOfBoundsException(); }
98 m_temp = m_data;
99 return m_temp;
100 }
101
109 virtual bool Set(INDEX index, const TYP& t)
110 {
111 return IsInRange(index);
112 }
113
120 virtual INDEX Add(const TYP& t)
121 {
122 return m_size++;
123 }
124
132 virtual bool Remove(INDEX index)
133 {
134 if ( ! IsInRange(index) )
135 {
136 return false;
137 }
138 m_size--;
139 return true;
140 }
141
147 virtual bool RemoveAll(void)
148 {
149 m_size = 0;
150 return true;
151 }
152
153private:
154 size_t m_size;
155 TYP m_data;
156 mutable TYP m_temp;
157};
158
159
160
161}; // TNB
情報群管理関係のヘッダ
ダミーコレクションテンプレート
virtual size_t GetSize(void) const
[取得] 要素数取得.
virtual bool Remove(INDEX index)
[削除] 要素一つ削除.
virtual const TYP & At(INDEX index) const
[取得] 要素の参照取得.
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual TYP & Ref(INDEX index)
[取得] 要素の参照取得.
virtual bool RemoveAll(void)
[削除] 全要素削除 .
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
CDummyCollectionT(const TYP &typ=TYP())
コンストラクタ.
virtual void Unlock(void) const
[排他] アンロック
virtual bool Set(INDEX index, const TYP &t)
[設定] 要素の設定.
INDEX範囲外例外
Definition: TnbException.h:81
TNB Library
Definition: TnbDoxyTitle.txt:2
情報群管理操作インターフェーステンプレート
bool IsInRange(INDEX index) const
[確認] INDEXの有効確認.