The Gaudi Framework  v29r0 (ff2e7097)
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/AlgTool.h"
13 #include "GaudiKernel/Service.h"
14 
15 class IIncidentSvc;
16 
28 class GAUDI_API DataStreamTool : public extends<AlgTool, IDataStreamTool>
29 {
30 public:
33 
35  DataStreamTool( const std::string& type, const std::string& name, const IInterface* parent );
36 
37  ~DataStreamTool() override = default;
38 
39  StatusCode initialize() override;
40 
41  StatusCode finalize() override;
42 
44  StatusCode initializeStream( EventSelectorDataStream* ) override;
45 
47  StatusCode finalizeStream( EventSelectorDataStream* ) override;
48 
49  StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) override;
50 
51  StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) override;
52 
53  StatusCode addStream( const std::string& ) override;
54 
55  StatusCode addStreams( const StreamSpecs& ) override;
56 
57  StatusCode eraseStream( const std::string& ) override;
59  EventSelectorDataStream* getStream( const std::string& ) override;
60 
61  EventSelectorDataStream* getStream( size_type ) override;
62 
63  EventSelectorDataStream* lastStream() override;
64 
65  size_type size() override { return m_streams.size(); };
66 
67  StatusCode clear() override;
68 
69  virtual Streams& getStreams() { return m_streams; };
70 
71  virtual Streams::iterator beginOfStreams() { return m_streams.begin(); };
72 
73  virtual Streams::iterator endOfStreams() { return m_streams.end(); };
74 
75 protected:
76  StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) override;
77 
78  StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) override;
79 
81  StatusCode connectStream( EventSelectorDataStream* );
83  StatusCode connectStream( const std::string& );
84 
85  size_type m_streamID = 0;
86 
87  size_type m_streamCount = 0;
88 
89  Streams m_streams;
90 
91  StreamSpecs m_streamSpecs;
92 
94  SmartIF<IIncidentSvc> m_incidentSvc = nullptr;
95 
96  Streams::iterator getStreamIterator( const std::string& );
97 
98 private:
100  DataStreamTool( const DataStreamTool& ) = delete;
102  DataStreamTool& operator=( const DataStreamTool& ) = delete;
103 };
104 #endif // GAUDIKERNEL_DATASTREAMTOOL_H
std::vector< Gaudi::Property< std::string > > Properties
virtual Streams::iterator beginOfStreams()
std::vector< EventSelectorDataStream * > Streams
The Event Selector Interface.
Definition: IEvtSelector.h:18
virtual Streams::iterator endOfStreams()
PropertyMgr & operator=(const PropertyMgr &)=delete
STL class.
size_type size() override
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:28
Definition of the basic interface.
Definition: IInterface.h:277
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
Definition of class EventSelectorDataStream.
#define GAUDI_API
Definition: Kernel.h:110
StreamSpecs m_streamSpecs
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:23
virtual Streams & getStreams()