Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (f31105fd)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IAuditor.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 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 #pragma once
12 
13 // Include files
15 #include <array>
16 #include <string>
17 
27 class GAUDI_API IAuditor : virtual public INamedInterface {
28 public:
31 
33  enum StandardEventType { Initialize, ReInitialize, Execute, Finalize, Start, Stop, ReStart };
35  friend const char* toStr( IAuditor::StandardEventType e ) {
37  { "Initialize", "ReInitialize", "Execute", "Finalize", "Start", "Stop", "ReStart" } };
38  return e <= IAuditor::StandardEventType::ReStart ? s_tbl[e] : nullptr;
39  }
40  friend std::ostream& operator<<( std::ostream& s, IAuditor::StandardEventType e ) { return s << toStr( e ); }
41 
48 
50  virtual void before( StandardEventType, INamedInterface* ) = 0;
52  virtual void before( StandardEventType, const std::string& ) = 0;
53 
55  virtual void before( CustomEventTypeRef, INamedInterface* ) = 0;
57  virtual void before( CustomEventTypeRef, const std::string& ) = 0;
58 
62  virtual void after( StandardEventType, const std::string&, const StatusCode& sc = StatusCode::SUCCESS ) = 0;
63 
67  virtual void after( CustomEventTypeRef, const std::string&, const StatusCode& sc = StatusCode::SUCCESS ) = 0;
68 
70  virtual bool isEnabled() const = 0;
71 
73  virtual StatusCode sysInitialize() = 0;
74 
76  virtual StatusCode sysFinalize() = 0;
77 };
IAuditor::sysFinalize
virtual StatusCode sysFinalize()=0
Used by AuditorSvc.
IAuditor::toStr
friend const char * toStr(IAuditor::StandardEventType e)
Simple mapping function from IAuditor::StandardEventType to string.
Definition: IAuditor.h:35
std::string
STL class.
IAuditor::DeclareInterfaceID
DeclareInterfaceID(IAuditor, 4, 0)
InterfaceID.
IAuditor::after
virtual void after(CustomEventTypeRef, const std::string &, const StatusCode &sc=StatusCode::SUCCESS)=0
Audit the end of a custom "event" for callers that do not implement INamedInterface.
gaudirun.s
string s
Definition: gaudirun.py:346
IAuditor::sysInitialize
virtual StatusCode sysInitialize()=0
Used by AuditorSvc.
IAuditor::before
virtual void before(CustomEventTypeRef, const std::string &)=0
Audit the start of a custom "event" for callers that do not implement INamedInterface.
IAuditor::before
virtual void before(CustomEventTypeRef, INamedInterface *)=0
Audit the start of a custom "event".
IAuditor::before
virtual void before(StandardEventType, INamedInterface *)=0
Audit the start of a standard "event".
INamedInterface.h
StatusCode
Definition: StatusCode.h:65
IAuditor::Stop
@ Stop
Definition: IAuditor.h:33
IAuditor::after
virtual void after(StandardEventType, INamedInterface *, const StatusCode &sc=StatusCode::SUCCESS)=0
Audit the end of a standard "event".
std::ostream
STL class.
IAuditor::CustomEventTypeRef
const CustomEventType & CustomEventTypeRef
Used in function calls for optimization purposes.
Definition: IAuditor.h:47
IAuditor::before
virtual void before(StandardEventType, const std::string &)=0
Audit the start of a standard "event" for callers that do not implement INamedInterface.
std::array
STL class.
INamedInterface
Definition: INamedInterface.h:25
IAuditor::CustomEventType
std::string CustomEventType
Type used to allow users to specify a custom event to be audit.
Definition: IAuditor.h:45
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
IAuditor::isEnabled
virtual bool isEnabled() const =0
Tell if the auditor is enabled or not.
IAuditor::StandardEventType
StandardEventType
Defines the standard (= used by the framework) auditable event types.
Definition: IAuditor.h:33
IAuditor::after
virtual void after(StandardEventType, const std::string &, const StatusCode &sc=StatusCode::SUCCESS)=0
Audit the end of a standard "event" for callers that do not implement INamedInterface.
IAuditor::operator<<
friend std::ostream & operator<<(std::ostream &s, IAuditor::StandardEventType e)
Definition: IAuditor.h:40
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
IAuditor
Definition: IAuditor.h:27
IAuditor::after
virtual void after(CustomEventTypeRef, INamedInterface *, const StatusCode &sc=StatusCode::SUCCESS)=0
Audit the end of a custom "event".