The Gaudi Framework  v30r4 (9b837755)
IDataHandleHolder Class Referenceabstract

Entity which holds DataHandles and can track the associated data dependencies for the Scheduler. More...

#include <GaudiKernel/IDataHandleHolder.h>

Inheritance diagram for IDataHandleHolder:
Collaboration diagram for IDataHandleHolder:

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 DataObjIDColldataDependencies (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 DataObjIDCollallDataDependencies () const =0
 Access the internal array of data dependencies. More...
 

Private Types

using AccessMode = Gaudi::v2::DataHandle::AccessMode
 

Additional Inherited Members

- Public Types inherited from extend_interfaces< INamedInterface, IProperty >
using ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
 take union of the ext_iids of all Interfaces... More...
 

Detailed Description

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.

Member Typedef Documentation

using IDataHandleHolder::AccessMode = Gaudi::v2::DataHandle::AccessMode
private

Definition at line 43 of file IDataHandleHolder.h.

Member Function Documentation

virtual void IDataHandleHolder::addDataDependency ( const DataObjID ,
AccessMode   
)
pure virtual

Add a data dependency, even after initialization.

virtual const DataObjIDColl* IDataHandleHolder::allDataDependencies ( ) const
pure virtual

Access the internal array of data dependencies.

virtual const DataObjIDColl& IDataHandleHolder::dataDependencies ( AccessMode  ) const
pure virtual

Tell which whiteboard keys the algorithm will be reading or writing.

virtual void IDataHandleHolder::declare ( Gaudi::v1::DataHandle )
pure virtual

Declare ownership of a legacy DataHandle.

IDataHandleHolder::DeclareInterfaceID ( IDataHandleHolder  ,
,
 
)
virtual SmartIF<IDataProviderSvc>& IDataHandleHolder::eventSvc ( ) const
pure virtual

Provide access to the whiteboard after initialization.

virtual void IDataHandleHolder::registerDataHandle ( Gaudi::v2::DataHandle )
pure virtual

Register a data handle of this algorithm/tool.

virtual void IDataHandleHolder::renounce ( Gaudi::v1::DataHandle )
pure virtual

Discard ownership of a legacy DataHandle.


The documentation for this class was generated from the following file: