The Gaudi Framework  v31r0 (aeb156f0)
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
 
void clearCounters ()
 

Private Attributes

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

Detailed Description

template<class BASE>
class CounterHolder< BASE >

Definition at line 23 of file CounterHolder.h.

Member Function Documentation

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

Definition at line 54 of file CounterHolder.h.

54  {
56  m_counters.clear();
57  }
T lock(T...args)
T clear(T...args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:60
std::mutex m_countersMutex
Definition: CounterHolder.h:61
template<class BASE>
void CounterHolder< BASE >::declareCounter ( const std::string tag,
Gaudi::Accumulators::PrintableCounter r 
)
inline

Definition at line 30 of file CounterHolder.h.

30  {
32  m_counters.emplace( tag, r );
33  }
T lock(T...args)
T emplace(T...args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:60
std::mutex m_countersMutex
Definition: CounterHolder.h:61
template<class BASE>
const Gaudi::Accumulators::PrintableCounter* CounterHolder< BASE >::findCounter ( const std::string tag) const
inline

Definition at line 35 of file CounterHolder.h.

35  {
37  auto p = this->m_counters.find( tag );
38  return p != m_counters.end() ? &p->second.get() : nullptr;
39  }
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:60
std::mutex m_countersMutex
Definition: CounterHolder.h:61
template<class BASE>
template<typename Callable >
void CounterHolder< BASE >::forEachCounter ( Callable &&  f) const
inline

Definition at line 42 of file CounterHolder.h.

42  {
44  std::for_each( m_counters.begin(), m_counters.end(), [f = std::forward<Callable>( f )]( const auto& p ) {
45  Gaudi::invoke( f, p.first, p.second.get() );
46  } );
47  }
T end(T...args)
T lock(T...args)
T begin(T...args)
auto invoke(F &&f, ArgTypes &&...args) noexcept(noexcept(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))) -> decltype(detail2::INVOKE(std::forward< F >(f), std::forward< ArgTypes >(args)...))
Definition: invoke.h:82
T for_each(T...args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:60
std::mutex m_countersMutex
Definition: CounterHolder.h:61
template<class BASE>
int CounterHolder< BASE >::nCounters ( ) const
inline

Definition at line 49 of file CounterHolder.h.

49  {
51  return m_counters.size();
52  }
T lock(T...args)
T size(T...args)
std::map< std::string, std::reference_wrapper< Gaudi::Accumulators::PrintableCounter > > m_counters
Definition: CounterHolder.h:60
std::mutex m_countersMutex
Definition: CounterHolder.h:61

Member Data Documentation

Definition at line 60 of file CounterHolder.h.

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

Definition at line 61 of file CounterHolder.h.


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