The Gaudi Framework  master (82fdf313)
Loading...
Searching...
No Matches
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
30
31class GAUDI_API DataStreamTool : public extends<AlgTool, IDataStreamTool> {
32public:
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
45
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
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
75protected:
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
95
96 Streams::iterator getStreamIterator( const std::string& );
97
98private:
100 DataStreamTool( const DataStreamTool& ) = delete;
103};
#define GAUDI_API
Definition Kernel.h:49
StatusCode addStream(const std::string &) override
virtual Streams::iterator beginOfStreams()
virtual Streams::iterator endOfStreams()
StatusCode finalizeStream(EventSelectorDataStream *) override
Finalize no longer needed stream.
virtual Streams & getStreams()
DataStreamTool & operator=(const DataStreamTool &)=delete
Fake assignment operator (never implemented).
Streams::iterator getStreamIterator(const std::string &)
EventSelectorDataStream * getStream(const std::string &) override
Retrieve stream by name.
StreamSpecs m_streamSpecs
StatusCode getNextStream(const EventSelectorDataStream *&, size_type &) override
StatusCode finalize() override
StatusCode addStreams(const StreamSpecs &) override
StatusCode getPreviousStream(const EventSelectorDataStream *&, size_type &) override
EventSelectorDataStream * lastStream() override
DataStreamTool(const DataStreamTool &)=delete
Fake copy constructor (never implemented).
SmartIF< IIncidentSvc > m_incidentSvc
Reference to the incident service.
size_type m_streamID
StatusCode initialize() override
StatusCode initializeStream(EventSelectorDataStream *) override
Initialize newly opened stream.
StatusCode eraseStream(const std::string &) override
std::vector< EventSelectorDataStream * > Streams
size_type m_streamCount
size_type size() override
Definition of class EventSelectorDataStream.
The Event Selector Interface.
Small smart pointer class with automatic reference counting for IInterface.
Definition SmartIF.h:28
This class is used for returning status codes from appropriate routines.
Definition StatusCode.h:64
Base class used to extend a class implementing other interfaces.
Definition extends.h:19