The Gaudi Framework  v33r0 (d5ea422b)
IDataHandleHolder.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2019 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:
26  virtual std::vector<Gaudi::DataHandle*> inputHandles() const = 0;
27  virtual std::vector<Gaudi::DataHandle*> outputHandles() const = 0;
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 };
44 
46 public:
47  virtual ~IDataHandleVisitor() = default;
48  virtual void visit( const IDataHandleHolder* ) = 0;
49 };
50 
51 #endif // !GAUDIKERNEL_IDATAHANDLEHOLDER
DeclareInterfaceID(INamedInterface, 1, 0)
InterfaceID.
virtual void visit(const IDataHandleHolder *)=0
virtual ~IDataHandleVisitor()=default
IInterface compliant class extending IInterface with the name() method.
STL class.
#define GAUDI_API
Definition: Kernel.h:81