The Gaudi Framework  master (181af51f)
Loading...
Searching...
No Matches
TestToolAlgFailure.cpp
Go to the documentation of this file.
1/***********************************************************************************\
2* (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3* *
4* This software is distributed under the terms of the Apache version 2 licence, *
5* copied verbatim in the file "LICENSE". *
6* *
7* In applying this licence, CERN does not waive the privileges and immunities *
8* granted to it by virtue of its status as an Intergovernmental Organization *
9* or submit itself to any jurisdiction. *
10\***********************************************************************************/
11// Include files
12
13// from Gaudi
15
16// local
17#include "TestToolAlgFailure.h"
18
19//-----------------------------------------------------------------------------
20// Implementation file for class : RichToolTest
21//
22// 2004-03-08 : Chris Jones
23//-----------------------------------------------------------------------------
24
25// Declaration of the Algorithm Factory
27
28//=============================================================================
29// Initialisation. Check parameters
30//=============================================================================
32
33 debug() << "Initialize" << endmsg;
34
36
37 // setup tool registry
38 // IAlgTool * mytool;
39 for ( const auto& i : m_tools ) {
40 info() << "Loading tool " << i << endmsg;
41 try {
42 IAlgTool* tmp = nullptr;
43 toolSvc()->retrieve( i, IAlgTool::interfaceID(), tmp ).orThrow( "failed to load tool " + i );
44 info() << "Tool loaded successfully" << endmsg;
45 } catch ( GaudiException& e ) {
46 if ( m_ignoreFailure ) {
47 warning() << "Got exception '" << e.what() << "'" << endmsg;
48 } else {
49 error() << "Got exception '" << e.what() << "'" << endmsg;
50 if ( m_throwException ) { throw; }
52 }
53 }
54 }
55
57}
58
59//=============================================================================
60// Main execution
61//=============================================================================
63
64 info() << "Execute" << endmsg;
65
67}
68
69//=============================================================================
70// Finalize
71//=============================================================================
73
74 info() << "Finalize" << endmsg;
75
76 return Algorithm::finalize();
77}
78
79//=============================================================================
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition MsgStream.h:198
#define DECLARE_COMPONENT(type)
MsgStream & error() const
shortcut for the method msgStream(MSG::ERROR)
MsgStream & warning() const
shortcut for the method msgStream(MSG::WARNING)
MsgStream & debug() const
shortcut for the method msgStream(MSG::DEBUG)
MsgStream & info() const
shortcut for the method msgStream(MSG::INFO)
StatusCode initialize() override
the default (empty) implementation of IStateful::initialize() method
Definition Algorithm.h:175
StatusCode finalize() override
the default (empty) implementation of IStateful::finalize() method
Definition Algorithm.h:181
SmartIF< IToolSvc > & toolSvc() const
The standard ToolSvc service, Return a pointer to the service if present.
Define general base for Gaudi exception.
const char * what() const override
method from std::exception
The interface implemented by the AlgTool base class.
Definition IAlgTool.h:29
static const InterfaceID & interfaceID()
Return an instance of InterfaceID identifying the interface.
Definition IInterface.h:234
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64
constexpr static const auto SUCCESS
Definition StatusCode.h:99
constexpr static const auto FAILURE
Definition StatusCode.h:100
Retrieve tools ignoring errors.
Gaudi::Property< std::vector< std::string > > m_tools
Gaudi::Property< bool > m_ignoreFailure
StatusCode initialize() override
Gaudi::Property< bool > m_throwException
StatusCode execute() override
StatusCode finalize() override