Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:31

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_IDATASTREAMTOOL_H
0012 #define GAUDIKERNEL_IDATASTREAMTOOL_H 1
0013 
0014 // Include files
0015 // from STL
0016 #include <string>
0017 
0018 // from Gaudi
0019 #include "GaudiKernel/IAlgTool.h"
0020 
0021 class IEvtSelector;
0022 class EventSelectorDataStream;
0023 
0024 /** @class IDataStreamTool IDataStreamTool.h GaudiKernel/IDataStreamTool.h
0025  *
0026  *
0027  *  @author Andres Felipe Osorio Oliveros
0028  *  @author Marco Clemencic
0029  *  @date   2006-09-21
0030  */
0031 
0032 class GAUDI_API IDataStreamTool : virtual public IAlgTool {
0033 public:
0034   /// InterfaceID
0035   DeclareInterfaceID( IDataStreamTool, 2, 0 );
0036 
0037   typedef std::vector<std::string> StreamSpecs;
0038   typedef long                     size_type;
0039 
0040   virtual StatusCode initializeStream( EventSelectorDataStream* ) = 0;
0041 
0042   virtual StatusCode finalizeStream( EventSelectorDataStream* ) = 0;
0043 
0044   virtual StatusCode getNextStream( const EventSelectorDataStream*&, size_type& ) = 0;
0045 
0046   virtual StatusCode getPreviousStream( const EventSelectorDataStream*&, size_type& ) = 0;
0047 
0048   virtual StatusCode addStream( const std::string& ) = 0;
0049 
0050   virtual StatusCode addStreams( const StreamSpecs& ) = 0;
0051 
0052   virtual StatusCode eraseStream( const std::string& ) = 0;
0053 
0054   virtual EventSelectorDataStream* getStream( size_type ) = 0;
0055 
0056   virtual EventSelectorDataStream* getStream( const std::string& ) = 0;
0057 
0058   virtual EventSelectorDataStream* lastStream() = 0;
0059 
0060   virtual size_type size() = 0;
0061 
0062   virtual StatusCode clear() = 0;
0063 
0064 protected:
0065   virtual StatusCode createSelector( const std::string&, const std::string&, IEvtSelector*& ) = 0;
0066 
0067   virtual StatusCode createStream( const std::string&, const std::string&, EventSelectorDataStream*& ) = 0;
0068 };
0069 #endif // GAUDIKERNEL_IDATASTREAMTOOL_H