The Gaudi Framework  v29r0 (ff2e7097)
CommonAuditor Class Referenceabstract

Base class with common functionalities shared by few auditor implementations. More...

#include <src/CommonAuditor.h>

Inheritance diagram for CommonAuditor:
Collaboration diagram for CommonAuditor:

Public Member Functions

 CommonAuditor (const std::string &name, ISvcLocator *svcloc)
 Constructor. More...
 
 ~CommonAuditor () override=default
 Destructor. More...
 
"before" Auditor hooks

The default behavior is to fall back on the version accepting 2 strings, which must be implemented in the derived class.

void before (StandardEventType evt, const std::string &caller) override
 
void before (StandardEventType evt, INamedInterface *caller) override
 
void before (CustomEventTypeRef evt, const std::string &caller) override
 
void before (CustomEventTypeRef evt, INamedInterface *caller) override
 
"after" Auditor hooks

The default behavior is to fall back on the version accepting 2 strings, which must be implemented in the derived class.

void after (StandardEventType evt, const std::string &caller, const StatusCode &sc) override
 
void after (StandardEventType evt, INamedInterface *caller, const StatusCode &sc) override
 
void after (CustomEventTypeRef evt, const std::string &caller, const StatusCode &sc) override
 
void after (CustomEventTypeRef evt, INamedInterface *caller, const StatusCode &sc) override
 
- Public Member Functions inherited from Auditor
 Auditor (const std::string &name, ISvcLocator *svcloc)
 Constructor. More...
 
 Auditor (const Auditor &a)=delete
 
Auditoroperator= (const Auditor &rhs)=delete
 
StatusCode sysInitialize () override
 Initialization method invoked by the framework. More...
 
StatusCode sysFinalize () override
 Finalization method invoked by the framework. More...
 
void before (StandardEventType, INamedInterface *) override
 The following methods are meant to be implemented by the child class... More...
 
void before (StandardEventType, const std::string &) override
 
void before (CustomEventTypeRef, INamedInterface *) override
 
void before (CustomEventTypeRef, const std::string &) override
 
void after (StandardEventType, INamedInterface *, const StatusCode &) override
 
void after (StandardEventType, const std::string &, const StatusCode &) override
 
void after (CustomEventTypeRef, INamedInterface *, const StatusCode &) override
 
void after (CustomEventTypeRef, const std::string &, const StatusCode &) override
 
void beforeInitialize (INamedInterface *) override
 
void afterInitialize (INamedInterface *) override
 
void beforeReinitialize (INamedInterface *) override
 
void afterReinitialize (INamedInterface *) override
 
void beforeExecute (INamedInterface *) override
 
void afterExecute (INamedInterface *, const StatusCode &) override
 
void beforeFinalize (INamedInterface *) override
 
void afterFinalize (INamedInterface *) override
 
void beforeBeginRun (INamedInterface *) override
 
void afterBeginRun (INamedInterface *) override
 
void beforeEndRun (INamedInterface *) override
 
void afterEndRun (INamedInterface *) override
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
const std::stringname () const override
 
bool isEnabled () const override
 
SmartIF< ISvcLocator > & serviceLocator () const override
 The standard service locator. More...
 
template<class T >
StatusCode service (const std::string &name, T *&svc, bool createIf=false) const
 Access a service by name, creating it if it doesn't already exist. More...
 
template<class T = IService>
SmartIF< T > service (const std::string &name, bool createIf=false) const
 
StatusCode setProperties ()
 Set the auditor's properties. More...
 
- Public Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 PropertyHolder ()=default
 
 ~PropertyHolder () override=default
 
Gaudi::Details::PropertyBasedeclareProperty (Gaudi::Details::PropertyBase &prop)
 Declare a property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none")
 Helper to wrap a regular data member and use it as a regular property. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, TYPE &value, const std::string &doc="none") const
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, Gaudi::Property< TYPE, VERIFIER, HANDLERS > &prop, const std::string &doc="none")
 Declare a PropertyBase instance setting name and documentation. More...
 
Gaudi::Details::PropertyBasedeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="")
 Declare a remote property. More...
 
StatusCode setProperty (const Gaudi::Details::PropertyBase &p) override
 set the property form another property More...
 
StatusCode setProperty (const std::string &s) override
 set the property from the formatted string More...
 
StatusCode setProperty (const std::string &n, const std::string &v) override
 set the property from name and the value More...
 
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value More...
 
StatusCode getProperty (Gaudi::Details::PropertyBase *p) const override
 get the property More...
 
const Gaudi::Details::PropertyBasegetProperty (const std::string &name) const override
 get the property by name More...
 
StatusCode getProperty (const std::string &n, std::string &v) const override
 convert the property to the string More...
 
