https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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

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: