Geant4-11
Static Public Member Functions | Private Types | Static Private Member Functions | Friends
G4ThreadLocalSingleton< void > Class Reference

#include <G4ThreadLocalSingleton.hh>

Static Public Member Functions

static void Clear ()
 
template<typename FuncT >
static fvector_t::iterator Insert (FuncT &&_func)
 

Private Types

using fvector_t = std::vector< std::function< void()> >
 

Static Private Member Functions

static fvector_tGetCallbacks ()
 
static G4MutexGetMutex ()
 

Friends

template<class T >
class G4ThreadLocalSingleton
 

Detailed Description

Definition at line 121 of file G4ThreadLocalSingleton.hh.

Member Typedef Documentation

◆ fvector_t

using G4ThreadLocalSingleton< void >::fvector_t = std::vector<std::function<void()> >
private

Definition at line 124 of file G4ThreadLocalSingleton.hh.

Member Function Documentation

◆ Clear()

void G4ThreadLocalSingleton< void >::Clear ( )
static

Definition at line 45 of file G4ThreadLocalSingleton.cc.

46{
47 G4AutoLock _lk{ GetMutex() };
48 for(auto itr : GetCallbacks())
49 itr();
50 GetCallbacks().clear();
51}

◆ GetCallbacks()

std::vector< std::function< void()> > & G4ThreadLocalSingleton< void >::GetCallbacks ( )
staticprivate

Definition at line 33 of file G4ThreadLocalSingleton.cc.

34{
35 static auto _instance = fvector_t{};
36 return _instance;
37}
std::vector< std::function< void()> > fvector_t

◆ GetMutex()

G4Mutex & G4ThreadLocalSingleton< void >::GetMutex ( )
staticprivate

Definition at line 39 of file G4ThreadLocalSingleton.cc.

40{
41 static G4Mutex _instance{};
42 return _instance;
43}
std::mutex G4Mutex
Definition: G4Threading.hh:81

◆ Insert()

template<typename FuncT >
static fvector_t::iterator G4ThreadLocalSingleton< void >::Insert ( FuncT &&  _func)
inlinestatic

Definition at line 136 of file G4ThreadLocalSingleton.hh.

137 {
138 G4AutoLock _lk{ GetMutex() };
139 return GetCallbacks().emplace(GetCallbacks().end(),
140 std::forward<FuncT>(_func));
141 }

Friends And Related Function Documentation

◆ G4ThreadLocalSingleton

template<class T >
friend class G4ThreadLocalSingleton
friend

Definition at line 127 of file G4ThreadLocalSingleton.hh.


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