const std::vector< Gaudi::Details::PropertyBase * > & getProperties () const override
 get all properties More...
 
bool hasProperty (const std::string &name) const override
 Return true if we have a property with the given name. More...
 
 PropertyHolder (const PropertyHolder &)=delete
 
PropertyHolderoperator= (const PropertyHolder &)=delete
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleBase &ref, const std::string &doc="none")
 Specializations for various GaudiHandles. More...
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, GaudiHandleArrayBase &ref, const std::string &doc="none")
 
Gaudi::Details::PropertyBasedeclareProperty (const std::string &name, DataObjectHandleBase &ref, const std::string &doc="none")
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service. More...
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream. More...
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts. More...
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS) More...
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL) More...
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR) More...
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING) More...
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG) More...
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE) More...
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO) More...
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream More...
 
MSG::Level outputLevel () const __attribute__((deprecated))
 Backward compatibility function for getting the output level. More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 

Protected Member Functions

virtual void i_before (CustomEventTypeRef evt, const std::string &caller)=0
 catch all "before" method, implemented in the derived class More...
 
virtual void i_after (CustomEventTypeRef evt, const std::string &caller, const StatusCode &sc)=0
 catch all "after" method, implemented in the derived class More...
 
bool i_auditEventType (const std::string &evt)
 Check if we are requested to audit the passed event type. More...
 
- Protected Member Functions inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
Gaudi::Details::PropertyBaseproperty (const std::string &name) const
 
- Protected Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
void updateMsgStreamOutputLevel (int level)
 Update the output level of the cached MsgStream. More...
 

Protected Attributes

Gaudi::Property< std::vector< std::string > > m_types
 
Gaudi::Property< std::vector< std::string > > m_customTypes
 

Additional Inherited Members

- Public Types inherited from Auditor
typedef Gaudi::PluginService::Factory< IAuditor *, const std::string &, ISvcLocator * > Factory
 
- Public Types inherited from PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
using PropertyHolderImpl = PropertyHolder< CommonMessaging< implements< IAuditor, IProperty > > >
 Typedef used to refer to this class from derived classes, as in. More...
 
- Public Types inherited from CommonMessaging< implements< IAuditor, IProperty > >
using base_class = CommonMessaging
 

Detailed Description

Base class with common functionalities shared by few auditor implementations.

Author
Marco Clemencic

Definition at line 8 of file CommonAuditor.h.

Constructor & Destructor Documentation

CommonAuditor::CommonAuditor ( const std::string name,
ISvcLocator svcloc 
)

Constructor.

Parameters
nameThe algorithm object's name
svclocA pointer to a service location service

Definition at line 3 of file CommonAuditor.cpp.

3  : Auditor( name, svcloc )
4 {
5  auto deprecated_property = [this]( Gaudi::Details::PropertyBase& p ) {
6  warning() << p.name() << " " << p.documentation() << endmsg;
8  };
9  m_customTypes.declareUpdateHandler( deprecated_property );
10 }
Gaudi::Property< std::vector< std::string > > m_types
Definition: CommonAuditor.h:55
Auditor(const std::string &name, ISvcLocator *svcloc)
Constructor.
Definition: Auditor.cpp:12
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
PropertyBase base class allowing PropertyBase* collections to be "homogeneous".
Definition: Property.h:32
Gaudi::Property< std::vector< std::string > > m_customTypes
Definition: CommonAuditor.h:57
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209
CommonAuditor::~CommonAuditor ( )
overridedefault

Destructor.

Member Function Documentation

void CommonAuditor::after ( StandardEventType  evt,
const std::string caller,
const StatusCode sc 
)
override

Definition at line 30 of file CommonAuditor.cpp.

31 {
32  after( toStr( evt ), caller, sc );
33 }
const char * toStr(IAuditor::StandardEventType e)
Simple mapping function from IAuditor::StandardEventType to string.
Definition: IAuditor.h:100
void after(StandardEventType evt, const std::string &caller, const StatusCode &sc) override
evt
Definition: IOTest.py:96
void CommonAuditor::after ( StandardEventType  evt,
INamedInterface caller,
const StatusCode sc 
)
override

Definition at line 26 of file CommonAuditor.cpp.

27 {
28  if ( caller ) after( toStr( evt ), caller->name(), sc );
29 }
const char * toStr(IAuditor::StandardEventType e)
Simple mapping function from IAuditor::StandardEventType to string.
Definition: IAuditor.h:100
void after(StandardEventType evt, const std::string &caller, const StatusCode &sc) override
virtual const std::string & name() const =0
Retrieve the name of the instance.
evt
Definition: IOTest.py:96
void CommonAuditor::after ( CustomEventTypeRef  evt,
const std::string caller,
const StatusCode sc 
)
override

