![]() |
The Gaudi Framework
v31r0 (aeb156f0)
|
The IAlgResourcePool is the interface for managing algorithm instances, in particular if clones of the same algorithm exist. More...
#include <GaudiKernel/IAlgResourcePool.h>
Public Member Functions | |
DeclareInterfaceID (IAlgResourcePool, 1, 0) | |
InterfaceID. More... | |
virtual StatusCode | acquireAlgorithm (const std::string &name, IAlgorithm *&algo, bool blocking=false)=0 |
Acquire a certain algorithm using its name. More... | |
virtual StatusCode | releaseAlgorithm (const std::string &name, IAlgorithm *&algo)=0 |
Release a certain algorithm. More... | |
virtual std::list< IAlgorithm * > | getFlatAlgList ()=0 |
Get the flat list of algorithms. More... | |
virtual std::list< IAlgorithm * > | getTopAlgList ()=0 |
Get top list of algorithms. More... | |
virtual StatusCode | acquireResource (const std::string &name)=0 |
Acquire a certain resource. More... | |
virtual StatusCode | releaseResource (const std::string &name)=0 |
Release a certrain resource. More... | |
![]() | |
virtual void * | i_cast (const InterfaceID &) const =0 |
main cast function More... | |
virtual std::vector< std::string > | getInterfaceNames () const =0 |
Returns a vector of strings containing the names of all the implemented interfaces. More... | |
virtual unsigned long | addRef ()=0 |
Increment the reference count of Interface instance. More... | |
virtual unsigned long | release ()=0 |
Release Interface instance. More... | |
virtual unsigned long | refCount () const =0 |
Current reference count. More... | |
virtual StatusCode | queryInterface (const InterfaceID &ti, void **pp)=0 |
Set the void** to the pointer to the requested interface of the instance. More... | |
virtual | ~IInterface ()=default |
Virtual destructor. More... | |
Additional Inherited Members | |
![]() | |
enum | Status : StatusCode::code_t { Status::FAILURE = 0, Status::SUCCESS = 1, Status::NO_INTERFACE, Status::VERSMISMATCH, Status::LAST_ERROR } |
Return status. More... | |
using | iid = Gaudi::InterfaceId< IInterface, 0, 0 > |
Interface ID. More... | |
using | ext_iids = Gaudi::interface_list< iid > |
Extra interfaces. More... | |
![]() | |
static const InterfaceID & | interfaceID () |
Return an instance of InterfaceID identifying the interface. More... | |
The IAlgResourcePool is the interface for managing algorithm instances, in particular if clones of the same algorithm exist.
The IDataBroker interface provides an ordered list of algorithms that are to be executed in order for the provided DataObjID to be produced.
It as well manages the shared resources between different algorithms and ensures that not two algorithms with the same non-thread-safe resource needs are made available. The actual creation and deletion of algorithm instances is done through the IAlgManager service.
Note that this list is both neccessary and sufficient, in the sense that in the absence of errors encountered during the execution, there will be an item at DataObjID after executing this sequence.
The actual creation and deletion of algorithm instances implied by this interface is assumed to implemented through the IAlgManager service.
Definition at line 26 of file IAlgResourcePool.h.
|
pure virtual |
Acquire a certain algorithm using its name.
|
pure virtual |
Acquire a certain resource.
IAlgResourcePool::DeclareInterfaceID | ( | IAlgResourcePool | , |
1 | , | ||
0 | |||
) |
|
pure virtual |
Get the flat list of algorithms.
|
pure virtual |
Get top list of algorithms.
|
pure virtual |
Release a certain algorithm.
|
pure virtual |
Release a certrain resource.