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

In This Package:

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 DataStreamTool : public AlgTool, virtual public 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   IIncidentSvc*     m_incidentSvc;
00102   
00103   bool m_reconfigure;
00104   
00105   Streams::iterator getStreamIterator ( const std::string& );
00106 
00107 private:
00108   
00109 };
00110 #endif // GAUDIKERNEL_DATASTREAMTOOL_H
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

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