TNB Library
TnbPointerVector.h
[詳解]
1#pragma once
17#include "TnbVector.h"
18
19
20
21//TNB Library
22namespace TNB
23{
24
25
26
59template<typename TYP>
61{
63 CVectorT< CPointerHandleT<TYP> > m_vhPointer;
64public:
65
72 explicit CPointerVectorT(size_t size = 0) : _super()
73 {
74 m_vhPointer.SetIncrementSize(size);
75 }
76
81 CPointerVectorT(const CPointerVectorT<TYP>& v) : _super(), m_vhPointer(v.m_vhPointer)
82 {
83 }
84
91 {
92 m_vhPointer = other.m_vhPointer;
93 return *this;
94 }
95
101 virtual bool Lock(DWORD dwTime = INFINITE) const { return true; }
102
104 virtual void Unlock(void) const {}
105
112 virtual TYP* const& At(INDEX index) const
113 {
114 return *(m_vhPointer.At(index).ReferP());
115 }
116
120 virtual ~CPointerVectorT(void)
121 {
122 }
123
130 bool Remove(INDEX index)
131 {
132 return m_vhPointer.Remove(index);
133 }
134
138 void RemoveAll(void)
139 {
140 m_vhPointer.RemoveAll();
141 }
142
150 size_t RemoveElements(INDEX index, size_t size = 0)
151 {
152 return m_vhPointer.RemoveElements(index, size);
153 }
154
162 void SetSize(size_t size)
163 {
164 m_vhPointer.SetSize(size);
165 }
166
173 INDEX Add(TYP* P)
174 {
175 return m_vhPointer.Add(P);
176 }
177
185 bool Insert(INDEX index, TYP* P)
186 {
187 return m_vhPointer.Insert(index, P);
188 }
189
197 bool Set(INDEX index, TYP* P)
198 {
199 return m_vhPointer.Set(index, P);
200 }
201
208 TYP* operator[](INDEX index) const
209 {
210 return Get(index);
211 }
212
217 virtual size_t GetSize( void ) const
218 {
219 return m_vhPointer.GetSize();
220 }
221
227 virtual void Serialize(ISerializer& _sr) const
228 {
229 throw CNotSupportException();
230 }
231};
232
233
234
235}; // TNB
配列型情報管理関係のヘッダ
サポート外例外
Definition: TnbException.h:185
ポインタ配列管理テンプレート
virtual ~CPointerVectorT(void)
デストラクタ
virtual size_t GetSize(void) const
[取得] 要素数取得
CPointerVectorT(const CPointerVectorT< TYP > &v)
コピーコンストラクタ
void RemoveAll(void)
[削除] 空化
bool Insert(INDEX index, TYP *P)
[挿入] 要素一つ挿入
CPointerVectorT(size_t size=0)
コンストラクタ
bool Remove(INDEX index)
[削除] 要素削除
virtual bool Lock(DWORD dwTime=INFINITE) const
[排他] ロック
virtual TYP *const & At(INDEX index) const
[取得] 要素の参照取得.
void SetSize(size_t size)
[操作] サイズ指定
size_t RemoveElements(INDEX index, size_t size=0)
[削除] 要素削除.
bool Set(INDEX index, TYP *P)
[設定] 要素の設定
virtual void Serialize(ISerializer &_sr) const
[処理] シリアライズ
virtual void Unlock(void) const
[排他] アンロック
CPointerVectorT & operator=(const CPointerVectorT< TYP > &other)
[代入] コピーオペレータ
INDEX Add(TYP *P)
[追加] 要素一つ追加
TYP * operator[](INDEX index) const
[取得] 要素参照取得
配列型情報管理テンプレート
Definition: TnbVector.h:75
virtual size_t GetSize(void) const
[取得] サイズ取得
Definition: TnbVector.h:368
virtual bool Insert(INDEX index, const TYP &t)
[追加] 要素一つ挿入
Definition: TnbVector.h:579
virtual size_t RemoveElements(INDEX index, size_t size=0)
[削除] 要素削除.
Definition: TnbVector.h:409
void SetIncrementSize(size_t size)
[設定] 余白サイズ
Definition: TnbVector.h:340
virtual bool Remove(INDEX index)
[削除] 要素一つ削除.
Definition: TnbVector.h:397
virtual const TYP & At(INDEX index) const
[取得] 要素の参照取得.
Definition: TnbVector.h:233
virtual bool SetSize(size_t size)
[操作] サイズ指定
Definition: TnbVector.h:618
virtual bool RemoveAll(void)
[削除] 空化
Definition: TnbVector.h:565
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
Definition: TnbVector.h:383
virtual bool Set(INDEX index, const TYP &t)
[設定] 要素の設定.
Definition: TnbVector.h:265
TNB Library
Definition: TnbDoxyTitle.txt:2
情報群管理インターフェーステンプレート
virtual TYP * Get(INDEX index) const
[取得] 要素の取得.
シリアライザーインターフェースクラス.