The Gaudi Framework  v33r1 (b1225454)
IMonitorSvc.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDIKERNEL_IMONITORSVC_H
12 #define GAUDIKERNEL_IMONITORSVC_H
13 
14 #include "GaudiKernel/IInterface.h"
15 #include <set>
16 #include <string>
17 
18 // forward declaration
19 namespace AIDA {
20  class IBaseHistogram;
21 }
22 class StatEntity;
23 
33 class GAUDI_API IMonitorSvc : virtual public IInterface {
34 public:
37 
45  virtual void declareInfo( const std::string& name, const bool& var, const std::string& desc,
46  const IInterface* owner ) = 0;
47  virtual void declareInfo( const std::string& name, const int& var, const std::string& desc,
48  const IInterface* owner ) = 0;
49  virtual void declareInfo( const std::string& name, const long& var, const std::string& desc,
50  const IInterface* owner ) = 0;
51  virtual void declareInfo( const std::string& name, const double& var, const std::string& desc,
52  const IInterface* owner ) = 0;
53  virtual void declareInfo( const std::string& name, const std::string& var, const std::string& desc,
54  const IInterface* owner ) = 0;
55  virtual void declareInfo( const std::string& name, const std::pair<double, double>& var, const std::string& desc,
56  const IInterface* owner ) = 0;
57  virtual void declareInfo( const std::string& name, const AIDA::IBaseHistogram* var, const std::string& desc,
58  const IInterface* owner ) = 0;
59  virtual void declareInfo( const std::string& name, const StatEntity& var, const std::string& desc,
60  const IInterface* owner ) = 0;
61  virtual void declareInfo( const std::string& name, const std::string& format, const void* var, int size,
62  const std::string& desc, const IInterface* owner ) = 0;
63 
68  virtual void undeclareInfo( const std::string& name, const IInterface* owner ) = 0;
72  virtual void undeclareAll( const IInterface* owner ) = 0;
73 
78  virtual std::set<std::string>* getInfos( const IInterface* owner = 0 ) = 0;
79 };
80 
81 #endif // GAUDIKERNEL_IMONITORSVC_H
constexpr auto size(const T &, Args &&...) noexcept
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)".
Definition: MsgStream.cpp:119
GaudiKernel.
Definition: Fill.h:20
STL class.
Definition of the IMonitorSvc interface, which publishes Gaudi variables to outside monitoring proces...
Definition: IMonitorSvc.h:33
Definition of the basic interface.
Definition: IInterface.h:254
#define DeclareInterfaceID(iface, major, minor)
Macro to declare the interface ID when using the new mechanism of extending and implementing interfac...
Definition: IInterface.h:23
backward compatible StatEntity class.
Definition: StatEntity.h:18
#define GAUDI_API
Definition: Kernel.h:81