00001
00002 #ifndef GAUDIKERNEL_ISVCMANAGER_H
00003 #define GAUDIKERNEL_ISVCMANAGER_H
00004
00005
00006 #include "GaudiKernel/IInterface.h"
00007 #include <string>
00008
00009
00010 class IService;
00011 class ISvcLocator;
00012 class ISvcFactory;
00013
00014
00015 static const InterfaceID IID_ISvcManager(13, 3 , 1);
00016
00026 class ISvcManager : virtual public IInterface {
00027 public:
00028
00030 static const InterfaceID& interfaceID() { return IID_ISvcManager; }
00031
00037 virtual StatusCode addService( IService* svc, int prio ) = 0;
00038
00044 virtual StatusCode addService( const std::string& typ, const std::string& nam, int prio ) = 0;
00045
00051 virtual StatusCode removeService( IService* svc ) = 0;
00052
00058 virtual StatusCode removeService( const std::string& nam ) = 0;
00059
00066 virtual StatusCode declareSvcFactory( const ISvcFactory& factory,
00067 const std::string& svctype ) = 0;
00068
00075 virtual StatusCode declareSvcType( const std::string& svcname,
00076 const std::string& svctype ) = 0;
00077
00086 virtual StatusCode createService( const std::string& svctype,
00087 const std::string& svcname,
00088 IService*& svc ) = 0;
00089
00096 virtual StatusCode getFactory( const std::string& svc_type,
00097 const ISvcFactory*& fac) const = 0;
00098
00103 virtual StatusCode initializeServices() = 0;
00104
00109 virtual StatusCode startServices() = 0;
00110
00115 virtual StatusCode stopServices() = 0;
00116
00121 virtual StatusCode finalizeServices() = 0;
00122
00127 virtual StatusCode reinitializeServices() = 0;
00128
00133 virtual StatusCode restartServices() = 0;
00134
00135 virtual int getPriority(const std::string& name) const = 0;
00136 virtual StatusCode setPriority(const std::string& name, int pri) = 0;
00137
00139 virtual bool loopCheckEnabled() const = 0;
00141 virtual void setLoopCheckEnabled(bool en = true) = 0;
00142
00143 };
00144
00145 #endif // GAUDIKERNEL_ISVCMANAGER_H
00146