The Gaudi Framework  master (594c33fa)
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 (std::string algtype, 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 StatusCode getAlgorithm (std::string_view name, IAlgorithm *&alg) const
 Find an algorithm with given name in the list of known algorithms. 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 const 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
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 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 37 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 79 of file IAlgManager.h.

79  {
80  return SmartIF<T>( algorithm( typeName, createIf ) );
81  }

◆ 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 ( std::string  algtype,
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.

◆ getAlgorithm()

virtual StatusCode IAlgManager::getAlgorithm ( std::string_view  name,
IAlgorithm *&  alg 
) const
inlinevirtual

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

Definition at line 59 of file IAlgManager.h.

61  {
62  SmartIF<IAlgorithm>& si = const_cast<IAlgManager*>( this )->algorithm( name, false );
63  alg = si.get();
65  }

◆ getAlgorithms()

virtual const 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:
ManySmallAlgs.alg
alg
Definition: ManySmallAlgs.py:81
IAlgManager
Definition: IAlgManager.h:37
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:25
StatusCode::SUCCESS
constexpr static const auto SUCCESS
Definition: StatusCode.h:100
ConditionsStallTest.name
name
Definition: ConditionsStallTest.py:77
SmartIF::get
TYPE * get() const
Get interface pointer.
Definition: SmartIF.h:86
GaudiDict::typeName
std::string typeName(const std::type_info &typ)
Definition: Dictionary.cpp:31
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:101