Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:39

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_IDATAHANDLEHOLDER
0012 #define GAUDIKERNEL_IDATAHANDLEHOLDER 1
0013 
0014 #include "GaudiKernel/DataHandle.h"
0015 #include "GaudiKernel/DataObjID.h"
0016 #include "GaudiKernel/IInterface.h"
0017 #include "GaudiKernel/INamedInterface.h"
0018 
0019 #include <set>
0020 #include <vector>
0021 
0022 class IDataHandleVisitor;
0023 
0024 class GAUDI_API IDataHandleHolder : virtual public INamedInterface {
0025 public:
0026   virtual std::vector<Gaudi::DataHandle*> inputHandles() const  = 0;
0027   virtual std::vector<Gaudi::DataHandle*> outputHandles() const = 0;
0028 
0029   virtual const DataObjIDColl& extraInputDeps() const  = 0;
0030   virtual const DataObjIDColl& extraOutputDeps() const = 0;
0031 
0032   virtual void acceptDHVisitor( IDataHandleVisitor* ) const = 0;
0033 
0034   virtual const DataObjIDColl& inputDataObjs() const  = 0;
0035   virtual const DataObjIDColl& outputDataObjs() const = 0;
0036 
0037   virtual void addDependency( const DataObjID&, const Gaudi::DataHandle::Mode& ) = 0;
0038 
0039   DeclareInterfaceID( IDataHandleHolder, 1, 0 );
0040 
0041   virtual void declare( Gaudi::DataHandle& )     = 0;
0042   virtual void renounce( Gaudi::DataHandle& )    = 0;
0043   virtual bool renounceInput( const DataObjID& ) = 0;
0044 };
0045 
0046 class IDataHandleVisitor {
0047 public:
0048   virtual ~IDataHandleVisitor()                  = default;
0049   virtual void visit( const IDataHandleHolder* ) = 0;
0050 };
0051 
0052 #endif // !GAUDIKERNEL_IDATAHANDLEHOLDER