Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  master (d98a2936)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
DLLClassManager.h
Go to the documentation of this file.
1 /***********************************************************************************\
2 * (c) Copyright 1998-2025 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 #pragma once
12 
13 // Include files
15 #include <GaudiKernel/Kernel.h>
16 #include <GaudiKernel/SmartIF.h>
17 #include <list>
18 #include <map>
19 #include <string>
20 
21 // Forward declarations
22 class ISvcLocator;
23 class ICnvManager;
24 class IAlgManager;
25 class ISvcManager;
26 class IObjManager;
27 class IMessageSvc;
28 
29 //
30 // ClassName: DLLClassManager
31 //
32 // Description: The ClassManager class is in charge of managing (i.e. loading and
33 // declaring dynamic libraries containing concrete class factories).
34 //
35 // Author: Pere Mato
36 //
37 class DLLClassManager : public implements<IClassManager> {
38 public:
39  // default creator
40  DLLClassManager( IInterface* iface );
41 
42  // implementation of IClassManager::loadModule
43  StatusCode loadModule( const std::string& module, bool fireIncident = true ) override;
44 
46  StatusCode queryInterface( const InterfaceID& iid, void** pinterface ) override;
47  void const* i_cast( const InterfaceID& iid ) const 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 };
IMessageSvc
Definition: IMessageSvc.h:34
DLLClassManager::queryInterface
StatusCode queryInterface(const InterfaceID &iid, void **pinterface) override
implementation of IInterface::queryInterface
Definition: DLLClassManager.cpp:69
ISvcLocator
Definition: ISvcLocator.h:42
DLLClassManager::loadModule
StatusCode loadModule(const std::string &module, bool fireIncident=true) override
Definition: DLLClassManager.cpp:30
ISvcManager
Definition: ISvcManager.h:30
DLLClassManager::m_svclocator
SmartIF< ISvcLocator > m_svclocator
Definition: DLLClassManager.h:50
DLLClassManager
Definition: DLLClassManager.h:37
IAlgManager
Definition: IAlgManager.h:34
SmartIF.h
DLLClassManager::m_pOuter
SmartIF< IInterface > m_pOuter
Definition: DLLClassManager.h:52
IClassManager.h
StatusCode
Definition: StatusCode.h:64
DLLClassManager::m_msgsvc
SmartIF< IMessageSvc > m_msgsvc
Definition: DLLClassManager.h:51
SmartIF< ISvcLocator >
DLLClassManager::DLLClassManager
DLLClassManager(IInterface *iface)
Definition: DLLClassManager.cpp:25
implements
Base class used to implement the interfaces.
Definition: implements.h:19
DLLClassManager::i_cast
void const * i_cast(const InterfaceID &iid) const override
Definition: DLLClassManager.cpp:76
Kernel.h
IInterface
Definition: IInterface.h:225
InterfaceID
Definition: IInterface.h:38