| The Gaudi Framework v29r0 (ff2e7097)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | List of all members
IAlgResourcePool Class Referenceabstract

The IAlgResourcePool is the interface for managing algorithm instances, in particular if clones of the same algorithm exist. More...

`#include <GaudiKernel/IAlgResourcePool.h>`

Inheritance diagram for IAlgResourcePool:
[legend]
Collaboration diagram for IAlgResourcePool:
[legend]

## 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 | beginRun ()=0
| Begin Run. More...
virtual StatusCode | endRun ()=0
| End Run. 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...
Public Member Functions inherited from IInterface
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
Public Types inherited from IInterface
enum | Status { SUCCESS = 1, NO_INTERFACE, VERSMISMATCH, 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 InterfaceID & | interfaceID ()
| 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

Definition at line 27 of file IAlgResourcePool.h.

## Member Function Documentation

virtual StatusCode IAlgResourcePool::acquireAlgorithm | ( | const std::string & | name,
|  | IAlgorithm *& | algo,
|  | bool | blocking = `false`
| ) |  |
| pure virtual

Acquire a certain algorithm using its name.

virtual StatusCode IAlgResourcePool::acquireResource | ( | const std::string & | name | ) |
| pure virtual

Acquire a certain resource.

virtual StatusCode IAlgResourcePool::beginRun | ( |  | ) |
| pure virtual

Begin Run.

IAlgResourcePool::DeclareInterfaceID | ( | IAlgResourcePool | ,
|  | 1 | ,
|  | 0 |
| ) |  |

InterfaceID.

virtual StatusCode IAlgResourcePool::endRun | ( |  | ) |
| pure virtual

End Run.

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

Get the flat list of algorithms.

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

Get top list of algorithms.

virtual StatusCode IAlgResourcePool::releaseAlgorithm | ( | const std::string & | name,
|  | IAlgorithm *& | algo
| ) |  |
| pure virtual

Release a certain algorithm.

virtual StatusCode IAlgResourcePool::releaseResource | ( | const std::string & | name | ) |
| pure virtual

Release a certrain resource.

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

- GaudiKernel/GaudiKernel/IAlgResourcePool.h