クラス テンプレート sc_core::sc_vpool< T >

#include <sc_temporary.h>

すべてのメンバ一覧

Public メソッド

 sc_vpool (int log2, T *pool_p=0)
 ~sc_vpool ()
T * allocate ()
void reset ()
int size ()

Protected 変数

int m_pool_i
T * m_pool_p
int m_wrap


説明

template<class T>
class sc_core::sc_vpool< T >

sc_temporary.h176 行で定義されています。


コンストラクタとデストラクタ

template<class T>
sc_core::sc_vpool< T >::sc_vpool ( int  log2,
T *  pool_p = 0 
) [inline]

sc_temporary.h190 行で定義されています。

00191 {
00192         // if ( log2 > 32 ) SC_REPORT_ERROR(SC_ID_POOL_SIZE_, "");
00193         m_pool_i = 0;
00194         m_pool_p = pool_p ? pool_p : new T[1 << log2];
00195         m_wrap = ~(-1 << log2);
00196 }

template<class T>
sc_core::sc_vpool< T >::~sc_vpool (  )  [inline]

sc_temporary.h198 行で定義されています。

00199 {
00200         // delete [] m_pool_p;
00201 }


関数

template<class T>
T * sc_core::sc_vpool< T >::allocate (  )  [inline]

sc_temporary.h203 行で定義されています。

00204 {
00205         T* result_p;    // Entry to return.
00206 
00207         result_p = &m_pool_p[m_pool_i];
00208         m_pool_i = (m_pool_i + 1) & m_wrap;
00209         return result_p;
00210 }

template<class T>
void sc_core::sc_vpool< T >::reset (  )  [inline]

sc_temporary.h212 行で定義されています。

00213 {
00214         m_pool_i = 0;
00215 }

template<class T>
int sc_core::sc_vpool< T >::size (  )  [inline]

sc_temporary.h217 行で定義されています。

00218 {
00219         return m_wrap + 1;
00220 }


変数

template<class T>
int sc_core::sc_vpool< T >::m_pool_i [protected]

sc_temporary.h178 行で定義されています。

template<class T>
T* sc_core::sc_vpool< T >::m_pool_p [protected]

sc_temporary.h179 行で定義されています。

template<class T>
int sc_core::sc_vpool< T >::m_wrap [protected]

sc_temporary.h180 行で定義されています。


このクラスの説明は次のファイルから生成されました:

SystemCに対してFri Jun 6 20:12:24 2008に生成されました。  doxygen 1.5.6