libosmscout  0.1
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules
osmscout::ObjectPool< T > Class Template Referenceabstract

#include <ObjectPool.h>

Public Types

using Ptr = std::unique_ptr< T, std::function< void(T *)> >
 

Public Member Functions

virtual Ptr Borrow ()
 
void Clear ()
 
virtual void Destroy (T *o) noexcept
 
virtual bool IsValid (T *) noexcept
 
virtual T * MakeNew () noexcept=0
 Make a new object. More...
 
 ObjectPool (size_t maxSize)
 
size_t Size ()
 
virtual ~ObjectPool ()
 

Member Typedef Documentation

◆ Ptr

template<typename T >
using osmscout::ObjectPool< T >::Ptr = std::unique_ptr<T, std::function<void(T*)> >

Constructor & Destructor Documentation

◆ ObjectPool()

template<typename T >
osmscout::ObjectPool< T >::ObjectPool ( size_t  maxSize)
inlineexplicit

◆ ~ObjectPool()

template<typename T >
virtual osmscout::ObjectPool< T >::~ObjectPool ( )
inlinevirtual

Member Function Documentation

◆ Borrow()

template<typename T >
virtual Ptr osmscout::ObjectPool< T >::Borrow ( )
inlinevirtual

◆ Clear()

template<typename T >
void osmscout::ObjectPool< T >::Clear ( )
inline

◆ Destroy()

template<typename T >
virtual void osmscout::ObjectPool< T >::Destroy ( T *  o)
inlinevirtualnoexcept

◆ IsValid()

template<typename T >
virtual bool osmscout::ObjectPool< T >::IsValid ( T *  )
inlinevirtualnoexcept

◆ MakeNew()

template<typename T >
virtual T* osmscout::ObjectPool< T >::MakeNew ( )
pure virtualnoexcept

Make a new object.

It may return nullptr in case of failure.

Referenced by osmscout::ObjectPool< FileScanner >::Borrow().

◆ Size()

template<typename T >
size_t osmscout::ObjectPool< T >::Size ( )
inline

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