| # Gaudi Framework, version v21r7p1 |

Home |  | Generated: 15 Feb 2010

# DataStreamTool.h

Go to the documentation of this file.

    00001 // $Id: DataStreamTool.h,v 1.3 2007/01/15 16:48:21 hmd Exp $
    00002 #ifndef GAUDIKERNEL_DATASTREAMTOOL_H
    00003 #define GAUDIKERNEL_DATASTREAMTOOL_H 1
    00004
    00005 // Include files
    00006
    00007 #include <vector>
    00008
    00009 // from Gaudi
    00010 #include "GaudiKernel/Service.h"
    00011 #include "GaudiKernel/IEvtSelector.h"
    00012 #include "GaudiKernel/IDataStreamTool.h"
    00013 #include "GaudiKernel/AlgTool.h"
    00014
    00015 class IIncidentSvc;
    00016
    00029 class GAUDI_API DataStreamTool: public extends1<AlgTool, IDataStreamTool> {
    00030 public:
    00031
    00032   typedef std::vector<EventSelectorDataStream*>            Streams;
    00033   typedef std::vector<StringProperty>            Properties;
    00034
    00036   DataStreamTool( const std::string& type,
    00037                   const std::string& name,
    00038                   const IInterface* parent);
    00039
    00040   virtual ~DataStreamTool( );
    00041
    00042   virtual StatusCode initialize();
    00043
    00044   virtual StatusCode addStream(const std::string &);
    00045
    00046   virtual StatusCode addStreams(const StreamSpecs &);
    00047
    00048   virtual StatusCode eraseStream( const std::string& );
    00049
    00050   virtual StatusCode finalize();
    00051
    00053   virtual StatusCode initializeStream( EventSelectorDataStream* );
    00054
    00056   virtual StatusCode finalizeStream( EventSelectorDataStream* );
    00057
    00058   virtual StatusCode getNextStream( const EventSelectorDataStream* &, size_type & );
    00059
    00060   virtual StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & );
    00061
    00062   virtual Streams& getStreams() { return m_streams; };
    00063
    00064   virtual EventSelectorDataStream* lastStream();
    00065
    00066   virtual Streams::iterator beginOfStreams() {return m_streams.begin(); };
    00067
    00068   virtual Streams::iterator endOfStreams() {return m_streams.end(); };
    00069
    00071   virtual EventSelectorDataStream* getStream( const std::string& );
    00072
    00073   virtual EventSelectorDataStream* getStream( size_type );
    00074
    00075   virtual size_type size() { return m_streams.size(); };
    00076
    00077   virtual StatusCode clear();
    00078
    00079 protected:
    00080
    00081   virtual StatusCode createSelector( const std::string& , const std::string& ,
    00082                                      IEvtSelector*& );
    00083
    00084   virtual StatusCode createStream(const std::string&, const std::string&,
    00085                                   EventSelectorDataStream*& );
    00086
    00088   StatusCode connectStream( EventSelectorDataStream *);
    00090   StatusCode connectStream( const std::string & );
    00091
    00092   size_type m_streamID;
    00093
    00094   size_type m_streamCount;
    00095
    00096   Streams m_streams;
    00097
    00098   StreamSpecs m_streamSpecs;
    00099
    00101   SmartIF<IIncidentSvc>     m_incidentSvc;
    00102
    00103   bool m_reconfigure;
    00104
    00105   Streams::iterator getStreamIterator ( const std::string& );
    00106
    00107 private:
    00109   DataStreamTool(const DataStreamTool&);
    00111   DataStreamTool& operator= (const DataStreamTool&);
    00112
    00113 };
    00114 #endif // GAUDIKERNEL_DATASTREAMTOOL_H