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"
10 #include "GaudiKernel/IEvtSelector.h"
11 #include "GaudiKernel/IDataStreamTool.h"
12 #include "GaudiKernel/IIncidentSvc.h"
13 #include "GaudiKernel/AlgTool.h"
14 
15 class IIncidentSvc;
16 
29 class GAUDI_API DataStreamTool: public extends1<AlgTool, IDataStreamTool> {
30 public:
31 
32  typedef std::vector<EventSelectorDataStream*> Streams;
33  typedef std::vector<StringProperty> Properties;
34 
36  DataStreamTool( const std::string& type,
37  const std::string& name,
38  const IInterface* parent);
39 
40  ~DataStreamTool( ) override = default;
41 
42  StatusCode initialize() override;
43 
44  StatusCode finalize() override;
45 
47  StatusCode initializeStream( EventSelectorDataStream* ) override;
48 
50  StatusCode finalizeStream( EventSelectorDataStream* ) override;
51 
52  StatusCode getNextStream( const EventSelectorDataStream* &, size_type & ) override;
53 
54  StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & ) override;
55 
56  StatusCode addStream(const std::string &) override;
57 
58  StatusCode addStreams(const StreamSpecs &) override;
59 
60  StatusCode eraseStream( const std::string& ) override;
62  EventSelectorDataStream* getStream( const std::string& ) override;
63 
64  EventSelectorDataStream* getStream( size_type ) override;
65 
66  EventSelectorDataStream* lastStream() override;
67 
68  size_type size() override { return m_streams.size(); };
69 
70  StatusCode clear() override;
71 
72  virtual Streams& getStreams() { return m_streams; };
73 
74  virtual Streams::iterator beginOfStreams() {return m_streams.begin(); };
75 
76  virtual Streams::iterator endOfStreams() {return m_streams.end(); };
77 
78 protected:
79 
80  StatusCode createSelector( const std::string& , const std::string& ,
81  IEvtSelector*& ) override;
82 
83  StatusCode createStream(const std::string&, const std::string&,
84  EventSelectorDataStream*& ) override;
85 
87  StatusCode connectStream( EventSelectorDataStream *);
89  StatusCode connectStream( const std::string & );
90 
91  size_type m_streamID = 0;
92 
93  size_type m_streamCount = 0;
94 
95  Streams m_streams;
96 
97  StreamSpecs m_streamSpecs;
98 
100  SmartIF<IIncidentSvc> m_incidentSvc = nullptr;
101 
102  Streams::iterator getStreamIterator ( const std::string& );
103 
104 private:
106  DataStreamTool(const DataStreamTool&) = delete;
108  DataStreamTool& operator= (const DataStreamTool&) = delete;
109 
110 };
111 #endif // GAUDIKERNEL_DATASTREAMTOOL_H
def initialize()
Definition: AnalysisTest.py:12
#define GAUDI_API
Definition: Kernel.h:107
virtual Streams::iterator beginOfStreams()
std::vector< EventSelectorDataStream * > Streams
The Event Selector Interface.
Definition: IEvtSelector.h:18
virtual Streams::iterator endOfStreams()
std::vector< StringProperty > Properties
size_type size() override
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.
StreamSpecs m_streamSpecs
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:21
string type
Definition: gaudirun.py:151
virtual Streams & getStreams()