Gaudi Framework, version v21r8

Home   Generated: 17 Mar 2010

IAlgManager Class Reference

The IAlgManager is the interface implemented by the Algorithm Factory in the Application Manager to support management functions. More...

#include <GaudiKernel/IAlgManager.h>

Inheritance diagram for IAlgManager:

Inheritance graph
[legend]
Collaboration diagram for IAlgManager:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 DeclareInterfaceID (IAlgManager, 5, 0)
 InterfaceID.
virtual StatusCode addAlgorithm (IAlgorithm *alg)=0
 Add an algorithm to the list of known algorithms.
virtual StatusCode removeAlgorithm (IAlgorithm *alg)=0
 Remove an algorithm from the list of known algorithms.
virtual StatusCode createAlgorithm (const std::string &algtype, const std::string &algname, IAlgorithm *&alg, bool managed=false)=0
 Create an instance of a algorithm type that has been declared beforehand and assigns to it a name.
virtual StatusCode getAlgorithm (const std::string &name, IAlgorithm *&alg) const
 Find an algorithm with given name in the list of known algorithms.
virtual bool existsAlgorithm (const std::string &name) const =0
 Check the existence of an algorithm with a given name in the list of known algorithms.
virtual const std::list
< IAlgorithm * > & 
getAlgorithms () const =0
 Return the list of Algorithms.
virtual StatusCode initializeAlgorithms ()
 Initializes the list of "managed" algorithms.
virtual StatusCode startAlgorithms ()
 Starts the list of "managed" algorithms.
virtual StatusCode stopAlgorithms ()
 Stops the list of "managed" algorithms.
virtual StatusCode finalizeAlgorithms ()
 Finalizes the list of "managed" algorithms.
virtual StatusCode reinitializeAlgorithms ()
 Initializes the list of "managed" algorithms.
virtual StatusCode restartAlgorithms ()
 Starts the list of "managed" algorithms.
virtual SmartIF< IAlgorithm > & algorithm (const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
 Returns a smart pointer to a service.
template<typename T>
SmartIF< T > algorithm (const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)
 Returns a smart pointer to the requested interface of a service.


Detailed Description

The IAlgManager is the interface implemented by the Algorithm Factory in the Application Manager to support management functions.

Clients use this interface to declare abstract algorithm factories, and to create concrete instances of algorithms. There are currently 3 methods for the declaration: static creator method (creator), an abstract factory (factory) or a sharable library (module).

Author:
Pere Mato

Definition at line 28 of file IAlgManager.h.


Member Function Documentation

IAlgManager::DeclareInterfaceID ( IAlgManager  ,
,
 
)

virtual StatusCode IAlgManager::addAlgorithm ( IAlgorithm alg  )  [pure virtual]

Add an algorithm to the list of known algorithms.

Implemented in AlgorithmManager.

virtual StatusCode IAlgManager::removeAlgorithm ( IAlgorithm alg  )  [pure virtual]

Remove an algorithm from the list of known algorithms.

Implemented in AlgorithmManager.

virtual StatusCode IAlgManager::createAlgorithm ( const std::string algtype,
const std::string algname,
IAlgorithm *&  alg,
bool  managed = false 
) [pure virtual]

Create an instance of a algorithm type that has been declared beforehand and assigns to it a name.

It returns a pointer to an IAlgorithm.

Implemented in AlgorithmManager.

virtual StatusCode IAlgManager::getAlgorithm ( const std::string name,
IAlgorithm *&  alg 
) const [inline, virtual]

Find an algorithm with given name in the list of known algorithms.

Definition at line 48 of file IAlgManager.h.

00050                                          {
00051     SmartIF<IAlgorithm> &si = const_cast<IAlgManager*>(this)->algorithm(name, false);
00052     alg = si.get();
00053     return si.isValid() ? StatusCode::SUCCESS : StatusCode::FAILURE;
00054   }

virtual bool IAlgManager::existsAlgorithm ( const std::string name  )  const [pure virtual]

Check the existence of an algorithm with a given name in the list of known algorithms.

Implemented in AlgorithmManager.

virtual const std::list<IAlgorithm*>& IAlgManager::getAlgorithms (  )  const [pure virtual]

Return the list of Algorithms.

Implemented in AlgorithmManager.

virtual StatusCode IAlgManager::initializeAlgorithms (  )  [inline, virtual]

Initializes the list of "managed" algorithms.

Definition at line 64 of file IAlgManager.h.

00064 { return initialize(); }

virtual StatusCode IAlgManager::startAlgorithms (  )  [inline, virtual]

Starts the list of "managed" algorithms.

Definition at line 67 of file IAlgManager.h.

00067 { return start(); }

virtual StatusCode IAlgManager::stopAlgorithms (  )  [inline, virtual]

Stops the list of "managed" algorithms.

Definition at line 70 of file IAlgManager.h.

00070 { return stop(); }

virtual StatusCode IAlgManager::finalizeAlgorithms (  )  [inline, virtual]

Finalizes the list of "managed" algorithms.

Definition at line 73 of file IAlgManager.h.

00073 { return finalize(); }

virtual StatusCode IAlgManager::reinitializeAlgorithms (  )  [inline, virtual]

Initializes the list of "managed" algorithms.

Definition at line 76 of file IAlgManager.h.

00076 { return reinitialize(); }

virtual StatusCode IAlgManager::restartAlgorithms (  )  [inline, virtual]

Starts the list of "managed" algorithms.

Definition at line 79 of file IAlgManager.h.

00079 { return restart(); }

virtual SmartIF<IAlgorithm>& IAlgManager::algorithm ( const Gaudi::Utils::TypeNameString &  typeName,
const bool  createIf = true 
) [pure virtual]

Returns a smart pointer to a service.

Implemented in AlgorithmManager.

template<typename T>
SmartIF<T> IAlgManager::algorithm ( const Gaudi::Utils::TypeNameString &  typeName,
const bool  createIf = true 
) [inline]

Returns a smart pointer to the requested interface of a service.

Reimplemented in AlgorithmManager.

Definition at line 87 of file IAlgManager.h.

00087                                                                                                     {
00088     return SmartIF<T>(algorithm(typeName, createIf));
00089   }


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

Generated at Wed Mar 17 18:17:42 2010 for Gaudi Framework, version v21r8 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004