www.mooseframework.org
Public Member Functions | Private Attributes | List of all members
MooseUtils::SharedPool< T >::ExternalDeleter Struct Reference

Public Member Functions

 ExternalDeleter (std::weak_ptr< SharedPool< T > *> pool)
 
void operator() (T *ptr)
 

Private Attributes

std::weak_ptr< SharedPool< T > * > _pool
 

Detailed Description

template<class T>
struct MooseUtils::SharedPool< T >::ExternalDeleter

Definition at line 45 of file SharedPool.h.

Constructor & Destructor Documentation

◆ ExternalDeleter()

template<class T >
MooseUtils::SharedPool< T >::ExternalDeleter::ExternalDeleter ( std::weak_ptr< SharedPool< T > *>  pool)
inlineexplicit

Definition at line 47 of file SharedPool.h.

47 : _pool(pool) {}
std::weak_ptr< SharedPool< T > * > _pool
Definition: SharedPool.h:66

Member Function Documentation

◆ operator()()

template<class T >
void MooseUtils::SharedPool< T >::ExternalDeleter::operator() ( T *  ptr)
inline

Definition at line 49 of file SharedPool.h.

50  {
51  if (auto _poolptr = _pool.lock())
52  {
53  try
54  {
55  (*_poolptr.get())->add(std::unique_ptr<T>{ptr});
56  return;
57  }
58  catch (...)
59  {
60  }
61  }
62  std::default_delete<T>{}(ptr);
63  }
void add(std::unique_ptr< T > t)
Definition: SharedPool.h:75
std::weak_ptr< SharedPool< T > * > _pool
Definition: SharedPool.h:66

Member Data Documentation

◆ _pool

template<class T >
std::weak_ptr<SharedPool<T> *> MooseUtils::SharedPool< T >::ExternalDeleter::_pool
private

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