![]() |
The Gaudi Framework
v30r4 (9b837755)
|
Entity which holds DataHandles and can track the associated data dependencies for the Scheduler. More...
#include <GaudiKernel/IDataHandleHolder.h>
Public Member Functions | |
DeclareInterfaceID (IDataHandleHolder, 1, 0) | |
virtual SmartIF< IDataProviderSvc > & | eventSvc () const =0 |
Provide access to the whiteboard after initialization. More... | |
virtual void | registerDataHandle (Gaudi::v2::DataHandle &)=0 |
Register a data handle of this algorithm/tool. More... | |
virtual void | addDataDependency (const DataObjID &, AccessMode)=0 |
Add a data dependency, even after initialization. More... | |
virtual const DataObjIDColl & | dataDependencies (AccessMode) const =0 |
Tell which whiteboard keys the algorithm will be reading or writing. More... | |
virtual void | declare (Gaudi::v1::DataHandle &)=0 |
Declare ownership of a legacy DataHandle. More... | |
virtual void | renounce (Gaudi::v1::DataHandle &)=0 |
Discard ownership of a legacy DataHandle. More... | |
virtual const DataObjIDColl * | allDataDependencies () const =0 |
Access the internal array of data dependencies. More... | |
Private Types | |
using | AccessMode = Gaudi::v2::DataHandle::AccessMode |
Additional Inherited Members | |
![]() | |
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type |
take union of the ext_iids of all Interfaces... More... | |
Entity which holds DataHandles and can track the associated data dependencies for the Scheduler.
To avoid code duplication between Algorithms and AlgTools, the handle and dependency management functionality has been factored out in a base class template called DataHandleHolderBase. There is only one implementation of this functionality, but due to various C++ limitations pertaining to templates, forward declarations, and circular dependencies, an abstract interface is nevertheless needed in some use cases. Please refer to the DataHandleHolderBase implementation for the full method documentation.
Users of the implementation (Algorithm and AlgTools) are expected to fulfill the INamedInterface requirement, to inherit from PropertyHolder, and to provide access to the event store. This requirement is encoded in code to the extent which C++ will cleanly allow.
Definition at line 41 of file IDataHandleHolder.h.
|
private |
Definition at line 43 of file IDataHandleHolder.h.
|
pure virtual |
Add a data dependency, even after initialization.
|
pure virtual |
Access the internal array of data dependencies.
|
pure virtual |
Tell which whiteboard keys the algorithm will be reading or writing.
|
pure virtual |
Declare ownership of a legacy DataHandle.
IDataHandleHolder::DeclareInterfaceID | ( | IDataHandleHolder | , |
1 | , | ||
0 | |||
) |
|
pure virtual |
Provide access to the whiteboard after initialization.
|
pure virtual |
Register a data handle of this algorithm/tool.
|
pure virtual |
Discard ownership of a legacy DataHandle.