DLG4::VolumeBuilders
A fluent interface for Geant4 geometry definition.
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
disableable_shared_from_this< T > Class Template Reference

#include <disableable_shared_from_this.hh>

Collaboration diagram for disableable_shared_from_this< T >:
[legend]

Public Member Functions

std::shared_ptr< T > shared_from_this ()
 
std::shared_ptr< const T > shared_from_this () const
 
void set_shared_from_this_enabled (bool enabled)
 

Protected Member Functions

 disableable_shared_from_this ()=default
 
virtual ~disableable_shared_from_this ()=default
 

Protected Attributes

std::atomic< bool > is_enabled_ {true}
 

Detailed Description

template<typename T>
class DLG4::Utilities::disableable_shared_from_this< T >

Definition at line 34 of file disableable_shared_from_this.hh.

Constructor & Destructor Documentation

◆ disableable_shared_from_this()

template<typename T >
disableable_shared_from_this ( )
protecteddefault

◆ ~disableable_shared_from_this()

template<typename T >
virtual ~disableable_shared_from_this ( )
protectedvirtualdefault

Member Function Documentation

◆ set_shared_from_this_enabled()

template<typename T >
void set_shared_from_this_enabled ( bool  enabled)
inline

Definition at line 60 of file disableable_shared_from_this.hh.

60 {
61 is_enabled_ = enabled;
62 }

◆ shared_from_this() [1/2]

template<typename T >
std::shared_ptr< T > shared_from_this ( )
inline

Definition at line 44 of file disableable_shared_from_this.hh.

44 {
45 if (is_enabled_) {
46 return std::enable_shared_from_this<T>::shared_from_this();
47 } else {
48 return nullptr;
49 }
50 }

◆ shared_from_this() [2/2]

template<typename T >
std::shared_ptr< const T > shared_from_this ( ) const
inline

Definition at line 52 of file disableable_shared_from_this.hh.

52 {
53 if (is_enabled_) {
54 return std::enable_shared_from_this<T>::shared_from_this();
55 } else {
56 return nullptr;
57 }
58 }

Member Data Documentation

◆ is_enabled_

template<typename T >
std::atomic<bool> is_enabled_ {true}
protected

Definition at line 37 of file disableable_shared_from_this.hh.

37{true};

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