Gaudi Framework, version v20r4

Generated: 8 Jan 2009

EventSelector.h

Go to the documentation of this file.
00001 //====================================================================
00002 //      EventSelector.h
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : EventSelector  (LHCb Event Selector Package)
00006 //
00007 //      Author     : M.Frank
00008 //  Created    : 4/10/00
00009 //
00010 //====================================================================
00011 //  Modified   : 11/11/06
00012 //  
00013 //  Author     : Andres Felipe OSORIO OLIVEROS
00014 //             : Marco CLEMENCIC
00015 //
00016 //====================================================================
00017 
00018 #ifndef GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H
00019 #define GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H 1
00020 
00021 // Include files
00022 #include "GaudiKernel/Service.h"
00023 #include "GaudiKernel/IEvtSelector.h"
00024 
00025 // STL include files
00026 #include <vector>
00027 
00028 // Forward declarations
00029 class IIncidentSvc;
00030 class IAddressCreator;
00031 class IToolSvc;
00032 class EventSelectorDataStream;
00033 class EvtSelectorContext;
00034 class IDataStreamTool;
00035 
00050 class EventSelector : public Service, virtual public IEvtSelector   {
00051 public:
00052   typedef std::vector<EventSelectorDataStream*>  Streams;
00053   typedef std::vector<std::string>               StreamSpecs;
00054   typedef std::vector<StringProperty>            Properties;
00055 
00056   long int m_streamID;
00057 
00058 protected:
00060   IIncidentSvc*     m_incidentSvc;
00061 
00062   IToolSvc * m_toolSvc;
00063   
00064   IDataStreamTool *m_streamtool;
00065 
00067   bool                  m_reconfigure;
00069   StreamSpecs           m_streamSpecs;
00071   StreamSpecs           m_streamSpecsLast;
00073   Streams               m_streams;
00075   int                   m_streamCount;
00077   int                   m_firstEvent;
00079   int                   m_evtMax;
00081   int                   m_evtPrintFrequency;
00082 
00083   std::string           m_streamManager;
00084 
00085 
00086     
00088   virtual void printEvtInfo(const EvtSelectorContext* iter) const;
00089 
00090 public:
00092   virtual StatusCode initialize();
00093 
00095   virtual StatusCode finalize();
00096 
00098   virtual StatusCode reinitialize();
00099 
00100   // IInterface implementation: query interfaces
00101   virtual StatusCode queryInterface(const InterfaceID& riid, void** ppvInterface);
00102 
00104 
00108   virtual StatusCode createContext(Context*& refpCtxt) const;
00109 
00111 
00115   virtual StatusCode next(Context& refCtxt) const;
00116 
00118 
00122   virtual StatusCode next(Context& refCtxt,int jump) const;
00123 
00125 
00130   virtual StatusCode previous(Context& refCtxt) const;
00131 
00133 
00138   virtual StatusCode previous(Context& refCtxt,int jump) const;
00139 
00141 
00145   virtual StatusCode rewind(Context& refCtxt) const;
00146 
00148 
00153   virtual StatusCode createAddress(const Context& refCtxt, IOpaqueAddress*& refpAddr) const;
00154 
00156 
00160   virtual StatusCode releaseContext(Context*& refCtxt) const;
00161 
00170   virtual StatusCode resetCriteria(const std::string& cr,Context& c)const;
00171 
00177   virtual StatusCode last(Context& c) const;
00178 
00180   StatusCode firstOfNextStream( bool shutDown, EvtSelectorContext& it) const;
00182   StatusCode lastOfPreviousStream ( bool shutDown, EvtSelectorContext& it) const;
00183   
00185   EventSelector( const std::string& name, ISvcLocator* svcloc );
00186 
00188   virtual ~EventSelector();
00189 };
00190 
00191 #endif  // GAUDISVC_EVENTSELECTOR_EVENTSELECTOR_H

Generated at Thu Jan 8 17:44:23 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004