1 #ifndef GAUDIKERNEL_GUARDS_H 2 #define GAUDIKERNEL_GUARDS_H 1 115 template <
class OBJECT,
class FUNCTION>
122 if ( svc && m_sc.isFailure() ) {
123 m_sc = svc->handleErr( *obj, m_sc );
129 m_sc = svc->handle( *obj, e );
135 m_sc = svc->handle( *obj, e );
141 m_sc = svc->handle( *obj );
266 bool m_customEvtType =
false;
272 if ( m_customEvtType ) {
273 m_svc->
before( m_cevt, m_obj );
275 m_svc->
before( m_evt, m_obj );
278 if ( m_customEvtType ) {
279 m_svc->
before( m_cevt, m_objName );
281 m_svc->
before( m_evt, m_objName );
291 if ( m_customEvtType ) {
293 m_svc->
after( m_cevt, m_obj, *m_sc );
295 m_svc->
after( m_cevt, m_obj );
299 m_svc->
after( m_evt, m_obj, *m_sc );
301 m_svc->
after( m_evt, m_obj );
305 if ( m_customEvtType ) {
307 m_svc->
after( m_cevt, m_objName, *m_sc );
309 m_svc->
after( m_cevt, m_objName );
313 m_svc->
after( m_evt, m_objName, *m_sc );
315 m_svc->
after( m_evt, m_objName );
329 #endif // GAUDIKERNEL_GUARDS_H virtual void before(StandardEventType, INamedInterface *)=0
Audit the start of a standard "event".
constexpr static const auto FAILURE
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".
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.