Definition at line 38 of file CommonAuditor.cpp.

39 {
40  if ( i_auditEventType( evt ) ) i_after( evt, caller, sc );
41 }
bool i_auditEventType(const std::string &evt)
Check if we are requested to audit the passed event type.
Definition: CommonAuditor.h:45
virtual void i_after(CustomEventTypeRef evt, const std::string &caller, const StatusCode &sc)=0
catch all "after" method, implemented in the derived class
evt
Definition: IOTest.py:96
void CommonAuditor::after ( CustomEventTypeRef  evt,
INamedInterface caller,
const StatusCode sc 
)
override

Definition at line 34 of file CommonAuditor.cpp.

35 {
36  if ( caller ) after( evt, caller->name(), sc );
37 }
void after(StandardEventType evt, const std::string &caller, const StatusCode &sc) override
virtual const std::string & name() const =0
Retrieve the name of the instance.
evt
Definition: IOTest.py:96
void CommonAuditor::before ( StandardEventType  evt,
const std::string caller 
)
override

Definition at line 16 of file CommonAuditor.cpp.

16 { before( toStr( evt ), caller ); }
const char * toStr(IAuditor::StandardEventType e)
Simple mapping function from IAuditor::StandardEventType to string.
Definition: IAuditor.h:100
void before(StandardEventType evt, const std::string &caller) override
evt
Definition: IOTest.py:96
void CommonAuditor::before ( StandardEventType  evt,
INamedInterface caller 
)
override

Definition at line 12 of file CommonAuditor.cpp.

13 {
14  if ( caller ) before( toStr( evt ), caller->name() );
15 }
const char * toStr(IAuditor::StandardEventType e)
Simple mapping function from IAuditor::StandardEventType to string.
Definition: IAuditor.h:100
void before(StandardEventType evt, const std::string &caller) override
virtual const std::string & name() const =0
Retrieve the name of the instance.
evt
Definition: IOTest.py:96
void CommonAuditor::before ( CustomEventTypeRef  evt,
const std::string caller 
)
override

Definition at line 21 of file CommonAuditor.cpp.

22 {
23  if ( i_auditEventType( evt ) ) i_before( evt, caller );
24 }
bool i_auditEventType(const std::string &evt)
Check if we are requested to audit the passed event type.
Definition: CommonAuditor.h:45
virtual void i_before(CustomEventTypeRef evt, const std::string &caller)=0
catch all "before" method, implemented in the derived class
evt
Definition: IOTest.py:96
void CommonAuditor::before ( CustomEventTypeRef  evt,
INamedInterface caller 
)
override

Definition at line 17 of file CommonAuditor.cpp.

18 {
19  if ( caller ) before( evt, caller->name() );
20 }
void before(StandardEventType evt, const std::string &caller) override
virtual const std::string & name() const =0
Retrieve the name of the instance.
evt
Definition: IOTest.py:96
virtual void CommonAuditor::i_after ( CustomEventTypeRef  evt,
const std::string caller,
const StatusCode sc 
)
protectedpure virtual

catch all "after" method, implemented in the derived class

Implemented in ChronoAuditor, MemoryAuditor, and NameAuditor.

bool CommonAuditor::i_auditEventType ( const std::string evt)
inlineprotected

Check if we are requested to audit the passed event type.

Definition at line 45 of file CommonAuditor.h.

46  {
47  // Note: there is no way to extract from a Property type the type returned by
48  // value().
49  const std::vector<std::string>& v = m_types.value();
50  // we need to return true is the list is empty or when the list does't
51  // start by "none" and the list contain the event we got.
52  return v.empty() || ( ( v[0] != "none" ) && ( find( v.begin(), v.end(), evt ) != v.end() ) );
53  }
T empty(T...args)
Gaudi::Property< std::vector< std::string > > m_types
Definition: CommonAuditor.h:55
T end(T...args)
T find(T...args)
T begin(T...args)
evt
Definition: IOTest.py:96
virtual void CommonAuditor::i_before ( CustomEventTypeRef  evt,
const std::string caller 
)
protectedpure virtual

catch all "before" method, implemented in the derived class

Implemented in ChronoAuditor, MemStatAuditor, MemoryAuditor, and NameAuditor.

Member Data Documentation

Gaudi::Property<std::vector<std::string> > CommonAuditor::m_customTypes
protected
Initial value:
{
this, "CustomEventTypes", {}, "[[deprecated]] use EventTypes instead"}

Definition at line 57 of file CommonAuditor.h.

Gaudi::Property<std::vector<std::string> > CommonAuditor::m_types
protected
Initial value:
{
this, "EventTypes", {}, "list of event types to audit ([]=all, ['none']=none)"}

Definition at line 55 of file CommonAuditor.h.


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