Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

IAlgManager.h

Go to the documentation of this file.
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

Generated at Wed Nov 21 12:22:03 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000