The Gaudi Framework  v30r3 (a5ef0a68)
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  using extends::extends;
36 
37  StatusCode initialize() override;
38 
39  StatusCode finalize() override;
40 
42  StatusCode initializeStream( EventSelectorDataStream* ) override;
43 
45  StatusCode finalizeStream( EventSelectorDataStream* ) override;
46 
47  StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) override;
48 
49  StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) override;
50 
51  StatusCode addStream( const std::string& ) override;
52 
53  StatusCode addStreams( const StreamSpecs& ) override;
54 
55  StatusCode eraseStream( const std::string& ) override;
57  EventSelectorDataStream* getStream( const std::string& ) override;
58 
59  EventSelectorDataStream* getStream( size_type ) override;
60 
61  EventSelectorDataStream* lastStream() override;
62 
63  size_type size() override { return m_streams.size(); };
64 
65  StatusCode clear() override;
66 
67  virtual Streams& getStreams() { return m_streams; };
68 
69  virtual Streams::iterator beginOfStreams() { return m_streams.begin(); };
70 
71  virtual Streams::iterator endOfStreams() { return m_streams.end(); };
72 
73 protected:
74  StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) override;
75 
76  StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) override;
77 
79  StatusCode connectStream( EventSelectorDataStream* );
81  StatusCode connectStream( const std::string& );
82 
83  size_type m_streamID = 0;
84 
85  size_type m_streamCount = 0;
86 
87  Streams m_streams;
88 
89  StreamSpecs m_streamSpecs;
90 
92  SmartIF<IIncidentSvc> m_incidentSvc = nullptr;
93 
94  Streams::iterator getStreamIterator( const std::string& );
95 
96 private:
98  DataStreamTool( const DataStreamTool& ) = delete;
100  DataStreamTool& operator=( const DataStreamTool& ) = delete;
101 };
102 #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:51
Base class used to extend a class implementing other interfaces.
Definition: extends.h:10
Definition of class EventSelectorDataStream.
#define GAUDI_API
Definition: Kernel.h:104
StreamSpecs m_streamSpecs
The interface implemented by the IncidentSvc service.
Definition: IIncidentSvc.h:23
virtual Streams & getStreams()