| The Gaudi Framework v32r1 (f65d50dc)

IDataHandleHolder.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IDATAHANDLEHOLDER
2 #define GAUDIKERNEL_IDATAHANDLEHOLDER 1
3
4 #include "GaudiKernel/DataHandle.h"
5 #include "GaudiKernel/DataObjID.h"
6 #include "GaudiKernel/IInterface.h"
7 #include "GaudiKernel/INamedInterface.h"
8
9 #include <set>
10 #include <vector>
11
12 class IDataHandleVisitor;
13
14 class GAUDI_API IDataHandleHolder : virtual public INamedInterface {
15 public:
16 virtual std::vector<Gaudi::DataHandle*> inputHandles() const = 0;
17 virtual std::vector<Gaudi::DataHandle*> outputHandles() const = 0;
18
19 virtual const DataObjIDColl& extraInputDeps() const = 0;
20 virtual const DataObjIDColl& extraOutputDeps() const = 0;
21
22 virtual void acceptDHVisitor( IDataHandleVisitor* ) const = 0;
23
24 virtual const DataObjIDColl& inputDataObjs() const = 0;
25 virtual const DataObjIDColl& outputDataObjs() const = 0;
26
27 virtual void addDependency( const DataObjID&, const Gaudi::DataHandle::Mode& ) = 0;
28
29 DeclareInterfaceID( IDataHandleHolder, 1, 0 );
30
31 virtual void declare( Gaudi::DataHandle& ) = 0;
32 virtual void renounce( Gaudi::DataHandle& ) = 0;
33 };
34
35 class IDataHandleVisitor {
36 public:
37 virtual ~IDataHandleVisitor() = default;
38 virtual void visit( const IDataHandleHolder* ) = 0;
39 };
40
41 #endif // !GAUDIKERNEL_IDATAHANDLEHOLDER
DataObjID
Definition: DataObjID.h:37
INamedInterface::DeclareInterfaceID
DeclareInterfaceID(INamedInterface, 1, 0)
InterfaceID.
IDataHandleVisitor::visit
virtual void visit(const IDataHandleHolder *)=0
INamedInterface.h
IDataHandleHolder
Definition: IDataHandleHolder.h:14
IDataHandleVisitor::~IDataHandleVisitor
virtual ~IDataHandleVisitor()=default
Gaudi::DataHandle
Definition: DataHandle.h:27
std::unordered_set< DataObjID, DataObjID_Hasher >
DataObjID.h
IDataHandleVisitor
Definition: IDataHandleHolder.h:35
INamedInterface
IInterface compliant class extending IInterface with the name() method.
Definition: INamedInterface.h:15
std::vector
STL class.
Gaudi::DataHandle::Mode
Mode
Definition: DataHandle.h:29
DataHandle.h
GAUDI_API
#define GAUDI_API
Definition: Kernel.h:71
IInterface.h