| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

MinimalEventLoopMgr.h

Go to the documentation of this file.
00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/MinimalEventLoopMgr.h,v 1.4 2008/07/15 12:48:18 marcocle Exp $
00002 #ifndef GAUDIKERNEL_MINIMALEVENTLOOPMGR_H
00003 #define GAUDIKERNEL_MINIMALEVENTLOOPMGR_H 1
00004 
00005 // Framework include files
00006 #include "GaudiKernel/Service.h"
00007 #include "GaudiKernel/IAppMgrUI.h"
00008 #include "GaudiKernel/IEventProcessor.h"
00009 
00010 // STL include files
00011 #include <list>
00012 #include <vector>
00013 
00014 // Forward declarations
00015 class IAlgorithm;
00016 class IIncidentSvc;
00017 class IIncidentListener;
00018 
00028 class MinimalEventLoopMgr : public Service, 
00029                             virtual public IEventProcessor
00030 {
00031 public:
00033   typedef std::list<IAlgorithm*>   ListAlg;
00034   typedef std::list<std::string>   ListName;
00035   typedef std::vector<std::string> VectorName;
00036 
00037 protected:
00038   // enums
00039   enum State { OFFLINE, CONFIGURED, FINALIZED, INITIALIZED };
00041   IAppMgrUI*          m_appMgrUI;
00043   IIncidentSvc*       m_incidentSvc;
00045   ListAlg             m_topAlgList;
00047   ListAlg             m_outStreamList;
00049   std::string         m_outStreamType;
00051   StringArrayProperty m_topAlgNames;
00053   StringArrayProperty m_outStreamNames;
00055   State               m_state;
00057   bool                m_scheduledStop;
00059   IIncidentListener*  m_abortEventListener;
00062   bool                m_abortEvent;
00064   std::string         m_abortEventSource;
00065 
00066 public:
00068   MinimalEventLoopMgr(const std::string& nam, ISvcLocator* svcLoc);
00070   virtual ~MinimalEventLoopMgr();
00071 
00072 protected:
00073 
00075   template<class T> T* releaseInterface(T* iface)   {
00076     if ( 0 != iface ) iface->release();
00077     return 0;
00078   }
00079 
00080 public:
00082   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
00084   virtual StatusCode initialize();
00086   virtual StatusCode start();
00088   virtual StatusCode stop();
00090   virtual StatusCode finalize();
00092   virtual StatusCode reinitialize();
00094   virtual StatusCode restart();
00095 
00097   virtual StatusCode nextEvent(int maxevt);
00099   virtual StatusCode executeEvent(void* par );
00101   virtual StatusCode executeRun(int maxevt);
00103   virtual StatusCode stopRun();
00104 
00106   void topAlgHandler( Property& p);
00108   StatusCode decodeTopAlgs();
00110   void outStreamHandler( Property& p);
00112   StatusCode decodeOutStreams();
00113 
00114 };
00115 #endif // GAUDIKERNEL_MINIMALEVENTLOOPMGR_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 19:56:58 2011 for GaudiKernel by doxygen 1.4.7