Gaudi Framework, version v20r4

Generated: 8 Jan 2009

DLLClassManager.h

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

Generated at Thu Jan 8 17:44:22 2009 for Gaudi Framework, version v20r4 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004