| # 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