All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
IDataStreamTool.h
Go to the documentation of this file.
1 // $Id: IDataStreamTool.h,v 1.2 2007/01/12 17:32:31 hmd Exp $
2 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
3 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
4 
5 // Include files
6 // from STL
7 #include <string>
8 
9 // from Gaudi
10 #include "GaudiKernel/IAlgTool.h"
11 
12 class IEvtSelector;
14 
23 class GAUDI_API IDataStreamTool: virtual public IAlgTool {
24 public:
27 
28  typedef std::vector<std::string> StreamSpecs;
29  typedef long size_type;
30 
31  virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
32 
33  virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
34 
35  virtual StatusCode getNextStream( const EventSelectorDataStream* &, size_type & ) = 0;
36 
37  virtual StatusCode getPreviousStream( const EventSelectorDataStream* &, size_type & ) = 0;
38 
39  virtual StatusCode addStream(const std::string &) = 0;
40 
41  virtual StatusCode addStreams(const StreamSpecs &) = 0;
42 
43  virtual StatusCode eraseStream( const std::string& ) = 0;
44 
45  virtual EventSelectorDataStream* getStream( size_type ) = 0;
46 
47  virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
48 
49  virtual EventSelectorDataStream* lastStream() = 0;
50 
51  virtual size_type size() = 0;
52 
53  virtual StatusCode clear() = 0;
54 
55 protected:
56 
57  virtual StatusCode createSelector(const std::string& , const std::string& ,
58  IEvtSelector*&) = 0;
59 
60  virtual StatusCode createStream(const std::string&, const std::string&,
62 
63 };
64 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H
std::vector< std::string > StreamSpecs
DeclareInterfaceID(IAlgTool, 3, 0)
InterfaceID.
The Event Selector Interface.
Definition: IEvtSelector.h:19
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:30
Definition of class EventSelectorDataStream.
The interface implemented by the AlgTool base class.
Definition: IAlgTool.h:23
#define GAUDI_API
Definition: Kernel.h:108