Gaudi Framework, version v25r0

Home   Generated: Mon Feb 17 2014
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Public Types | Public Member Functions | Protected Types | Protected Attributes | Private Member Functions | List of all members
MinimalEventLoopMgr Class Reference

This is the default processing manager of the application manager. More...

#include <MinimalEventLoopMgr.h>

Inheritance diagram for MinimalEventLoopMgr:
Inheritance graph
[legend]
Collaboration diagram for MinimalEventLoopMgr:
Collaboration graph
[legend]

Public Types

typedef std::list< SmartIF
< IAlgorithm > > 
ListAlg
 
typedef std::list< IAlgorithm * > ListAlgPtrs
 
typedef std::list< std::stringListName
 
typedef std::vector< std::stringVectorName
 
- Public Types inherited from extends1< Service, IEventProcessor >
typedef extends1 base_class
 Typedef to this class.
 
typedef extend_interfaces1
< IEventProcessor
extend_interfaces_base
 Typedef to the base of this class.
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.
 
- Public Types inherited from Service
typedef
Gaudi::PluginService::Factory2
< IService *, const
std::string &, ISvcLocator * > 
Factory
 
- Public Types inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
typedef CommonMessaging base_class
 
- Public Types inherited from implements3< IService, IProperty, IStateful >
typedef implements3 base_class
 Typedef to this class.
 
typedef extend_interfaces3
< IService, IProperty,
IStateful
extend_interfaces_base
 Typedef to the base of this class.
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.
 
- Public Types inherited from extend_interfaces3< I1, I2, I3 >
typedef mpl::fold< typename
I1::iid::iids::type, typename
mpl::fold< typename
I2::iid::iids::type, typename
I3::iid::iids::type,
mpl::insert< mpl::_1, mpl::_2 >
>::type, mpl::insert< mpl::_1,
mpl::_2 > >::type 
ext_iids
 MPL set of interfaces extended by this one.
 
- Public Types inherited from extend_interfaces1< IEventProcessor >
typedef
IEventProcessor::iid::iids::type 
ext_iids
 MPL set of interfaces extended by this one.
 

Public Member Functions

 MinimalEventLoopMgr (const std::string &nam, ISvcLocator *svcLoc)
 Standard Constructor.
 
virtual ~MinimalEventLoopMgr ()
 Standard Destructor.
 
virtual StatusCode initialize ()
 implementation of IService::initialize
 
virtual StatusCode start ()
 implementation of IService::start
 
virtual StatusCode stop ()
 implementation of IService::stop
 
virtual StatusCode finalize ()
 implementation of IService::finalize
 
virtual StatusCode reinitialize ()
 implementation of IService::reinitialize
 
virtual StatusCode restart ()
 implementation of IService::restart
 
virtual StatusCode nextEvent (int maxevt)
 implementation of IEventProcessor::nextEvent
 
virtual StatusCode executeEvent (void *par)
 implementation of IEventProcessor::executeEvent(void* par)
 
virtual StatusCode executeRun (int maxevt)
 implementation of IEventProcessor::executeRun( )
 
virtual StatusCode stopRun ()
 implementation of IEventProcessor::stopRun( )
 
void topAlgHandler (Property &p)
 Top algorithm List handler.
 
StatusCode decodeTopAlgs ()
 decodeTopAlgNameList & topAlgNameListHandler
 
void outStreamHandler (Property &p)
 Output stream List handler.
 
StatusCode decodeOutStreams ()
 decodeOutStreamNameList & outStreamNameListHandler
 
- Public Member Functions inherited from extends1< Service, IEventProcessor >
 extends1 (A1 a1, A2 a2, A3 a3)
 Templated constructor with 3 arguments.
 
 extends1 (A1 a1, A2 a2)
 Templated constructor with 2 arguments.
 
 extends1 (A1 a1)
 Templated constructor with 1 argument.
 
 extends1 ()
 Default constructor.
 
virtual void * i_cast (const InterfaceID &tid) const
 Implementation of IInterface::i_cast.
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)
 Implementation of IInterface::queryInterface.
 
