WIL説明書(C++)  3.0.0
FvArray.h
[詳解]
1 // $Revision: 1.1 $
2 /*
3  @file FvArray.h
4  @brief CFvArray template class
5  @author FAST Corporation
6 */
7 
8 #ifndef _FVARRAY_H_INCLUDED_
9 #define _FVARRAY_H_INCLUDED_
10 
11 #include "FvMacros.h"
12 #include "FvDefs.h"
13 #include "FvDebug.h"
14 #include "FvErrors.h"
15 #include "FvObject.h"
16 
17 #include "FvMultiData.h"
18 #include "FvArrayAllocator.h"
19 
20 #pragma pack(push,_FVCL_PACKING)
21 
22 namespace FVCL
23 {
24 
25 // /////////////////////////////////////////////////////////////////
26 // DEFINE
27 
28 // /////////////////////////////////////////////////////////////////
29 // TYPEDEF
30 
31 // /////////////////////////////////////////////////////////////////
32 // CLASS
33 template<class TYPE> class CFvArray : public CFvMultiData<TYPE>
34 {
35 public:
36  // DEFINE/TYPEDEF
37  typedef TYPE* pointer;
38  typedef const TYPE* const_pointer;
39  typedef TYPE& reference;
40  typedef const TYPE& const_reference;
41  typedef UINT size_type;
42 
43 public:
44  enum { DataID = 10 };
45  enum
46  {
49  };
50 
51 public:
52  // ===================================================================
53  CFvArray() : CFvMultiData<TYPE>()
54  {
55  size_type uiInitial = DefaultInitial;
56  size_type uiIncrease = DefaultIncrease;
57  this->m_alloc = static_cast<CFvAllocator<TYPE>*>(new CFvArrayAllocator<TYPE>( uiInitial, uiIncrease ));
58  if( this->m_alloc == NULL )
60  }
61 
62  // ===================================================================
63  CFvArray( size_type uiInitial ) : CFvMultiData<TYPE>()
64  {
65  size_type uiIncrease = DefaultIncrease;
66  this->m_alloc = static_cast<CFvAllocator<TYPE>*>(new CFvArrayAllocator<TYPE>( uiInitial, uiIncrease ));
67  if( this->m_alloc == NULL )
69  }
70 
71  // ===================================================================
72  CFvArray( size_type uiInitial, size_type uiIncrease ) : CFvMultiData<TYPE>()
73  {
74  this->m_alloc = static_cast<CFvAllocator<TYPE>*>(new CFvArrayAllocator<TYPE>( uiInitial, uiIncrease ));
75  if( this->m_alloc == NULL )
77  }
78 
79  // ===================================================================
80  CFvArray( const CFvArray<TYPE>& object ) : CFvMultiData<TYPE>()
81  {
82  size_type uiInitial = object.m_alloc->GetCapacity();
83  size_type uiIncrease = object.m_alloc->GetIncrease();
84 
85  this->m_alloc = static_cast<CFvAllocator<TYPE>*>(new CFvArrayAllocator<TYPE>( uiInitial, uiIncrease ));
86  if( this->m_alloc == NULL )
89  }
90 
91  // ===================================================================
92  virtual ~CFvArray()
93  {
94  if( this->m_alloc != NULL )
95  delete this->m_alloc;
96  }
97 
98  // ===================================================================
99  virtual INT GetDataID() const
100  {
101  return CFvArray<TYPE>::DataID;
102  }
103 
104  // ===================================================================
105  virtual bool GetPointer( INT id, void** val ) const
106  {
107  if( CFvArray<TYPE>::GetDataID() != id )
108  return false;
109  *val = (void*)this;
110  return true;
111  }
112 
113 public:
114  // ===================================================================
116  {
118  return *this;
119  }
120 
121 protected:
122  // OBJECT
123 };
124 
125 } // FVCL
126 
127 #pragma pack(pop)
128 
129 #endif // _FVARRAY_H_INCLUDED_
領域の増分(要素数)
Definition: FvArray.h:48
領域の初期容量(要素数)
Definition: FvArray.h:47
CFvArray()
コンストラクタ
Definition: FvArray.h:53
配列確保テンプレートクラスの基本クラス
Definition: FvAllocator.h:34
FVCLのネームスペース
Definition: EVCbasicDeclare.txt:9
領域確保不可例外クラス
Definition: FveBadAllocException.h:18
const INT FAILED_TO_ALLOCATE
メモリの確保に失敗しました。
Definition: FvErrors.h:15
virtual INT GetDataID() const
データIDの取得
Definition: FvArray.h:99
配列テンプレートクラス(連続型)
Definition: FvArray.h:33
int INT
整数型(32ビット)
Definition: FvDefs.h:36
配列確保テンプレートクラス(連続型)
CFvArray(size_type uiInitial, size_type uiIncrease)
初期値指定コンストラクタ
Definition: FvArray.h:72
配列テンプレートクラスの基本クラス
マクロ定義
CFvAllocator< TYPE > * m_alloc
アロケータクラスのオブジェクトへのポインタ
Definition: FvMultiData.h:291
エラーコード定義
virtual CFvArray< TYPE > & operator=(const CFvArray< TYPE > &ope)
代入オペレータ (=)
Definition: FvArray.h:115
CFvArray(size_type uiInitial)
初期値指定コンストラクタ
Definition: FvArray.h:63
unsigned int UINT
整数型(32ビット)[符号なし]
Definition: FvDefs.h:37
virtual ~CFvArray()
デストラクタ
Definition: FvArray.h:92
配列テンプレートクラスの基本クラス
Definition: FvMultiData.h:36
CFvObject クラスのインターフェース
配列テンプレートクラス(連続型)のデータID
Definition: FvArray.h:44
virtual CFvMultiData< TYPE > & operator=(const CFvMultiData< TYPE > &ope)
代入オペレータ(=)
Definition: FvMultiData.h:269
変数型と定数の定義
デバッグ用関数のインターフェース
配列確保テンプレートクラス(連続型)
Definition: FvArrayAllocator.h:32
virtual bool GetPointer(INT id, void **val) const
インスタンスのthisポインタの取得
Definition: FvArray.h:105
CFvArray(const CFvArray< TYPE > &object)
コピーコンストラクタ
Definition: FvArray.h:80

Documentation copyright © 2007 FAST Corporation. [B-001864]
Generated on 2023年11月02日(木) 10時12分53秒 for WIL説明書(C++) by doxygen 1.8.11