Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:19 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004