1 #ifndef GAUDIKERNEL_GUARDS_H 2 #define GAUDIKERNEL_GUARDS_H 1 112 template <
class OBJECT,
class FUNCTION>
118 if ( svc && m_sc.isFailure() ) { m_sc = svc->handleErr( *obj, m_sc ); }
122 if ( svc ) { m_sc = svc->handle( *obj, e ); }
126 if ( svc ) { m_sc = svc->handle( *obj, e ); }
130 if ( svc ) { m_sc = svc->handle( *obj ); }
253 bool m_customEvtType =
false;
258 if ( m_customEvtType ) {
259 m_svc->
before( m_cevt, m_obj );
261 m_svc->
before( m_evt, m_obj );
264 if ( m_customEvtType ) {
265 m_svc->
before( m_cevt, m_objName );
267 m_svc->
before( m_evt, m_objName );
276 if ( m_customEvtType ) {
278 m_svc->
after( m_cevt, m_obj, *m_sc );
280 m_svc->
after( m_cevt, m_obj );
284 m_svc->
after( m_evt, m_obj, *m_sc );
286 m_svc->
after( m_evt, m_obj );
290 if ( m_customEvtType ) {
292 m_svc->
after( m_cevt, m_objName, *m_sc );
294 m_svc->
after( m_cevt, m_objName );
298 m_svc->
after( m_evt, m_objName, *m_sc );
300 m_svc->
after( m_evt, m_objName );
314 #endif // GAUDIKERNEL_GUARDS_H virtual void before(StandardEventType, INamedInterface *)=0
Audit the start of a standard "event".
Definition of the MsgStream class used to transmit messages.
IAuditor::StandardEventType m_evt
Event type (standard events)
Define general base for Gaudi exception.
const StatusCode & code() const
the result of function evaluation
StandardEventType
Defines the standard (= used by the framework) auditable event types.
IAuditor::CustomEventType m_cevt
Event type (custom events)
PropertyMgr & operator=(const PropertyMgr &)=delete
const StatusCode & code() const
This class is used for returning status codes from appropriate routines.
std::string m_objName
the guarded object name (if there is no INamedInterface)
The most simple guard - it execute the certain code withing typical "try {} catch" clause...
IInterface compliant class extending IInterface with the name() method.
ExceptionGuard(OBJECT obj, FUNCTION fun, MsgStream &log, IExceptionSvc *svc=0)
double fun(const std::vector< double > &x)
virtual void after(StandardEventType, INamedInterface *, const StatusCode &sc=StatusCode(StatusCode::SUCCESS, true))=0
Audit the end of a standard "event".
constexpr static const auto FAILURE
void reset(TYPE *ptr=nullptr)
Set the internal pointer to the passed one disposing of the old one.
It is a simple guard, which "locks" the scope for the Auditor Service is am exception-safe way...
A DataObject is the base class of any identifiable object on any data store.
The IAuditor is the interface implmented by the AlgAuditor base class.
Helper functions to set/get the application return code.
The abstract interface for exception handling service.