| # Gaudi Framework, version v20r3
Generated: 24 Nov 2008

# IDataStreamTool.h

Go to the documentation of this file.

    00001 // $Id: IDataStreamTool.h,v 1.2 2007/01/12 17:32:31 hmd Exp $
    00002 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
    00003 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
    00004
    00005 // Include files
    00006 // from STL
    00007 #include <string>
    00008
    00009 // from Gaudi
    00010 #include "GaudiKernel/IAlgTool.h"
    00011
    00012 class IEvtSelector;
    00013 class EventSelectorDataStream;
    00014
    00015 static const InterfaceID IID_IDataStreamTool ( "IDataStreamTool", 1, 0 );
    00016
    00025 class IDataStreamTool : virtual public IAlgTool {
    00026 public:
    00027
    00028   typedef std::vector<std::string>                         StreamSpecs;
    00029   typedef long                                             size_type;
    00030
    00031   // Return the interface ID
    00032   static const InterfaceID& interfaceID() { return IID_IDataStreamTool; }
    00033
    00034   virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
    00035
    00036   virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
    00037
    00038   virtual StatusCode getNextStream( const EventSelectorDataStream* &, size_type & ) = 0;
    00039
    00040   virtual StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & ) = 0;
    00041
    00042   virtual StatusCode addStream(const std::string &) = 0;
    00043
    00044   virtual StatusCode addStreams(const StreamSpecs &) = 0;
    00045
    00046   virtual StatusCode eraseStream( const std::string& ) = 0;
    00047
    00048   virtual EventSelectorDataStream* getStream( size_type ) = 0;
    00049
    00050   virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
    00051
    00052   virtual EventSelectorDataStream* lastStream() = 0;
    00053
    00054   virtual size_type size() = 0;
    00055
    00056   virtual StatusCode clear() = 0;
    00057
    00058 protected:
    00059
    00060   virtual StatusCode createSelector(const std::string& , const std::string& ,
    00061                                     IEvtSelector*&) = 0;
    00062
    00063   virtual StatusCode createStream(const std::string&, const std::string&,
    00064                                   EventSelectorDataStream*& ) = 0;
    00065
    00066 };
    00067 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H