QMCPACK
ResourceHandle< RS > Class Template Reference

ResourceHandle manages the temporary resource referenced from a collection. More...

+ Inheritance diagram for ResourceHandle< RS >:
+ Collaboration diagram for ResourceHandle< RS >:

Public Types

using Base = std::optional< std::reference_wrapper< RS > >
 

Public Member Functions

 ResourceHandle ()=default
 
 ResourceHandle (RS &res)
 
bool hasResource () const
 
 operator bool () const
 
RS & getResource ()
 
const RS & getResource () const
 
 operator RS & ()
 
 operator const RS & () const
 
RS & release ()
 

Detailed Description

template<class RS>
class qmcplusplus::ResourceHandle< RS >

ResourceHandle manages the temporary resource referenced from a collection.

Definition at line 23 of file ResourceHandle.h.

Member Typedef Documentation

◆ Base

using Base = std::optional<std::reference_wrapper<RS> >

Definition at line 26 of file ResourceHandle.h.

Constructor & Destructor Documentation

◆ ResourceHandle() [1/2]

ResourceHandle ( )
default

◆ ResourceHandle() [2/2]

ResourceHandle ( RS &  res)
inline

Definition at line 29 of file ResourceHandle.h.

29 { Base::emplace(res); }

Member Function Documentation

◆ getResource() [1/2]

RS& getResource ( )
inline

Definition at line 34 of file ResourceHandle.h.

Referenced by DiracDeterminantBatched< PL, VT, FPVT >::mw_invertPsiM().

34 { return Base::value(); }

◆ getResource() [2/2]

const RS& getResource ( ) const
inline

Definition at line 35 of file ResourceHandle.h.

35 { return Base::value(); }

◆ hasResource()

bool hasResource ( ) const
inline

Definition at line 31 of file ResourceHandle.h.

31 { return Base::has_value(); }

◆ operator bool()

operator bool ( ) const
inline

Definition at line 32 of file ResourceHandle.h.

32 { return Base::has_value(); }

◆ operator const RS &()

operator const RS & ( ) const
inline

Definition at line 38 of file ResourceHandle.h.

38 { return Base::value(); }

◆ operator RS &()

operator RS & ( )
inline

Definition at line 37 of file ResourceHandle.h.

37 { return this->value(); }

◆ release()

RS& release ( )
inline

Definition at line 40 of file ResourceHandle.h.

Referenced by ResourceCollection::takebackResource().

41  {
42  RS& res = Base::value();
43  Base::reset();
44  return res;
45  }

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