00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/IAlgManager.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $ 00002 #ifndef GAUDIKERNEL_IALGMANAGER_H 00003 #define GAUDIKERNEL_IALGMANAGER_H 00004 00005 // Include files 00006 #include "GaudiKernel/IInterface.h" 00007 #include <string> 00008 #include <list> 00009 00010 // Forward class declaration 00011 class IService; 00012 class IAlgorithm; 00013 class IAlgFactory; 00014 class ISvcLocator; 00015 00016 // Declaration of the interface ID ( interface id, major version, minor version) 00017 static const InterfaceID IID_IAlgManager(14, 1 , 0); 00018 00030 class IAlgManager : virtual public IInterface { 00031 public: 00033 static const InterfaceID& interfaceID() { return IID_IAlgManager; } 00034 00035 // Typedefs 00036 typedef IAlgorithm* (*AlgCreator)(const std::string& algname, ISvcLocator* svcloc); 00037 00039 virtual StatusCode addAlgorithm( IAlgorithm* alg // Pointer to the Algorithm 00040 ) = 0; 00042 virtual StatusCode removeAlgorithm( IAlgorithm* alg // Pointer to the Algorithm 00043 ) = 0; 00046 virtual StatusCode declareAlgCreator( AlgCreator creator, // Static creator function 00047 const std::string& algtype // Algorithm type name 00048 ) = 0; 00050 virtual StatusCode declareAlgModule( const std::string& module, // Shareable library name 00051 const std::string& algtype // Algorithm type name 00052 ) = 0; 00054 virtual StatusCode declareAlgFactory( const IAlgFactory& factory,// Reference to the abastract factory 00055 const std::string& algtype // Algorithm type name 00056 ) = 0; 00059 virtual StatusCode createAlgorithm( const std::string& algtype, // Algorithm type name 00060 const std::string& algname, // Algorithm name to be assigned 00061 IAlgorithm*& alg // Returned algorithm 00062 ) = 0; 00064 virtual StatusCode getAlgorithm( const std::string& name, // Algorithm name to be searched 00065 IAlgorithm*& alg // Returned algorithm 00066 ) const = 0; 00068 virtual bool existsAlgorithm( const std::string& name // Algorithm name to be searched 00069 ) const = 0; 00071 virtual std::list<IAlgorithm*>& getAlgorithms( ) const = 0; 00072 }; 00073 00074 00075 #endif // GAUDI_IALGMANAGER_H
1.2.3 written by Dimitri van Heesch,
© 1997-2000