The Gaudi Framework  v36r16 (ea80daf8)
Gaudi::Monitoring::Hub Struct Reference

Central entity in a Gaudi application that manages monitoring objects (i.e. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/Gaudi/MonitoringHub.h>

Collaboration diagram for Gaudi::Monitoring::Hub:

Classes

class  Entity
 Wrapper class for arbitrary monitoring objects. More...
 
struct  Sink
 Interface reporting services must implement. More...
 

Public Types

using json = nlohmann::json
 

Public Member Functions

 Hub ()
 
template<typename T >
void registerEntity (std::string c, std::string n, std::string t, T &ent)
 
void registerEntity (Entity ent)
 
template<typename T >
void removeEntity (T &ent)
 
void addSink (Sink *sink)
 
void removeSink (Sink *sink)
 

Private Attributes

std::vector< Sink * > m_sinks
 
std::map< void *, Entitym_entities
 

Detailed Description

Central entity in a Gaudi application that manages monitoring objects (i.e.

counters, histograms, etc.).

The Gaudi::Monitoring::Hub delegates the actual reports to services implementing the Gaudi::Monitoring::Hub::Sink interface.

Definition at line 73 of file MonitoringHub.h.

Member Typedef Documentation

◆ json

using Gaudi::Monitoring::Hub::json = nlohmann::json

Definition at line 74 of file MonitoringHub.h.

Constructor & Destructor Documentation

◆ Hub()

Gaudi::Monitoring::Hub::Hub ( )
inline

Definition at line 164 of file MonitoringHub.h.

164 { m_sinks.reserve( 5 ); }

Member Function Documentation

◆ addSink()

void Gaudi::Monitoring::Hub::addSink ( Sink sink)
inline

Definition at line 183 of file MonitoringHub.h.

183  {
185  [sink]( auto ent ) { sink->registerEntity( ent.second ); } );
186  m_sinks.push_back( sink );
187  }

◆ registerEntity() [1/2]

void Gaudi::Monitoring::Hub::registerEntity ( Entity  ent)
inline

Definition at line 170 of file MonitoringHub.h.

170  {
171  std::for_each( begin( m_sinks ), end( m_sinks ), [ent]( auto sink ) { sink->registerEntity( ent ); } );
172  m_entities.insert( { ent.id(), std::move( ent ) } );
173  }

◆ registerEntity() [2/2]

template<typename T >
void Gaudi::Monitoring::Hub::registerEntity ( std::string  c,
std::string  n,
std::string  t,
T &  ent 
)
inline

Definition at line 167 of file MonitoringHub.h.

167  {
168  registerEntity( { std::move( c ), std::move( n ), std::move( t ), ent } );
169  }

◆ removeEntity()

template<typename T >
void Gaudi::Monitoring::Hub::removeEntity ( T &  ent)
inline

Definition at line 175 of file MonitoringHub.h.

175  {
176  auto it = m_entities.find( &ent );
177  if ( it != m_entities.end() ) {
178  std::for_each( begin( m_sinks ), end( m_sinks ), [&it]( auto sink ) { sink->removeEntity( it->second ); } );
179  m_entities.erase( it );
180  }
181  }

◆ removeSink()

void Gaudi::Monitoring::Hub::removeSink ( Sink sink)
inline

Definition at line 188 of file MonitoringHub.h.

188  {
189  auto it = std::find( begin( m_sinks ), end( m_sinks ), sink );
190  if ( it != m_sinks.end() ) m_sinks.erase( it );
191  }

Member Data Documentation

◆ m_entities

std::map<void*, Entity> Gaudi::Monitoring::Hub::m_entities
private

Definition at line 195 of file MonitoringHub.h.

◆ m_sinks

std::vector<Sink*> Gaudi::Monitoring::Hub::m_sinks
private

Definition at line 194 of file MonitoringHub.h.


The documentation for this struct was generated from the following file:
std::for_each
T for_each(T... args)
Gaudi::Monitoring::Hub::m_sinks
std::vector< Sink * > m_sinks
Definition: MonitoringHub.h:194
std::move
T move(T... args)
std::find
T find(T... args)
gaudirun.c
c
Definition: gaudirun.py:527
bug_34121.t
t
Definition: bug_34121.py:30
CLHEP::begin
double * begin(CLHEP::HepVector &v)
Definition: TupleAlg.cpp:45
Gaudi::Monitoring::Hub::registerEntity
void registerEntity(std::string c, std::string n, std::string t, T &ent)
Definition: MonitoringHub.h:167
GaudiPluginService.cpluginsvc.n
n
Definition: cpluginsvc.py:235
Gaudi::Monitoring::Hub::m_entities
std::map< void *, Entity > m_entities
Definition: MonitoringHub.h:195
IOTest.end
end
Definition: IOTest.py:123