virtual std::vector< std::stringgetInterfaceNames () const
 Implementation of IInterface::getInterfaceNames.
 
virtual ~extends1 ()
 Virtual destructor.
 
- Public Member Functions inherited from Service
virtual unsigned long release ()
 Release Interface instance.
 
virtual const std::stringname () const
 Retrieve name of the service.
 
virtual StatusCode configure ()
 
virtual StatusCode terminate ()
 
virtual Gaudi::StateMachine::State FSMState () const
 
virtual Gaudi::StateMachine::State targetFSMState () const
 
virtual StatusCode sysInitialize ()
 Initialize Service.
 
virtual StatusCode sysStart ()
 Initialize Service.
 
virtual StatusCode sysStop ()
 Initialize Service.
 
virtual StatusCode sysFinalize ()
 Finalize Service.
 
virtual StatusCode sysReinitialize ()
 Re-initialize the Service.
 
virtual StatusCode sysRestart ()
 Re-initialize the Service.
 
virtual StatusCode setProperty (const Property &p)
 
virtual StatusCode setProperty (const std::string &s)
 
virtual StatusCode setProperty (const std::string &n, const std::string &v)
 
virtual StatusCode getProperty (Property *p) const
 
virtual const PropertygetProperty (const std::string &name) const
 
virtual StatusCode getProperty (const std::string &n, std::string &v) const
 
virtual const std::vector
< Property * > & 
getProperties () const
 
template<class TYPE >
StatusCode setProperty (const std::string &name, const TYPE &value)
 set the property form the value
 
 Service (const std::string &name, ISvcLocator *svcloc)
 Standard Constructor.
 
SmartIF< ISvcLocator > & serviceLocator () const
 Retrieve pointer to service locator.
 
StatusCode setProperties ()
 Method for setting declared properties to the values specified for the job.
 
template<class T >
StatusCode service (const std::string &name, const T *&psvc, bool createIf=true) const
 Access a service by name, creating it if it doesn't already exist.
 
template<class T >
StatusCode service (const std::string &name, T *&psvc, bool createIf=true) const
 
template<class T >
StatusCode service (const std::string &svcType, const std::string &svcName, T *&psvc) const
 Access a service by name and type, creating it if it doesn't already exist.
 
template<class T >
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
 Declare the named property.
 
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
 Declare remote named properties.
 
SmartIF< IAuditorSvc > & auditorSvc () const
 The standard auditor service.May not be invoked before sysInitialize() has been invoked.
 
- Public Member Functions inherited from CommonMessaging< implements3< IService, IProperty, IStateful > >
 CommonMessaging (const A1 &a1, const A2 &a2, const A3 &a3)
 Templated constructor with 3 arguments.
 
 CommonMessaging (const A1 &a1, const A2 &a2)
 Templated constructor with 2 arguments.
 
 CommonMessaging (const A1 &a1)
 Templated constructor with 1 argument.
 
 CommonMessaging ()
 Default constructor.
 
virtual ~CommonMessaging ()
 Virtual destructor.
 
SmartIF< IMessageSvc > & msgSvc () const
 The standard message service.
 
MsgStreammsgStream () const
 Return an uninitialized MsgStream.
 
MsgStreammsgStream (const MSG::Level level) const
 Predefined configurable message stream for the efficient printouts.
 
MsgStreamalways () const
 shortcut for the method msgStream(MSG::ALWAYS)
 
MsgStreamfatal () const
 shortcut for the method msgStream(MSG::FATAL)
 
MsgStreamerr () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamerror () const
 shortcut for the method msgStream(MSG::ERROR)
 
MsgStreamwarning () const
 shortcut for the method msgStream(MSG::WARNING)
 
MsgStreaminfo () const
 shortcut for the method msgStream(MSG::INFO)
 
MsgStreamdebug () const
 shortcut for the method msgStream(MSG::DEBUG)
 
MsgStreamverbose () const
 shortcut for the method msgStream(MSG::VERBOSE)
 
