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

DLLClassManager.h

Go to the documentation of this file.
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 

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