The Gaudi Framework  v32r2 (46d42edc)
CounterHolder< BASE > Class Template Reference

#include <GaudiKernel/CounterHolder.h>

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

Public Member Functions

void declareCounter (const std::string &tag, Gaudi::Accumulators::PrintableCounter &r)
 
const Gaudi::Accumulators::PrintableCounterfindCounter (const std::string &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 > > m_counters
 
std::mutex m_mutex
 

Detailed Description

template<class BASE>
class CounterHolder< BASE >

Definition at line 16 of file CounterHolder.h.

Member Function Documentation

◆ clearCounters()

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

Definition at line 52 of file CounterHolder.h.

52  {
54  m_counters.clear();
55  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T lock(T... args)
T clear(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

◆ declareCounter()

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

Definition at line 23 of file CounterHolder.h.

23  {
25  m_counters.emplace( tag, r );
26  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T lock(T... args)
T emplace(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

◆ findCounter()

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

Definition at line 28 of file CounterHolder.h.

28  {
30  auto p = m_counters.find( tag );
31  return p != m_counters.end() ? &p->second.get() : nullptr;
32  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T end(T... args)
T lock(T... args)
T find(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

◆ forEachCounter()

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

Definition at line 35 of file CounterHolder.h.

35  {
38  [f = std::forward<Callable>( f )]( const auto& p ) { std::invoke( f, p.first, p.second.get() ); } );
39  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T end(T... args)
T lock(T... args)
T begin(T... args)
T for_each(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

◆ nCounters()

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

Definition at line 41 of file CounterHolder.h.

41  {
43  return m_counters.size();
44  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T lock(T... args)
T size(T... args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

◆ nOfCountersToBePrinted()

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

Definition at line 46 of file CounterHolder.h.

46  {
48  return count_if( begin( m_counters ), end( m_counters ),
49  []( const auto& c ) { return c.second.get().toBePrinted(); } );
50  }
std::mutex m_mutex
Definition: CounterHolder.h:59
T lock(T... args)
def end
Definition: IOTest.py:113
T count_if(T... args)
AttribStringParser::Iterator begin(const AttribStringParser &parser)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:58

Member Data Documentation

◆ m_counters

Definition at line 58 of file CounterHolder.h.

◆ m_mutex

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

Definition at line 59 of file CounterHolder.h.


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