cpp-toolbox  0.0.1
A toolbox library for C++
Loading...
Searching...
No Matches
toolbox::base::object_pool_t< T > Class Template Reference

#include <object_pool.hpp>

Public Types

using PooledObjectPtr = std::unique_ptr< T, PoolDeleter< T > >
 管理池化对象的 unique_ptr 的别名。当超出作用域时自动将对象返回池中/ Alias for a unique_ptr managing a pooled object. Automatically returns the object to the pool when it goes out of scope
 

Public Member Functions

 object_pool_t (size_t initial_size=0, std::function< void(T &)> resetter=nullptr)
 构造对象池/Construct an object pool
 
 object_pool_t (const object_pool_t &)=delete
 
object_pool_toperator= (const object_pool_t &)=delete
 
 object_pool_t (object_pool_t &&)=delete
 
object_pool_toperator= (object_pool_t &&)=delete
 
PooledObjectPtr acquire ()
 从池中获取一个对象/Acquire an object from the pool
 
void release (T *ptr)
 将对象释放回池中/Release an object back to the pool
 

Friends

class PoolDeleter< T >
 

Member Typedef Documentation

◆ PooledObjectPtr

template<typename T >
using toolbox::base::object_pool_t< T >::PooledObjectPtr = std::unique_ptr<T, PoolDeleter<T> >

管理池化对象的 unique_ptr 的别名。当超出作用域时自动将对象返回池中/ Alias for a unique_ptr managing a pooled object. Automatically returns the object to the pool when it goes out of scope

Examples
/home/runner/work/cpp-toolbox/cpp-toolbox/src/include/cpp-toolbox/base/object_pool.hpp.

Constructor & Destructor Documentation

◆ object_pool_t() [1/3]

template<typename T >
toolbox::base::object_pool_t< T >::object_pool_t ( size_t  initial_size = 0,
std::function< void(T &)>  resetter = nullptr 
)
inlineexplicit

构造对象池/Construct an object pool

Parameters
initial_size初始创建的对象数量,默认为0/Number of objects to create initially. Defaults to 0
resetter可选的重置函数,在对象返回池前调用以重置状态/Optional function to call on an object to reset its state before returning it to the pool

◆ object_pool_t() [2/3]

template<typename T >
toolbox::base::object_pool_t< T >::object_pool_t ( const object_pool_t< T > &  )
delete

◆ object_pool_t() [3/3]

template<typename T >
toolbox::base::object_pool_t< T >::object_pool_t ( object_pool_t< T > &&  )
delete

Member Function Documentation

◆ acquire()

template<typename T >
PooledObjectPtr toolbox::base::object_pool_t< T >::acquire ( )
inline

从池中获取一个对象/Acquire an object from the pool

如果池为空则创建新对象。返回的 unique_ptr 在析构时会自动将对象释放回池中/ If the pool is empty, a new object is created. The returned unique_ptr will automatically release the object back to the pool upon destruction.

Returns
管理获取对象的 std::unique_ptr/A std::unique_ptr managing the acquired object
Examples
/home/runner/work/cpp-toolbox/cpp-toolbox/src/include/cpp-toolbox/base/object_pool.hpp.

◆ operator=() [1/2]

◆ operator=() [2/2]

◆ release()

template<typename T >
void toolbox::base::object_pool_t< T >::release ( T *  ptr)
inline

将对象释放回池中/Release an object back to the pool

当 unique_ptr 超出作用域时由 PoolDeleter 自动调用。如果提供了重置函数则重置对象状态/ Called automatically by the PoolDeleter when the unique_ptr goes out of scope. Resets the object's state if a reset function was provided.

Parameters
ptr要释放的对象的原始指针,所有权由池接管/Raw pointer to the object to release. Ownership is taken by the pool
Examples
/home/runner/work/cpp-toolbox/cpp-toolbox/src/include/cpp-toolbox/base/object_pool.hpp.

Friends And Related Symbol Documentation

◆ PoolDeleter< T >


The documentation for this class was generated from the following file: