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

ISvcManager.h

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiKernel/GaudiKernel/ISvcManager.h,v 1.1.1.1 2001/04/18 18:14:18 tlindner Exp $
00002 #ifndef GAUDIKERNEL_ISVCMANAGER_H
00003 #define GAUDIKERNEL_ISVCMANAGER_H
00004 
00005 // Include files
00006 #include "GaudiKernel/IInterface.h"
00007 #include <string>
00008 
00009 // Forward class declaration
00010 class IService;
00011 class ISvcLocator;
00012 class ISvcFactory;
00013 
00014 // Declaration of the interface ID ( interface id, major version, minor version) 
00015 static const InterfaceID IID_ISvcManager(13, 1 , 0); 
00016 
00028 class ISvcManager : virtual public  IInterface  {
00029 public:
00031   typedef IService* (*SvcCreator)(const std::string& svcname, ISvcLocator* svcloc);
00032 
00034   static const InterfaceID& interfaceID() { return IID_ISvcManager; }
00035 
00039   virtual StatusCode addService( IService* svc ) = 0;
00040 
00044   virtual StatusCode removeService( IService* svc ) = 0;
00045 
00050   virtual StatusCode declareSvcCreator( SvcCreator creator, 
00051                                         const std::string& svctype ) = 0;
00052 
00058   virtual StatusCode declareSvcModule( const std::string& module, 
00059                                        const std::string& svctype ) = 0;
00060 
00065   virtual StatusCode declareSvcFactory( const ISvcFactory& factory, 
00066                                         const std::string& svctype ) = 0;
00067 
00074   virtual StatusCode createService( const std::string& svctype,
00075                                     const std::string& svcname,
00076                                     IService*& svc ) = 0;
00077 };
00078 
00079 #endif  // GAUDIKERNEL_ISVCMANAGER_H
00080 

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