The Gaudi Framework  master (37c0b60a)
DLLClassManager.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2024 CERN for the benefit of the LHCb and ATLAS collaborations *
3 * *
4 * This software is distributed under the terms of the Apache version 2 licence, *
5 * copied verbatim in the file "LICENSE". *
6 * *
7 * In applying this licence, CERN does not waive the privileges and immunities *
8 * granted to it by virtue of its status as an Intergovernmental Organization *
9 * or submit itself to any jurisdiction. *
10 \***********************************************************************************/
11 #ifndef GAUDI_DLLCLASSMANAGER_H
12 #define GAUDI_DLLCLASSMANAGER_H 1
13 
14 // Include files
16 #include <GaudiKernel/Kernel.h>
17 #include <GaudiKernel/SmartIF.h>
18 #include <list>
19 #include <map>
20 #include <string>
21 
22 // Forward declarations
23 class ISvcLocator;
24 class ICnvManager;
25 class IAlgManager;
26 class ISvcManager;
27 class IObjManager;
28 class IMessageSvc;
29 
30 //
31 // ClassName: DLLClassManager
32 //
33 // Description: The ClassManager class is in charge of managing (i.e. loading and
34 // declaring dynamic libraries containing concrete class factories).
35 //
36 // Author: Pere Mato
37 //
38 class DLLClassManager : public implements<IClassManager> {
39 public:
40  // default creator
41  DLLClassManager( IInterface* iface );
42 
43  // implementation of IClassManager::loadModule
44  StatusCode loadModule( const std::string& module, bool fireIncident = true ) override;
45 
47  StatusCode queryInterface( const InterfaceID& iid, void** pinterface ) override;
48 
49 private:
50  SmartIF<ISvcLocator> m_svclocator; // Service locator reference
51  SmartIF<IMessageSvc> m_msgsvc; // Message Service reference
52  SmartIF<IInterface> m_pOuter; // Interface hub reference (ApplicationMgr)
53 };
54 #endif // GAUDI_DLLCLASSMANAGER_H
std::string
STL class.
IMessageSvc
Definition: IMessageSvc.h:47
DLLClassManager::queryInterface
StatusCode queryInterface(const InterfaceID &iid, void **pinterface) override
implementation of IInterface::queryInterface
Definition: DLLClassManager.cpp:80
ISvcLocator
Definition: ISvcLocator.h:46
DLLClassManager::loadModule
StatusCode loadModule(const std::string &module, bool fireIncident=true) override
Definition: DLLClassManager.cpp:40
ISvcManager
Definition: ISvcManager.h:38
DLLClassManager::m_svclocator
SmartIF< ISvcLocator > m_svclocator
Definition: DLLClassManager.h:50
DLLClassManager
Definition: DLLClassManager.h:38
IAlgManager
Definition: IAlgManager.h:37
SmartIF.h
DLLClassManager::m_pOuter
SmartIF< IInterface > m_pOuter
Definition: DLLClassManager.h:52
IClassManager.h
StatusCode
Definition: StatusCode.h:65
DLLClassManager::m_msgsvc
SmartIF< IMessageSvc > m_msgsvc
Definition: DLLClassManager.h:51
SmartIF< ISvcLocator >
DLLClassManager::DLLClassManager
DLLClassManager(IInterface *iface)
Definition: DLLClassManager.cpp:30
implements
Base class used to implement the interfaces.
Definition: implements.h:19
Kernel.h
IInterface
Definition: IInterface.h:239
InterfaceID
Definition: IInterface.h:39