The Gaudi Framework  master (37c0b60a)
IAlgResourcePool Class Referenceabstract

#include <GaudiKernel/IAlgResourcePool.h>

Inheritance diagram for IAlgResourcePool:
Collaboration diagram for IAlgResourcePool:

Public Member Functions

 DeclareInterfaceID (IAlgResourcePool, 1, 0)
 InterfaceID. More...
 
virtual StatusCode acquireAlgorithm (std::string_view name, IAlgorithm *&algo, bool blocking=false)=0
 Acquire a certain algorithm using its name. More...
 
virtual StatusCode releaseAlgorithm (std::string_view 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 (std::string_view name)=0
 Acquire a certain resource. More...
 
virtual StatusCode releaseResource (std::string_view name)=0
 Release a certrain resource. More...
 
- Public Member Functions inherited from IInterface
virtual void * i_cast (const InterfaceID &) const =0
 main cast function More...
 
virtual std::vector< std::stringgetInterfaceNames () 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

- Public Types inherited from IInterface
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 Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface. More...
 

Detailed Description

The IAlgResourcePool is the interface for managing algorithm instances, in particular if clones of the same algorithm exist. 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.

Author
Benedikt Hegner
Version
1.0

The IDataBroker interface provides an ordered list of algorithms that are to be executed in order for the provided DataObjID to be produced. 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.

Author
Gerhard Raven
Version
1.0

Definition at line 36 of file IAlgResourcePool.h.

Member Function Documentation

◆ acquireAlgorithm()

virtual StatusCode IAlgResourcePool::acquireAlgorithm ( std::string_view  name,
IAlgorithm *&  algo,
bool  blocking = false 
)
pure virtual

Acquire a certain algorithm using its name.

◆ acquireResource()

virtual StatusCode IAlgResourcePool::acquireResource ( std::string_view  name)
pure virtual

Acquire a certain resource.

◆ DeclareInterfaceID()

IAlgResourcePool::DeclareInterfaceID ( IAlgResourcePool  ,
,
 
)

◆ getFlatAlgList()

virtual std::list<IAlgorithm*> IAlgResourcePool::getFlatAlgList ( )
pure virtual

Get the flat list of algorithms.

◆ getTopAlgList()

virtual std::list<IAlgorithm*> IAlgResourcePool::getTopAlgList ( )
pure virtual

Get top list of algorithms.

◆ releaseAlgorithm()

virtual StatusCode IAlgResourcePool::releaseAlgorithm ( std::string_view  name,
IAlgorithm *&  algo 
)
pure virtual

Release a certain algorithm.

◆ releaseResource()

virtual StatusCode IAlgResourcePool::releaseResource ( std::string_view  name)
pure virtual

Release a certrain resource.


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