00001 // $Header: /nfs/slac/g/glast/ground/cvs/GaudiSvc/src/ApplicationMgr/DLLClassManager.h,v 1.1.1.3 2001/04/18 18:32:48 tlindner Exp $ // 00002 00003 #ifndef GAUDI_DLLCLASSMANAGER_H 00004 #define GAUDI_DLLCLASSMANAGER_H 1 00005 00006 // Include files 00007 #include "GaudiKernel/Kernel.h" 00008 #include "GaudiKernel/IClassManager.h" 00009 #include <string> 00010 #include <list> 00011 #include <map> 00012 00013 // Forward declarations 00014 class ISvcLocator; 00015 class ICnvManager; 00016 class IAlgManager; 00017 class ISvcManager; 00018 class IObjManager; 00019 00020 // 00021 // ClassName: DLLClassManager 00022 // 00023 // Description: The ClassManager class is in charge of managing (i.e. loading and 00024 // declarating dynamic libraries containg concrete class factories). 00025 // 00026 // Author: Pere Mato 00027 // 00028 class DLLClassManager : virtual public IClassManager { 00029 public: 00030 // default creator 00031 DLLClassManager( ISvcLocator* svclocator ); 00032 // virtual destructor 00033 virtual ~DLLClassManager(); 00034 00035 // implementation of IClassManager::declareFactory 00036 virtual StatusCode declareFactory( const IFactory& factory ); 00037 // implementation of IClassManager::loadModule 00038 virtual StatusCode loadModule( const std::string& module ); 00039 00040 // implmentation of IInterface::addRef 00041 virtual unsigned long addRef(); 00042 // implmentation of IInterface::release 00043 virtual unsigned long release(); 00044 // implementation of IInterface::queryInterface 00045 virtual StatusCode queryInterface(const IID& iid, void** pinterface); 00046 00047 private: 00048 unsigned long m_refcount; // Reference counter 00049 ISvcLocator* m_svclocator; // Service locator reference 00050 IAlgManager* m_algmanager; // Algorithm manager reference 00051 ISvcManager* m_svcmanager; // Service manager reference 00052 ICnvManager* m_cnvmanager; // Converter manager reference 00053 IObjManager* m_objmanager; // Manager reference for factories not beeing algs, cnvs or svcs 00054 IMessageSvc* m_msgsvc; // Message Service reference 00055 }; 00056 #endif // GAUDI_DLLCLASSMANAGER_H 00057 00058
1.2.3 written by Dimitri van Heesch,
© 1997-2000