The Gaudi Framework  v33r1 (b1225454)
CounterHolder< BASE > Class Template Reference

#include <GaudiKernel/CounterHolder.h>

Inheritance diagram for CounterHolder< BASE >:
Collaboration diagram for CounterHolder< BASE >:

Public Member Functions

void declareCounter (std::string tag, Gaudi::Accumulators::PrintableCounter &r)
 
const Gaudi::Accumulators::PrintableCounter * findCounter (std::string_view tag) const
 
template<typename Callable >
void forEachCounter (Callable &&f) const
 
int nCounters () const
 
std::size_t nOfCountersToBePrinted ()
 
void clearCounters ()
 

Private Attributes

std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
 
std::mutex m_mutex
 

Detailed Description

template<class BASE>
class CounterHolder< BASE >

Definition at line 25 of file CounterHolder.h.

Member Function Documentation

◆ clearCounters()

template<class BASE>
void CounterHolder< BASE >::clearCounters ( )
inline

Definition at line 61 of file CounterHolder.h.

61  {
62  auto lock = std::scoped_lock{m_mutex};
63  m_counters.clear();
64  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T lock(T... args)
T clear(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67

◆ declareCounter()

template<class BASE>
void CounterHolder< BASE >::declareCounter ( std::string  tag,
Gaudi::Accumulators::PrintableCounter &  r 
)
inline

Definition at line 32 of file CounterHolder.h.

32  {
33  auto lock = std::scoped_lock{m_mutex};
34  m_counters.emplace( std::move( tag ), r );
35  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T lock(T... args)
T move(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67
T emplace(T... args)

◆ findCounter()

template<class BASE>
const Gaudi::Accumulators::PrintableCounter* CounterHolder< BASE >::findCounter ( std::string_view  tag) const
inline

Definition at line 37 of file CounterHolder.h.

37  {
38  auto lock = std::scoped_lock{m_mutex};
39  auto p = m_counters.find( tag );
40  return p != m_counters.end() ? &p->second.get() : nullptr;
41  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T end(T... args)
T lock(T... args)
T find(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67

◆ forEachCounter()

template<class BASE>
template<typename Callable >
void CounterHolder< BASE >::forEachCounter ( Callable &&  f) const
inline

Definition at line 44 of file CounterHolder.h.

44  {
45  auto lock = std::scoped_lock{m_mutex};
47  [f = std::forward<Callable>( f )]( const auto& p ) { std::invoke( f, p.first, p.second.get() ); } );
48  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T end(T... args)
T lock(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67
T begin(T... args)
T for_each(T... args)

◆ nCounters()

template<class BASE>
int CounterHolder< BASE >::nCounters ( ) const
inline

Definition at line 50 of file CounterHolder.h.

50  {
51  auto lock = std::scoped_lock{m_mutex};
52  return m_counters.size();
53  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T lock(T... args)
T size(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67

◆ nOfCountersToBePrinted()

template<class BASE>
std::size_t CounterHolder< BASE >::nOfCountersToBePrinted ( )
inline

Definition at line 55 of file CounterHolder.h.

55  {
56  auto lock = std::scoped_lock{m_mutex};
57  return count_if( begin( m_counters ), end( m_counters ),
58  []( const auto& c ) { return c.second.get().toBePrinted(); } );
59  }
std::mutex m_mutex
Definition: CounterHolder.h:68
T lock(T... args)
def end
Definition: IOTest.py:123
T count_if(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter >, std::less<> > m_counters
Definition: CounterHolder.h:67
AttribStringParser::Iterator begin(const AttribStringParser &parser)

Member Data Documentation

◆ m_counters

template<class BASE>
std::map<std::string, std::reference_wrapper<Gaudi::Accumulators::PrintableCounter>, std::less<> > CounterHolder< BASE >::m_counters
private

Definition at line 67 of file CounterHolder.h.

◆ m_mutex

template<class BASE>
std::mutex CounterHolder< BASE >::m_mutex
mutableprivate

Definition at line 68 of file CounterHolder.h.


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