DataStreamTool.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_DATASTREAMTOOL_H
2 #define GAUDIKERNEL_DATASTREAMTOOL_H 1
3 
4 // Include files
5 
6 #include <vector>
7 
8 // from Gaudi
9 #include "GaudiKernel/Service.h"
13 #include "GaudiKernel/AlgTool.h"
14 
15 class IIncidentSvc;
16 
29 class GAUDI_API DataStreamTool: public extends<AlgTool,
30  IDataStreamTool> {
31 public:
32 
35 
38  const std::string& name,
39  const IInterface* parent);
40 
41  ~DataStreamTool( ) override = default;
42 
43  StatusCode initialize() override;
44 
45  StatusCode finalize() override;
46 
48  StatusCode initializeStream( EventSelectorDataStream* ) override;
49 
51  StatusCode finalizeStream( EventSelectorDataStream* ) override;
52 
53  StatusCode getNextStream( const EventSelectorDataStream* &, size_type & ) override;
54 
55  StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & ) override;
56 
57  StatusCode addStream(const std::string &) override;
58 
59  StatusCode addStreams(const StreamSpecs &) override;
60 
61  StatusCode eraseStream( const std::string& ) override;
63  EventSelectorDataStream* getStream( const std::string& ) override;
64 
65  EventSelectorDataStream* getStream( size_type ) override;
66 
67  EventSelectorDataStream* lastStream() override;
68 
69  size_type size() override { return m_streams.size(); };
70 
71  StatusCode clear() override;
72 
73  virtual Streams& getStreams() { return m_streams; };
74 
75  virtual Streams::iterator beginOfStreams() {return m_streams.begin(); };
76 
77  virtual Streams::iterator endOfStreams() {return m_streams.end(); };
78 
79 protected:
80 
81  StatusCode createSelector( const std::string& , const std::string& ,
82  IEvtSelector*& ) override;
83 
84  StatusCode createStream(const std::string&, const std::string&,
85  EventSelectorDataStream*& ) override;
86 
88  StatusCode connectStream( EventSelectorDataStream *);
90  StatusCode connectStream( const std::string & );
91 
92  size_type m_streamID = 0;
93 
94  size_type m_streamCount = 0;
95 
96  Streams m_streams;
97 
98  StreamSpecs m_streamSpecs;
99 
101  SmartIF<IIncidentSvc> m_incidentSvc = nullptr;
102 
103  Streams::iterator getStreamIterator ( const std::string& );
104 
105 private:
107  DataStreamTool(const DataStreamTool&) = delete;
109  DataStreamTool& operator= (const DataStreamTool&) = delete;
110 
111 };
112 #endif // GAUDIKERNEL_DATASTREAMTOOL_H
def initialize()
Definition: AnalysisTest.py:12
virtual Streams::iterator beginOfStreams()
std::vector< EventSelectorDataStream * > Streams
The Event Selector Interface.
Definition: IEvtSelector.h:18
virtual Streams::iterator endOfStreams()
std::vector< StringProperty > Properties
STL class.
size_type size() override
string type
Definition: gaudirun.py:151
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
Definition of the basic interface.
Definition: IInterface.h:234
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
Definition of class EventSelectorDataStream.
#define GAUDI_API
Definition: Kernel.h:107
StreamSpecs m_streamSpecs
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:21
virtual Streams & getStreams()