improvement ResPoolManage
This commit is contained in:
@@ -10,18 +10,18 @@ namespace hgl
|
||||
{
|
||||
protected:
|
||||
|
||||
OP data_pool;
|
||||
OP *data_pool;
|
||||
|
||||
public:
|
||||
|
||||
virtual V * Create (const K &key) override{return data_pool.Acquire();}
|
||||
virtual void Clear (V *obj) override{data_pool.Release(obj);}
|
||||
virtual V * Create (const K &key) override{return data_pool->Acquire();}
|
||||
virtual void Clear (V *obj) override{data_pool->Release(obj);}
|
||||
|
||||
public:
|
||||
|
||||
using ResManage<K,V>::ResManage;
|
||||
_ResPoolManage(OP *op):data_pool(op){}
|
||||
virtual ~_ResPoolManage()=default;
|
||||
};//template <typename K,typename V,typename OP> class _ResPoolManage<K,V>:public ResManage<K,V>
|
||||
};//template <typename K,typename V,typename OP> class _ResPoolManage:public ResManage<K,V>
|
||||
|
||||
/**
|
||||
* 资源池是Pool/ResManage两个模板的组合应用
|
||||
@@ -30,8 +30,11 @@ namespace hgl
|
||||
{
|
||||
public:
|
||||
|
||||
using _ResPoolManage<K,V,ObjectPool<V> >::_ResPoolManage;
|
||||
virtual ~ResPoolManage()=default;
|
||||
};//template <typename K,typename V> class ResPoolManage<K,V>:public ResManage<K,V>
|
||||
ResPoolManage():_ResPoolManage(new ObjectPool<V>){}
|
||||
virtual ~ResPoolManage()
|
||||
{
|
||||
SAFE_CLEAR(this->data_pool);
|
||||
}
|
||||
};//template <typename K,typename V> class ResPoolManage:public _ResPoolManage<K,V,ObjectPool<V> >
|
||||
}//namespace hgl
|
||||
#endif//HGL_RES_POOL_MANAGE_INCLUDE
|
||||
|
Reference in New Issue
Block a user