File indexing completed on 2025-01-18 09:57:39
0001
0002
0003
0004
0005
0006
0007
0008
0009
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