File indexing completed on 2025-02-21 10:00:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
0012 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
0013
0014
0015
0016 #include <string>
0017
0018
0019 #include "GaudiKernel/IAlgTool.h"
0020
0021 class IEvtSelector;
0022 class EventSelectorDataStream;
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 class GAUDI_API IDataStreamTool : virtual public IAlgTool {
0033 public:
0034
0035 DeclareInterfaceID( IDataStreamTool, 2, 0 );
0036
0037 typedef std::vector<std::string> StreamSpecs;
0038 typedef long size_type;
0039
0040 virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
0041
0042 virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
0043
0044 virtual StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) = 0;
0045
0046 virtual StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) = 0;
0047
0048 virtual StatusCode addStream( const std::string& ) = 0;
0049
0050 virtual StatusCode addStreams( const StreamSpecs& ) = 0;
0051
0052 virtual StatusCode eraseStream( const std::string& ) = 0;
0053
0054 virtual EventSelectorDataStream* getStream( size_type ) = 0;
0055
0056 virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
0057
0058 virtual EventSelectorDataStream* lastStream() = 0;
0059
0060 virtual size_type size() = 0;
0061
0062 virtual StatusCode clear() = 0;
0063
0064 protected:
0065 virtual StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) = 0;
0066
0067 virtual StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) = 0;
0068 };
0069 #endif