Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (d98a2936)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DataStreamTool.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #pragma once
12 
13 #include <GaudiKernel/AlgTool.h>
17 #include <GaudiKernel/Service.h>
18 #include <vector>
19 
31 class GAUDI_API DataStreamTool : public extends<AlgTool, IDataStreamTool> {
32 public:
33  typedef std::vector<EventSelectorDataStream*> Streams;
34  typedef std::vector<Gaudi::Property<std::string>> Properties;
35 
37  using extends::extends;
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 
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;
103 };
DataStreamTool::Properties
std::vector< Gaudi::Property< std::string > > Properties
Definition: DataStreamTool.h:34
DataStreamTool::Streams
std::vector< EventSelectorDataStream * > Streams
Definition: DataStreamTool.h:33
DataStreamTool::beginOfStreams
virtual Streams::iterator beginOfStreams()
Definition: DataStreamTool.h:71
IEvtSelector
Definition: IEvtSelector.h:26
IEvtSelector.h
DataStreamTool::endOfStreams
virtual Streams::iterator endOfStreams()
Definition: DataStreamTool.h:73
DataStreamTool::size
size_type size() override
Definition: DataStreamTool.h:65
DataStreamTool
Definition: DataStreamTool.h:31
IIncidentSvc.h
DataStreamTool::operator=
DataStreamTool & operator=(const DataStreamTool &)=delete
Fake assignment operator (never implemented).
StatusCode
Definition: StatusCode.h:64
SmartIF< IIncidentSvc >
extends
Base class used to extend a class implementing other interfaces.
Definition: extends.h:19
Service.h
EventSelectorDataStream
Definition of class EventSelectorDataStream.
Definition: EventSelectorDataStream.h:39
IDataStreamTool.h
AlgTool.h
DataStreamTool::DataStreamTool
DataStreamTool(const DataStreamTool &)=delete
Fake copy constructor (never implemented).
DataStreamTool::m_streamSpecs
StreamSpecs m_streamSpecs
Definition: DataStreamTool.h:91
DataStreamTool::getStreams
virtual Streams & getStreams()
Definition: DataStreamTool.h:69
DataStreamTool::m_streams
Streams m_streams
Definition: DataStreamTool.h:89
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:49