Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
ResourcePool< T > Class Template Reference

#include <ResourcePool.h>

Data Structures

class  Deleter
 

Public Types

using Factory = std::function<T*()>
 
using Free = std::function<void(T*)>
 
using UniquePtr = std::unique_ptr<T, Deleter>
 

Public Member Functions

 ResourcePool (Factory factory, Free free)
 
UniquePtr get ()
 
 ~ResourcePool () noexcept
 
 ResourcePool (Factory factory, Free free)
 
UniquePtr get ()
 
 ~ResourcePool () noexcept
 
 ResourcePool (Factory factory, Free free)
 
UniquePtr get ()
 
 ~ResourcePool () noexcept
 

Detailed Description

template<typename T>
class pzstd::ResourcePool< T >

An unbounded pool of resources. A ResourcePool<T> requires a factory function that takes allocates T* and a free function that frees a T*. Calling ResourcePool::get() will give you a new ResourcePool::UniquePtr to a T, and when it goes out of scope the resource will be returned to the pool. The ResourcePool<T> must survive longer than any resources it hands out. Remember that ResourcePool<T> hands out mutable Ts, so make sure to clean up the resource before or after every use.

Member Typedef Documentation

◆ Factory

template<typename T >
typedef std::function< T *()> Factory = std::function<T*()>

◆ Free

template<typename T >
typedef std::function< void(T *)> Free = std::function<void(T*)>

◆ UniquePtr

template<typename T >
typedef std::unique_ptr< T, Deleter > UniquePtr = std::unique_ptr<T, Deleter>

Constructor & Destructor Documentation

◆ ResourcePool() [1/3]

template<typename T >
ResourcePool ( Factory factory,
Free free )
inline

Creates a ResourcePool.

Parameters
factoryThe function to use to create new resources.
freeThe function to use to free resources created by factory.

◆ ~ResourcePool() [1/3]

template<typename T >
~ResourcePool ( )
inlinenoexcept

◆ ResourcePool() [2/3]

template<typename T >
ResourcePool ( Factory factory,
Free free )
inline

Creates a ResourcePool.

Parameters
factoryThe function to use to create new resources.
freeThe function to use to free resources created by factory.

◆ ~ResourcePool() [2/3]

template<typename T >
~ResourcePool ( )
inlinenoexcept

◆ ResourcePool() [3/3]

template<typename T >
ResourcePool ( Factory factory,
Free free )
inline

Creates a ResourcePool.

Parameters
factoryThe function to use to create new resources.
freeThe function to use to free resources created by factory.

◆ ~ResourcePool() [3/3]

template<typename T >
~ResourcePool ( )
inlinenoexcept

Member Function Documentation

◆ get() [1/3]

template<typename T >
UniquePtr get ( )
inline
Returns
A unique pointer to a resource. The resource is null iff there are no available resources and factory() returns null.

◆ get() [2/3]

template<typename T >
UniquePtr get ( )
inline
Returns
A unique pointer to a resource. The resource is null iff there are no available resources and factory() returns null.

◆ get() [3/3]

template<typename T >
UniquePtr get ( )
inline
Returns
A unique pointer to a resource. The resource is null iff there are no available resources and factory() returns null.

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