25 template <Gaudi::StateMachine::Transition TR>
26 class OutStreamTransition {
34 void operator() (ItemType &item);
43 void OutStreamTransition<Gaudi::StateMachine::INITIALIZE>::operator() (ItemType &item) {
44 const StatusCode sc = item.second->sysInitialize();
51 void OutStreamTransition<Gaudi::StateMachine::START>::operator() (ItemType &item) {
59 void OutStreamTransition<Gaudi::StateMachine::STOP>::operator() (ItemType &item) {
67 void OutStreamTransition<Gaudi::StateMachine::FINALIZE>::operator() (ItemType &item) {
68 const StatusCode sc = item.second->sysFinalize();
77 template <Gaudi::StateMachine::Transition TR>
79 OutStreamTransition<TR> trans(
msg());
80 std::for_each(m_outputStreams.begin(), m_outputStreams.end(), trans);
81 return trans.result();
93 m_algMgr = service(
"ApplicationMgr");
94 if (
UNLIKELY(!m_algMgr))
return Error(
"cannot retrieve IAlgManager");
97 if (
UNLIKELY(!m_evtMgr))
return Error(
"cannot retrieve IDataManagerSvc ");
99 std::for_each(m_outputStreamNames.begin(), m_outputStreamNames.end(),
102 return i_outStreamTransition<Gaudi::StateMachine::INITIALIZE>();
111 return i_outStreamTransition<Gaudi::StateMachine::START>();
120 bool analyse(
IRegistry* pRegistry,
int lvl)
override {
134 OutputStreamsCollector collector;
137 std::for_each(collector.names.begin(), collector.names.end(),
149 StatusCode sc = i_outStreamTransition<Gaudi::StateMachine::FINALIZE>();
152 m_outputStreams.clear();
164 StatusCode sc = i_outStreamTransition<Gaudi::StateMachine::STOP>();
175 if (m_outputStreams.find(algId) == m_outputStreams.end()) {
176 m_outputStreams[algId] = m_algMgr->algorithm(outStream);
177 if (!m_outputStreams[algId]) {
182 warning() <<
"OutputStream instance " << outStream.
name()
183 <<
" already added, ignoring " << outStream <<
endmsg;
Definition of the MsgStream class used to transmit messages.
Define general base for Gaudi exception.
Helper class to call the required OutputStream.
StatusCode finalize() override
Algorithm finalization.
StatusCode initialize() override
standard initialization method
bool isSuccess() const
Test for a status code of SUCCESS.
virtual const name_type & name() const =0
Name of the directory (or key)
bool isFailure() const
Test for a status code of FAILURE.
StatusCode i_outStreamTransition()
Helper function to call the transition on the contained OutputStreams.
Helper class to parse a string of format "type/name".
StatusCode stop() override
Algorithm finalization.
This class is used for returning status codes from appropriate routines.
StatusCode finalize() override
standard finalization method
#define DECLARE_ALGORITHM_FACTORY(x)
The IRegistry represents the entry door to the environment any data object residing in a transient da...
void i_addOutputStream(const Gaudi::Utils::TypeNameString &outStream)
Add a new algorithm to the list of OutputStreams.
Helper class to fill the internal map of OutputStreams.
StatusCode execute() override
Algorithm execution.
Generic data agent interface.
StatusCode start() override
Algorithm initialization.
StatusCode start() override
the default (empty) implementation of IStateful::start() method
StatusCode initialize() override
Algorithm initialization.
const std::string & name() const
StatusCode stop() override
the default (empty) implementation of IStateful::stop() method
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
static const std::string locationRoot()
Return the path in the Transient Store used to record the triggered instances.