MsgStreammsg () const
 shortcut for the method msgStream(MSG::INFO)
 
MSG::Level msgLevel () const
 get the output level from the embedded MsgStream
 
bool msgLevel (MSG::Level lvl) const
 get the output level from the embedded MsgStream
 
- Public Member Functions inherited from extend_interfaces1< IEventProcessor >
virtual ~extend_interfaces1 ()
 Virtual destructor.
 
- Public Member Functions inherited from IEventProcessor
 DeclareInterfaceID (IEventProcessor, 3, 0)
 InterfaceID.
 
- Public Member Functions inherited from IInterface
virtual unsigned long addRef ()=0
 Increment the reference count of Interface instance.
 
virtual unsigned long release ()=0
 Release Interface instance.
 
virtual unsigned long refCount () const =0
 Current reference count.
 
virtual ~IInterface ()
 Virtual destructor.
 

Protected Types

enum  State { OFFLINE, CONFIGURED, FINALIZED, INITIALIZED }
 

Protected Attributes

SmartIF< IAppMgrUIm_appMgrUI
 Reference to the IAppMgrUI interface of the application manager.
 
SmartIF< IIncidentSvcm_incidentSvc
 Reference to the incident service.
 
ListAlg m_topAlgList
 List of top level algorithms.
 
ListAlg m_outStreamList
 List of output streams.
 
std::string m_outStreamType
 Out Stream type.
 
StringArrayProperty m_topAlgNames
 List of top level algorithms names.
 
StringArrayProperty m_outStreamNames
 List of output stream names.
 
State m_state
 State of the object.
 
bool m_scheduledStop
 Scheduled stop of event processing.
 
SmartIF< IIncidentListenerm_abortEventListener
 Instance of the incident listener waiting for AbortEvent.
 
bool m_abortEvent
 Flag signalling that the event being processedhas to be aborted (skip all following top algs).
 
std::string m_abortEventSource
 Source of the AbortEvent incident.
 

Private Member Functions

 MinimalEventLoopMgr (const MinimalEventLoopMgr &)
 Fake copy constructor (never implemented).
 
MinimalEventLoopMgroperator= (const MinimalEventLoopMgr &)
 Fake assignment operator (never implemented).
 

Additional Inherited Members

- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface.
 
- Protected Member Functions inherited from Service
virtual ~Service ()
 Standard Destructor.
 
int outputLevel () const
 get the Service's output level
 

Detailed Description

This is the default processing manager of the application manager.

This object handles the minimal requirements needed by the application manager. It also is capable of handling a bunch of algorithms and output streams. However, they list may as well be empty.

Author
Markus Frank
Version
1.0

Definition at line 26 of file MinimalEventLoopMgr.h.

Member Typedef Documentation

Definition at line 29 of file MinimalEventLoopMgr.h.

Definition at line 30 of file MinimalEventLoopMgr.h.

Definition at line 31 of file MinimalEventLoopMgr.h.

Definition at line 32 of file MinimalEventLoopMgr.h.

Member Enumeration Documentation

Enumerator:
OFFLINE 
CONFIGURED 
FINALIZED 
INITIALIZED 

Definition at line 36 of file MinimalEventLoopMgr.h.

Constructor & Destructor Documentation

MinimalEventLoopMgr::MinimalEventLoopMgr ( const std::string nam,
ISvcLocator svcLoc 
)
MinimalEventLoopMgr::~MinimalEventLoopMgr ( )
virtual

Standard Destructor.

Definition at line 66 of file MinimalEventLoopMgr.cpp.

{
}
MinimalEventLoopMgr::MinimalEventLoopMgr ( const MinimalEventLoopMgr )
private

Fake copy constructor (never implemented).

Member Function Documentation

StatusCode MinimalEventLoopMgr::decodeOutStreams ( )

decodeOutStreamNameList & outStreamNameListHandler

Definition at line 539 of file MinimalEventLoopMgr.cpp.

