![]() |
|
|
Generated: 8 Jan 2009 |
00001 // $Id: DLLClassManager.h,v 1.7 2006/12/11 10:37:02 leggett 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( IInterface* iface ); 00032 // virtual destructor 00033 virtual ~DLLClassManager(); 00034 00035 // implementation of IClassManager::loadModule 00036 virtual StatusCode loadModule( const std::string& module, bool fireIncident=true ); 00037 00038 // implmentation of IInterface::addRef 00039 virtual unsigned long addRef(); 00040 // implmentation of IInterface::release 00041 virtual unsigned long release(); 00042 // implementation of IInterface::queryInterface 00043 virtual StatusCode queryInterface(const InterfaceID& iid, void** pinterface); 00044 00045 private: 00046 unsigned long m_refcount; // Reference counter 00047 ISvcLocator* m_svclocator; // Service locator reference 00048 IAlgManager* m_algmanager; // Algorithm manager reference 00049 ISvcManager* m_svcmanager; // Service manager reference 00050 ICnvManager* m_cnvmanager; // Converter manager reference 00051 IObjManager* m_objmanager; // Manager reference for factories not beeing algs, cnvs or svcs 00052 IMessageSvc* m_msgsvc; // Message Service reference 00053 IInterface* m_pOuter; // Interface hub reference (ApplicationMgr) 00054 }; 00055 #endif // GAUDI_DLLCLASSMANAGER_H 00056 00057