The Gaudi Framework  master (37c0b60a)
IDataHandleHolder.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 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_IDATAHANDLEHOLDER
12 #define GAUDIKERNEL_IDATAHANDLEHOLDER 1
13 
14 #include <GaudiKernel/DataHandle.h>
15 #include <GaudiKernel/DataObjID.h>
16 #include <GaudiKernel/IInterface.h>
18 
19 #include <set>
20 #include <vector>
21 
22 class IDataHandleVisitor;
23 
25 public:
28 
29  virtual const DataObjIDColl& extraInputDeps() const = 0;
30  virtual const DataObjIDColl& extraOutputDeps() const = 0;
31 
32  virtual void acceptDHVisitor( IDataHandleVisitor* ) const = 0;
33 
34  virtual const DataObjIDColl& inputDataObjs() const = 0;
35  virtual const DataObjIDColl& outputDataObjs() const = 0;
36 
37  virtual void addDependency( const DataObjID&, const Gaudi::DataHandle::Mode& ) = 0;
38 
40 
41  virtual void declare( Gaudi::DataHandle& ) = 0;
42  virtual void renounce( Gaudi::DataHandle& ) = 0;
43  virtual bool renounceInput( const DataObjID& ) = 0;
44 };
45 
47 public:
48  virtual ~IDataHandleVisitor() = default;
49  virtual void visit( const IDataHandleHolder* ) = 0;
50 };
51 
52 #endif // !GAUDIKERNEL_IDATAHANDLEHOLDER
IDataHandleHolder
Definition: IDataHandleHolder.h:24
IDataHandleVisitor::~IDataHandleVisitor
virtual ~IDataHandleVisitor()=default
IDataHandleHolder::extraInputDeps
virtual const DataObjIDColl & extraInputDeps() const =0
std::unordered_set< DataObjID, DataObjID_Hasher >
std::vector
STL class.
Gaudi::DataHandle
Definition: DataHandle.h:38
IDataHandleHolder::DeclareInterfaceID
DeclareInterfaceID(IDataHandleHolder, 1, 0)
DataObjID.h
IDataHandleHolder::inputDataObjs
virtual const DataObjIDColl & inputDataObjs() const =0
IDataHandleHolder::declare
virtual void declare(Gaudi::DataHandle &)=0
INamedInterface.h
IDataHandleHolder::addDependency
virtual void addDependency(const DataObjID &, const Gaudi::DataHandle::Mode &)=0
IInterface.h
IDataHandleHolder::outputDataObjs
virtual const DataObjIDColl & outputDataObjs() const =0
IDataHandleHolder::extraOutputDeps
virtual const DataObjIDColl & extraOutputDeps() const =0
IDataHandleHolder::renounce
virtual void renounce(Gaudi::DataHandle &)=0
IDataHandleHolder::inputHandles
virtual std::vector< Gaudi::DataHandle * > inputHandles() const =0
DataObjID
Definition: DataObjID.h:47
IDataHandleVisitor
Definition: IDataHandleHolder.h:46
Gaudi::DataHandle::Mode
Mode
Definition: DataHandle.h:40
IDataHandleHolder::acceptDHVisitor
virtual void acceptDHVisitor(IDataHandleVisitor *) const =0
INamedInterface
Definition: INamedInterface.h:25
IDataHandleHolder::renounceInput
virtual bool renounceInput(const DataObjID &)=0
IDataHandleHolder::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const =0
DataHandle.h
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:81
IDataHandleVisitor::visit
virtual void visit(const IDataHandleHolder *)=0