{
if ( algMan.isValid() ) {
// Reset the existing Top Algorithm List
for (VectorName::const_iterator it = algNames.begin(); it != algNames.end(); it++) {
Gaudi::Utils::TypeNameString item(*it, m_outStreamType);
DEBMSG << "Creating " << m_outStreamType << (*it) << endmsg;
const bool CREATE = false;
SmartIF<IAlgorithm> os = algMan->algorithm( item, CREATE );
if (os.isValid()) {
DEBMSG << "Output Stream " << item.name() << " already exists" << endmsg;
}
else {
DEBMSG << "Creating Output Stream " << (*it) << endmsg;
StatusCode sc1 = algMan->createAlgorithm( item.type(), item.name(), ios );
if( !sc1.isSuccess() ) {
error() << "Unable to create Output Stream " << (*it) << endmsg;
return sc1;
}
os = ios; // manage reference counting
}
}
return sc;
}
}
return sc;
}
StatusCode MinimalEventLoopMgr::decodeTopAlgs ( )

decodeTopAlgNameList & topAlgNameListHandler

Definition at line 489 of file MinimalEventLoopMgr.cpp.

{
if ( algMan.isValid()) {
// Reset the existing Top Algorithm List
for (VectorName::const_iterator it = algNames.begin(); it != algNames.end(); it++) {
Gaudi::Utils::TypeNameString item(*it);
// Got the type and name. Now creating the algorithm, avoiding duplicate creation.
std::string item_name = item.name() + getGaudiThreadIDfromName(name());
const bool CREATE = false;
SmartIF<IAlgorithm> alg = algMan->algorithm(item_name, CREATE);
if (alg.isValid()) {
DEBMSG << "Top Algorithm " << item_name << " already exists" << endmsg;
}
else {
DEBMSG << "Creating Top Algorithm " << item.type() << " with name " << item_name << endmsg;
IAlgorithm *ialg = 0;
StatusCode sc1 = algMan->createAlgorithm(item.type(), item_name, ialg);
if( !sc1.isSuccess() ) {
error() << "Unable to create Top Algorithm " << item.type() << " with name " << item_name << endmsg;
return sc1;
}
alg = ialg; // manage reference counting
}
}
return sc;
}
}
return sc;
}
StatusCode MinimalEventLoopMgr::executeEvent ( void *  par)
virtual

implementation of IEventProcessor::executeEvent(void* par)

Implements IEventProcessor.

Reimplemented in EventLoopMgr.

Definition at line 389 of file MinimalEventLoopMgr.cpp.

{
bool eventfailed = false;
// Call the resetExecuted() method of ALL "known" algorithms
// (before we were reseting only the topalgs)
if (LIKELY(algMan.isValid())) {
const ListAlgPtrs& allAlgs = algMan->getAlgorithms() ;
for( ListAlgPtrs::const_iterator ialg = allAlgs.begin() ; allAlgs.end() != ialg ; ++ialg ) {
if (LIKELY(0 != *ialg)) (*ialg)->resetExecuted();
}
}
// Get the IProperty interface of the ApplicationMgr to pass it to RetCodeGuard
// Call the execute() method of all top algorithms
for (ListAlg::iterator ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
try {
DEBMSG << "AbortEvent incident fired by "
m_abortEvent = false;
sc.ignore();
break;
}
RetCodeGuard rcg(appmgr, Gaudi::ReturnCode::UnhandledException);
sc = (*ita)->sysExecute();
rcg.ignore(); // disarm the guard
} catch ( const GaudiException& Exception ) {
fatal() << ".executeEvent(): Exception with tag=" << Exception.tag()
<< " thrown by " << (*ita)->name() << endmsg;
error() << Exception << endmsg;
} catch ( const std::exception& Exception ) {
fatal() << ".executeEvent(): Standard std::exception thrown by "
<< (*ita)->name() << endmsg;
error() << Exception.what() << endmsg;
} catch(...) {
fatal() << ".executeEvent(): UNKNOWN Exception thrown by "
<< (*ita)->name() << endmsg;
}
if (UNLIKELY(!sc.isSuccess())) {
warning() << "Execution of algorithm " << (*ita)->name() << " failed" << endmsg;
eventfailed = true;
}
}
// ensure that the abortEvent flag is cleared before the next event
DEBMSG << "AbortEvent incident fired by " << m_abortEventSource << endmsg;
m_abortEvent = false;
}
// Call the execute() method of all output streams
for (ListAlg::iterator ito = m_outStreamList.begin(); ito != m_outStreamList.end(); ito++ ) {
(*ito)->resetExecuted();
sc = (*ito)->sysExecute();
if (UNLIKELY(!sc.isSuccess())) {
warning() << "Execution of output stream " << (*ito)->name() << " failed" << endmsg;
eventfailed = true;
}
}
// Check if there was an error processing current event
if (UNLIKELY(eventfailed)){
error() << "Error processing event loop." << endmsg;
}
}
StatusCode MinimalEventLoopMgr::executeRun ( int  maxevt)
virtual

