クラス テンプレート Onikiri::SharedPtrObjectPool< T >

#include <SharedPtrObjectPool.h>

すべてのメンバ一覧

Public メソッド

template<typename Arg0, typename Arg1, typename Arg2, typename Arg3>
boost::shared_ptr< T > construct (const Arg0 &a0, const Arg1 &a1, const Arg2 &a2, const Arg3 &a3)
template<typename Arg0, typename Arg1, typename Arg2>
boost::shared_ptr< T > construct (const Arg0 &a0, const Arg1 &a1, const Arg2 &a2)
template<typename Arg0, typename Arg1>
boost::shared_ptr< T > construct (const Arg0 &a0, const Arg1 &a1)
template<typename Arg0>
boost::shared_ptr< T > construct (const Arg0 &a0)
boost::shared_ptr< T > construct ()

構成

struct  SharedPtrObjectPoolDeleter
struct  SharedPtrObjectPoolTag


説明

template<typename T>
class Onikiri::SharedPtrObjectPool< T >

SharedPtrObjectPool.h39 行で定義されています。


関数

template<typename T>
template<typename Arg0, typename Arg1, typename Arg2, typename Arg3>
boost::shared_ptr<T> Onikiri::SharedPtrObjectPool< T >::construct ( const Arg0 &  a0,
const Arg1 &  a1,
const Arg2 &  a2,
const Arg3 &  a3 
) [inline]

SharedPtrObjectPool.h116 行で定義されています。

00118         {
00119             T* const ret = (T*)Pool::malloc();
00120             if(ret == 0)
00121                 return boost::shared_ptr<T>( ret );
00122             try { new (ret) T(a0, a1, a2, a3); }
00123             catch (...) { Pool::free(ret); throw; }
00124 
00125             return boost::shared_ptr<T>(
00126                     ret, 
00127                     SharedPtrObjectPoolDeleter() );
00128         };

template<typename T>
template<typename Arg0, typename Arg1, typename Arg2>
boost::shared_ptr<T> Onikiri::SharedPtrObjectPool< T >::construct ( const Arg0 &  a0,
const Arg1 &  a1,
const Arg2 &  a2 
) [inline]

SharedPtrObjectPool.h102 行で定義されています。

00103         {
00104             T* const ret = (T*)Pool::malloc();
00105             if(ret == 0)
00106                 return boost::shared_ptr<T>( ret );
00107             try { new (ret) T(a0, a1, a2); }
00108             catch (...) { Pool::free(ret); throw; }
00109 
00110             return boost::shared_ptr<T>(
00111                     ret, 
00112                     SharedPtrObjectPoolDeleter() );
00113         };

template<typename T>
template<typename Arg0, typename Arg1>
boost::shared_ptr<T> Onikiri::SharedPtrObjectPool< T >::construct ( const Arg0 &  a0,
const Arg1 &  a1 
) [inline]

SharedPtrObjectPool.h88 行で定義されています。

00089         {
00090             T* const ret = (T*)Pool::malloc();
00091             if(ret == 0)
00092                 return boost::shared_ptr<T>( ret );
00093             try { new (ret) T(a0, a1); }
00094             catch (...) { Pool::free(ret); throw; }
00095 
00096             return boost::shared_ptr<T>(
00097                     ret, 
00098                     SharedPtrObjectPoolDeleter() );
00099         };

template<typename T>
template<typename Arg0>
boost::shared_ptr<T> Onikiri::SharedPtrObjectPool< T >::construct ( const Arg0 &  a0  )  [inline]

SharedPtrObjectPool.h74 行で定義されています。

00075         {
00076             T* const ret = (T*)Pool::malloc();
00077             if(ret == 0)
00078                 return boost::shared_ptr<T>( ret );
00079             try { new (ret) T(a0); }
00080             catch (...) { Pool::free(ret); throw; }
00081 
00082             return boost::shared_ptr<T>(
00083                     ret, 
00084                     SharedPtrObjectPoolDeleter() );
00085         };

template<typename T>
boost::shared_ptr<T> Onikiri::SharedPtrObjectPool< T >::construct (  )  [inline]

SharedPtrObjectPool.h60 行で定義されています。

00061         {
00062             T* const ret = (T*)Pool::malloc();
00063             if(ret == 0)
00064                 return boost::shared_ptr<T>( ret );
00065             try { new (ret) T(); }
00066             catch (...) { Pool::free(ret); throw; }
00067 
00068             return boost::shared_ptr<T>(
00069                     ret, 
00070                     SharedPtrObjectPoolDeleter() );
00071         };


このクラスの説明は次のファイルから生成されました:
Onikiri2に対してTue Jun 18 15:20:44 2013に生成されました。  doxygen 1.4.7