The Gaudi Framework  master (01b473db)
IAlgManager Class Referenceabstract

#include <GaudiKernel/IAlgManager.h>

Inheritance diagram for IAlgManager:
Collaboration diagram for IAlgManager:

Public Member Functions

 DeclareInterfaceID (IAlgManager, 6, 0)
 InterfaceID. More...
 
virtual StatusCode addAlgorithm (IAlgorithm *alg)=0
 Add an algorithm to the list of known algorithms. More...
 
virtual StatusCode removeAlgorithm (IAlgorithm *alg)=0
 Remove an algorithm from the list of known algorithms. More...
 
virtual StatusCode createAlgorithm (const std::string &algtype, const std::string &algname, IAlgorithm *&alg, bool managed=false, bool checkIfExists=true)=0
 Create an instance of a algorithm type that has been declared beforehand and assigns to it a name. More...
 
virtual bool existsAlgorithm (std::string_view name) const =0
 Check the existence of an algorithm with a given name in the list of known algorithms. More...
 
virtual std::vector< IAlgorithm * > getAlgorithms () const =0
 Return the list of Algorithms. More...
 
virtual SmartIF< IAlgorithm > & algorithm (const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
 Returns a smart pointer to a service. More...
 
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. More...
 
- Public Member Functions inherited from IComponentManager
 DeclareInterfaceID (IComponentManager, 1, 0)
 InterfaceID. More...
 
virtual const InterfaceIDcomponentBaseInterface () const =0
 Basic interface id of the managed components. More...
 
virtual void outputLevelUpdate ()=0
 Function to call to update the outputLevel of the components (after a change in MessageSvc). More...
 
- Public Member Functions inherited from IStateful
 DeclareInterfaceID (IStateful, 1, 0)
 InterfaceID. More...
 
virtual StatusCode configure ()=0
 Configuration (from OFFLINE to CONFIGURED). More...
 
virtual StatusCode initialize ()=0
 Initialization (from CONFIGURED to INITIALIZED). More...
 
virtual StatusCode start ()=0
 Start (from INITIALIZED to RUNNING). More...
 
virtual StatusCode stop ()=0
 Stop (from RUNNING to INITIALIZED). More...
 
virtual StatusCode finalize ()=0
 Finalize (from INITIALIZED to CONFIGURED). More...
 
virtual StatusCode terminate ()=0
 Initialization (from CONFIGURED to OFFLINE). More...
 
virtual StatusCode reinitialize ()=0
 Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED). More...
 
virtual StatusCode restart ()=0
 Initialization (from RUNNING to RUNNING, via INITIALIZED). More...
 
virtual Gaudi::StateMachine::State FSMState () const =0
 Get the current state. More...
 
virtual Gaudi::StateMachine::State targetFSMState () const =0
 When we are in the middle of a transition, get the state where the transition is leading us. More...
 
- Public Member Functions inherited from IInterface
template<Gaudi::IsInterface TARGET>
TARGET * cast ()
 
template<Gaudi::IsInterface TARGET>
TARGET const * cast () const
 
template<typename TARGET >
 requires (!Gaudi::IsInterface< TARGET >) TARGET *cast()
 
template<typename TARGET >
 requires (!Gaudi::IsInterface< TARGET >) TARGET const *cast() const
 
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 () const =0
 Increment the reference count of Interface instance. More...
 
virtual unsigned long release () const =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...
 
virtual void const * i_cast (const InterfaceID &) const =0
 
void * i_cast (const InterfaceID &iid)
 

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...
 
- Protected Member Functions inherited from IInterface
virtual unsigned long decRef () const =0
 Decrement reference count and return the new reference count. More...
 

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 34 of file IAlgManager.h.

Member Function Documentation

◆ addAlgorithm()

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

Add an algorithm to the list of known algorithms.

◆ algorithm() [1/2]

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.

Definition at line 66 of file IAlgManager.h.

66  {
67  return SmartIF<T>( algorithm( typeName, createIf ) );
68  }

◆ algorithm() [2/2]

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

Returns a smart pointer to a service.

◆ createAlgorithm()

virtual StatusCode IAlgManager::createAlgorithm ( const std::string &  algtype,
const std::string &  algname,
IAlgorithm *&  alg,
bool  managed = false,
bool  checkIfExists = true 
)
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.

◆ DeclareInterfaceID()

IAlgManager::DeclareInterfaceID ( IAlgManager  ,
,
 
)

◆ existsAlgorithm()

virtual bool IAlgManager::existsAlgorithm ( std::string_view  name) const
pure virtual

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

◆ getAlgorithms()

virtual std::vector<IAlgorithm*> IAlgManager::getAlgorithms ( ) const
pure virtual

Return the list of Algorithms.

◆ removeAlgorithm()

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

Remove an algorithm from the list of known algorithms.


The documentation for this class was generated from the following file:
IAlgManager::algorithm
virtual SmartIF< IAlgorithm > & algorithm(const Gaudi::Utils::TypeNameString &typeName, const bool createIf=true)=0
Returns a smart pointer to a service.
SmartIF
Definition: IConverter.h:22
GaudiDict::typeName
std::string typeName(const std::type_info &typ)
Definition: Dictionary.cpp:31