implementation of IEventProcessor::executeRun( )

Implements IEventProcessor.

Reimplemented in EventLoopMgr.

Definition at line 329 of file MinimalEventLoopMgr.cpp.

{
bool eventfailed = false;
// Call the beginRun() method of all top algorithms
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysBeginRun();
if (!sc.isSuccess()) {
warning() << "beginRun() of algorithm " << (*ita)->name() << " failed" << endmsg;
eventfailed = true;
}
}
// Call now the nextEvent(...)
sc = nextEvent(maxevt);
if (!sc.isSuccess()) {
eventfailed = true;
}
// Call the endRun() method of all top algorithms
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysEndRun();
if (!sc.isSuccess()) {
warning() << "endRun() of algorithm " << (*ita)->name() << " failed" << endmsg;
eventfailed = true;
}
}
if (eventfailed) {
}
else {
}
}
StatusCode MinimalEventLoopMgr::finalize ( )
virtual

implementation of IService::finalize

Reimplemented from Service.

Reimplemented in EventLoopMgr.

Definition at line 264 of file MinimalEventLoopMgr.cpp.

{
// Call the finalize() method of all top algorithms
for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysFinalize();
if( !sc.isSuccess() ) {
warning() << "Finalization of algorithm " << (*ita)->name() << " failed" << endmsg;
}
}
// Call the finalize() method of all Output streams
for ( ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysFinalize();
if( !sc.isSuccess() ) {
warning() << "Finalization of algorithm " << (*ita)->name() << " failed" << endmsg;
}
}
// release all top algorithms
for ( ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
if (algMan->removeAlgorithm(*ita).isFailure()) {
warning() << "Problems removing Algorithm " << (*ita)->name() << endmsg;
}
}
// release all output streams
for ( ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
(*ita)->release();
}
if ( sc.isSuccess() ) m_state = FINALIZED;
m_abortEventListener = 0; // release
m_incidentSvc = 0; // release
m_appMgrUI = 0; // release
if (sc.isFailure()) {
error() << "Problems finalizing Service base class" << endmsg;
}
return scRet;
}
StatusCode MinimalEventLoopMgr::initialize ( )
virtual

implementation of IService::initialize

Reimplemented from Service.

Reimplemented in EventLoopMgr.

Definition at line 73 of file MinimalEventLoopMgr.cpp.

