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
1.2.3 written by Dimitri van Heesch,
© 1997-2000