The Gaudi Framework  v30r3 (a5ef0a68)
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...
 
"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
 
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, 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
 
- Public Member Functions inherited from CommonMessaging< implements< IAuditor, IProperty > >
MSG::Level msgLevel () const
 get the cached level (originally extracted from the embedded MsgStream) More...
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream More...
 
MSG::Level outputLevel () const
 Backward compatibility function for getting the output level. More...
 
- Public Member Functions inherited from CommonMessagingBase
virtual ~CommonMessagingBase ()=default
 Virtual destructor. More...
 
const 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...
 

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 > >
MSG::Level setUpMessaging () const
 Set up local caches. More...
 
MSG::Level resetMessaging ()
 Reinitialize internal states. More...
 
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
using Factory = Gaudi::PluginService::Factory< IAuditor *(const std::string &, ISvcLocator *)>
 
- 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 4 of file CommonAuditor.cpp.

4  : Auditor( name, svcloc )
5 {
6  auto deprecated_property = [this]( Gaudi::Details::PropertyBase& p ) {
7  if ( m_customTypes.size() > 0 ) {
8  if ( m_types.size() > 0 ) {
9  error() << p.name() << " is deprecated, but both " << m_customTypes.name() << " and " << m_types.name()
10  << " used." << endmsg;
11  throw GaudiException( "Property CustomEventTypes is deprecated, but both CustomEventTypes and EventTypes used",
12  this->name(), StatusCode::FAILURE );
13  } else {
14  warning() << p.name() << " " << p.documentation() << endmsg;
16  }
17  }
18  };
19  m_customTypes.declareUpdateHandler( deprecated_property );
20 }
constexpr static const auto FAILURE
Definition: StatusCode.h:88
Define general base for Gaudi exception.
Gaudi::Property< std::vector< std::string > > m_types
Definition: CommonAuditor.h:53
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
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:55
const std::string & name() const override
Definition: Auditor.cpp:202
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:209

Member Function Documentation

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

Definition at line 40 of file CommonAuditor.cpp.

41 {
42  after( toStr( evt ), caller, sc );
43 }
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 36 of file CommonAuditor.cpp.

37 {
38  if ( caller ) after( toStr( evt ), caller->name(), sc );
39 }
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 48 of file CommonAuditor.cpp.

49 {
50  if ( i_auditEventType( evt ) ) i_after( evt, caller, sc );
51 }
bool i_auditEventType(const std::string &evt)
Check if we are requested to audit the passed event type.
Definition: CommonAuditor.h:43
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 44 of file CommonAuditor.cpp.

45 {
46  if ( caller ) after( evt, caller->name(), sc );
47 }
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 26 of file CommonAuditor.cpp.

26 { 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 22 of file CommonAuditor.cpp.

23 {
24  if ( caller ) before( toStr( evt ), caller->name() );
25 }
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 31 of file CommonAuditor.cpp.

32 {
33  if ( i_auditEventType( evt ) ) i_before( evt, caller );
34 }
bool i_auditEventType(const std::string &evt)
Check if we are requested to audit the passed event type.
Definition: CommonAuditor.h:43
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 27 of file CommonAuditor.cpp.

28 {
29  if ( caller ) before( evt, caller->name() );
30 }
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 43 of file CommonAuditor.h.

44  {
45  // Note: there is no way to extract from a Property type the type returned by
46  // value().
47  const std::vector<std::string>& v = m_types.value();
48  // we need to return true is the list is empty or when the list does't
49  // start by "none" and the list contain the event we got.
50  return v.empty() || ( ( v[0] != "none" ) && ( find( v.begin(), v.end(), evt ) != v.end() ) );
51  }
T empty(T...args)
Gaudi::Property< std::vector< std::string > > m_types
Definition: CommonAuditor.h:53
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 MemStatAuditor, ChronoAuditor, 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 55 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 53 of file CommonAuditor.h.


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