The Gaudi Framework  v33r0 (d5ea422b)
IDataStreamTool.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 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 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
12 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
13 
14 // Include files
15 // from STL
16 #include <string>
17 
18 // from Gaudi
19 #include "GaudiKernel/IAlgTool.h"
20 
21 class IEvtSelector;
23 
32 class GAUDI_API IDataStreamTool : virtual public IAlgTool {
33 public:
36 
38  typedef long size_type;
39 
40  virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
41 
42  virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
43 
44  virtual StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) = 0;
45 
46  virtual StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) = 0;
47 
48  virtual StatusCode addStream( const std::string& ) = 0;
49 
50  virtual StatusCode addStreams( const StreamSpecs& ) = 0;
51 
52  virtual StatusCode eraseStream( const std::string& ) = 0;
53 
54  virtual EventSelectorDataStream* getStream( size_type ) = 0;
55 
56  virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
57 
58  virtual EventSelectorDataStream* lastStream() = 0;
59 
60  virtual size_type size() = 0;
61 
62  virtual StatusCode clear() = 0;
63 
64 protected:
65  virtual StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) = 0;
66 
67  virtual StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) = 0;
68 };
69 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H
constexpr auto size(const T &, Args &&...) noexcept
std::vector< std::string > StreamSpecs
The Event Selector Interface.
Definition: IEvtSelector.h:28
DeclareInterfaceID(IAlgTool, 4, 0)
InterfaceID.
STL class.
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:61
Definition of class EventSelectorDataStream.
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:33
#define GAUDI_API
Definition: Kernel.h:81