|
Gaudi Framework, version v21r11 |
| Home | Generated: 30 Sep 2010 |
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 00023 class GAUDI_API IDataStreamTool: virtual public IAlgTool { 00024 public: 00026 DeclareInterfaceID(IDataStreamTool,2,0); 00027 00028 typedef std::vector<std::string> StreamSpecs; 00029 typedef long size_type; 00030 00031 virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0; 00032 00033 virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0; 00034 00035 virtual StatusCode getNextStream( const EventSelectorDataStream* &, size_type & ) = 0; 00036 00037 virtual StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & ) = 0; 00038 00039 virtual StatusCode addStream(const std::string &) = 0; 00040 00041 virtual StatusCode addStreams(const StreamSpecs &) = 0; 00042 00043 virtual StatusCode eraseStream( const std::string& ) = 0; 00044 00045 virtual EventSelectorDataStream* getStream( size_type ) = 0; 00046 00047 virtual EventSelectorDataStream* getStream( const std::string& ) = 0; 00048 00049 virtual EventSelectorDataStream* lastStream() = 0; 00050 00051 virtual size_type size() = 0; 00052 00053 virtual StatusCode clear() = 0; 00054 00055 protected: 00056 00057 virtual StatusCode createSelector(const std::string& , const std::string& , 00058 IEvtSelector*&) = 0; 00059 00060 virtual StatusCode createStream(const std::string&, const std::string&, 00061 EventSelectorDataStream*& ) = 0; 00062 00063 }; 00064 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H