Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IDataStreamTool.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
2 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
3 
4 // Include files
5 // from STL
6 #include <string>
7 
8 // from Gaudi
9 #include "GaudiKernel/IAlgTool.h"
10 
11 class IEvtSelector;
13 
22 class GAUDI_API IDataStreamTool : virtual public IAlgTool {
23 public:
26 
28  typedef long size_type;
29 
30  virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
31 
32  virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
33 
34  virtual StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) = 0;
35 
36  virtual StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) = 0;
37 
38  virtual StatusCode addStream( const std::string& ) = 0;
39 
40  virtual StatusCode addStreams( const StreamSpecs& ) = 0;
41 
42  virtual StatusCode eraseStream( const std::string& ) = 0;
43 
44  virtual EventSelectorDataStream* getStream( size_type ) = 0;
45 
46  virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
47 
48  virtual EventSelectorDataStream* lastStream() = 0;
49 
50  virtual size_type size() = 0;
51 
52  virtual StatusCode clear() = 0;
53 
54 protected:
55  virtual StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) = 0;
56 
57  virtual StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) = 0;
58 };
59 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H
std::vector< std::string > StreamSpecs
The Event Selector Interface.
Definition: IEvtSelector.h:18
DeclareInterfaceID(IAlgTool, 4, 0)
InterfaceID.
constexpr auto size(const C &c) noexcept(noexcept(c.size())) -> decltype(c.size())
STL class.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
Definition of class EventSelectorDataStream.
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
#define GAUDI_API
Definition: Kernel.h:71