| # 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