11 #ifndef GAUDIKERNEL_GUARDS_H 12 #define GAUDIKERNEL_GUARDS_H 1 122 template <
class OBJECT,
class FUNCTION>
128 if ( svc && m_sc.isFailure() ) { m_sc = svc->handleErr( *obj, m_sc ); }
132 if ( svc ) { m_sc = svc->handle( *obj, e ); }
136 if ( svc ) { m_sc = svc->handle( *obj, e ); }
140 if ( svc ) { m_sc = svc->handle( *obj ); }
263 bool m_customEvtType =
false;
268 if ( m_customEvtType ) {
269 m_svc->
before( m_cevt, m_obj );
271 m_svc->
before( m_evt, m_obj );
274 if ( m_customEvtType ) {
275 m_svc->
before( m_cevt, m_objName );
277 m_svc->
before( m_evt, m_objName );
286 if ( m_customEvtType ) {
288 m_svc->
after( m_cevt, m_obj, *m_sc );
290 m_svc->
after( m_cevt, m_obj );
294 m_svc->
after( m_evt, m_obj, *m_sc );
296 m_svc->
after( m_evt, m_obj );
300 if ( m_customEvtType ) {
302 m_svc->
after( m_cevt, m_objName, *m_sc );
304 m_svc->
after( m_cevt, m_objName );
308 m_svc->
after( m_evt, m_objName, *m_sc );
310 m_svc->
after( m_evt, m_objName );
324 #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)
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)
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.
const StatusCode & code() const
Header file for std:chrono::duration-based Counters.
The abstract interface for exception handling service.