{
if ( !m_appMgrUI.isValid() ) {
}
if ( !sc.isSuccess() ) {
error() << "Failed to initialize Service Base class." << endmsg;
}
if ( ! prpMgr.isValid() ) {
error() << "Error retrieving AppMgr interface IProperty." << endmsg;
}
else {
if ( m_topAlgNames.value().size() == 0 ) {
setProperty(prpMgr->getProperty("TopAlg")).ignore();
}
if ( m_outStreamNames.value().size() == 0 ) {
setProperty(prpMgr->getProperty("OutStream")).ignore();
}
}
// Get the references to the services that are needed by the ApplicationMgr itself
m_incidentSvc = serviceLocator()->service("IncidentSvc");
fatal() << "Error retrieving IncidentSvc." << endmsg;
}
// The state is changed at this moment to allow decodeXXXX() to do something
//--------------------------------------------------------------------------------------------
// Create output streams. Do not initialize them yet.
// The state is updated temporarily in order to enable the handler, which
// is also triggered by a change to the "OutputStream" Property.
//--------------------------------------------------------------------------------------------
if ( !sc.isSuccess() ) {
error() << "Failed to initialize Output streams." << endmsg;
return sc;
}
//--------------------------------------------------------------------------------------------
// Create all needed Top Algorithms. Do not initialize them yet.
// The state is updated temporarily in order to enable the handler, which
// is also triggered by a change to the "TopAlg" Property.
//--------------------------------------------------------------------------------------------
sc = decodeTopAlgs();
if ( !sc.isSuccess() ) {
error() << "Failed to initialize Top Algorithms streams." << endmsg;
return sc;
}
// Initialize all the new TopAlgs. In fact Algorithms are protected against getting
// initialized twice.
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysInitialize();
if( !sc.isSuccess() ) {
error() << "Unable to initialize Algorithm: " << (*ita)->name() << endmsg;
return sc;
}
}
for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysInitialize();
if( !sc.isSuccess() ) {
error() << "Unable to initialize Output Stream: " << (*ita)->name() << endmsg;
return sc;
}
}
}
StatusCode MinimalEventLoopMgr::nextEvent ( int  maxevt)
virtual

implementation of IEventProcessor::nextEvent

Implements IEventProcessor.

Reimplemented in EventLoopMgr.

Definition at line 320 of file MinimalEventLoopMgr.cpp.

{
error() << "This method cannot be called on an object of type "
<< System::typeinfoName(typeid(*this)) << endmsg;
}
MinimalEventLoopMgr& MinimalEventLoopMgr::operator= ( const MinimalEventLoopMgr )
private

Fake assignment operator (never implemented).

void MinimalEventLoopMgr::outStreamHandler ( Property p)

Output stream List handler.

Definition at line 528 of file MinimalEventLoopMgr.cpp.

{
if ( !(decodeOutStreams( )).isSuccess() ) {
throw GaudiException("Failed to initialize output streams.",
"MinimalEventLoopMgr::outStreamHandler",
}
}
StatusCode MinimalEventLoopMgr::reinitialize ( )
virtual

implementation of IService::reinitialize

Reimplemented from Service.

Reimplemented in EventLoopMgr.

Definition at line 213 of file MinimalEventLoopMgr.cpp.

{
// Reinitialize all the TopAlgs.
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysReinitialize();
if( !sc.isSuccess() ) {
error() << "Unable to reinitialize Algorithm: " << (*ita)->name() << endmsg;
return sc;
}
}
for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysReinitialize();
if( !sc.isSuccess() ) {
error() << "Unable to reinitialize Output Stream: " << (*ita)->name() << endmsg;
return sc;
}
}
return sc;
}
StatusCode MinimalEventLoopMgr::restart ( )
virtual

implementation of IService::restart

Reimplemented from Service.

Definition at line 238 of file MinimalEventLoopMgr.cpp.

{
// Restart all the TopAlgs.
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysRestart();
if( !sc.isSuccess() ) {
error() << "Unable to restart Algorithm: " << (*ita)->name() << endmsg;
return sc;
}
}
for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysRestart();
if( !sc.isSuccess() ) {
error() << "Unable to restart Output Stream: " << (*ita)->name() << endmsg;
return sc;
}
}
return sc;
}
StatusCode MinimalEventLoopMgr::start ( )
virtual

implementation of IService::start

Reimplemented from Service.

Definition at line 158 of file MinimalEventLoopMgr.cpp.

{
if ( ! sc.isSuccess() ) return sc;
// Start all the new TopAlgs. In fact Algorithms are protected against getting
// started twice.
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysStart();
if( !sc.isSuccess() ) {
error() << "Unable to start Algorithm: " << (*ita)->name() << endmsg;
return sc;
}
}
for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysStart();
if( !sc.isSuccess() ) {
error() << "Unable to start Output Stream: " << (*ita)->name() << endmsg;
return sc;
}
}
}
StatusCode MinimalEventLoopMgr::stop ( )
virtual

implementation of IService::stop

Reimplemented from Service.

Reimplemented in EventLoopMgr.

Definition at line 185 of file MinimalEventLoopMgr.cpp.

{
// Stop all the TopAlgs. In fact Algorithms are protected against getting
// stopped twice.
for (ita = m_topAlgList.begin(); ita != m_topAlgList.end(); ita++ ) {
sc = (*ita)->sysStop();
if( !sc.isSuccess() ) {
error() << "Unable to stop Algorithm: " << (*ita)->name() << endmsg;
return sc;
}
}
for (ita = m_outStreamList.begin(); ita != m_outStreamList.end(); ita++ ) {
sc = (*ita)->sysStop();
if( !sc.isSuccess() ) {
error() << "Unable to stop Output Stream: " << (*ita)->name() << endmsg;
return sc;
}
}
return Service::stop();
}
StatusCode MinimalEventLoopMgr::stopRun ( )
virtual

implementation of IEventProcessor::stopRun( )

Implements IEventProcessor.

Definition at line 464 of file MinimalEventLoopMgr.cpp.

{
// Set the application return code
error() << "Could not set return code of the application ("
}
}
void MinimalEventLoopMgr::topAlgHandler ( Property p)

Top algorithm List handler.

Definition at line 478 of file MinimalEventLoopMgr.cpp.

{
if ( !(decodeTopAlgs( )).isSuccess() ) {
throw GaudiException("Failed to initialize Top Algorithms streams.",
"MinimalEventLoopMgr::topAlgHandler",
}
}

Member Data Documentation

bool MinimalEventLoopMgr::m_abortEvent
protected

Flag signalling that the event being processedhas to be aborted (skip all following top algs).

Definition at line 59 of file MinimalEventLoopMgr.h.

SmartIF<IIncidentListener> MinimalEventLoopMgr::m_abortEventListener
protected

Instance of the incident listener waiting for AbortEvent.

Definition at line 56 of file MinimalEventLoopMgr.h.

std::string MinimalEventLoopMgr::m_abortEventSource
protected

Source of the AbortEvent incident.

Definition at line 61 of file MinimalEventLoopMgr.h.

SmartIF<IAppMgrUI> MinimalEventLoopMgr::m_appMgrUI
protected

Reference to the IAppMgrUI interface of the application manager.

Definition at line 38 of file MinimalEventLoopMgr.h.

SmartIF<IIncidentSvc> MinimalEventLoopMgr::m_incidentSvc
protected

Reference to the incident service.

Definition at line 40 of file MinimalEventLoopMgr.h.

ListAlg MinimalEventLoopMgr::m_outStreamList
protected

List of output streams.

Definition at line 44 of file MinimalEventLoopMgr.h.

StringArrayProperty MinimalEventLoopMgr::m_outStreamNames
protected

List of output stream names.

Definition at line 50 of file MinimalEventLoopMgr.h.

std::string MinimalEventLoopMgr::m_outStreamType
protected

Out Stream type.

Definition at line 46 of file MinimalEventLoopMgr.h.

bool MinimalEventLoopMgr::m_scheduledStop
protected

Scheduled stop of event processing.

Definition at line 54 of file MinimalEventLoopMgr.h.

State MinimalEventLoopMgr::m_state
protected

State of the object.

Definition at line 52 of file MinimalEventLoopMgr.h.

ListAlg MinimalEventLoopMgr::m_topAlgList
protected

List of top level algorithms.

Definition at line 42 of file MinimalEventLoopMgr.h.

StringArrayProperty MinimalEventLoopMgr::m_topAlgNames
protected

List of top level algorithms names.

Definition at line 48 of file MinimalEventLoopMgr.h.


The documentation for this class was generated from the following files:

Generated at Mon Feb 17 2014 14:38:07 for Gaudi Framework, version v25r0 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004