ATLAS Offline Software
PyComponentMgr.h
Go to the documentation of this file.
1 
3 /*
4  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 // PyComponentMgr.h
8 // Header file for class PyAthena::PyComponentMgr
9 // Author: S.Binet<binet@cern.ch>
11 #ifndef ATHENAPYTHON_PYCOMPONENTMGR_H
12 #define ATHENAPYTHON_PYCOMPONENTMGR_H
13 
14 // STL includes
15 #include <string>
16 #include <unordered_map>
17 
18 // FrameWork includes
19 #include "GaudiKernel/ServiceHandle.h"
22 
23 // AthenaPython includes
25 
26 // Forward declaration
27 class ISvcLocator;
28 template <class TYPE> class SvcFactory;
29 struct _object;
30 typedef _object PyObject;
31 class IPyComponent;
32 
33 namespace PyAthena {
34 
36  : public extends<AthService, IPyComponentMgr>
37 {
38  friend class SvcFactory<PyAthena::PyComponentMgr>;
39 
41  // Public methods:
43  public:
44 
45  // Copy constructor:
46 
48  PyComponentMgr( const std::string& name, ISvcLocator* pSvcLocator );
49 
51  virtual ~PyComponentMgr();
52 
54 
55  virtual StatusCode initialize() override;
56  virtual StatusCode finalize() override;
58 
63  virtual PyObject* pyObject( IPyComponent* component ) override;
64 
65 
66 private:
67 
69 
70 
71  private:
72 
82  PyObject* m_dict;
83 
84  typedef std::unordered_map<std::string, PyObject*> PyComponents_t;
90  PyComponents_t m_components;
91 };
92 
93 } //> namespace PyAthena
94 
95 #endif //> ATHENAPYTHON_PYATHENA_PYCOMPONENTMGR_H
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:53
initialize
void initialize()
Definition: run_EoverP.cxx:894
SvcFactory
Definition: AthCnvSvc.h:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
IPyComponent
Definition: IPyComponent.h:31
PyAthena::PyComponentMgr::PyComponents_t
std::unordered_map< std::string, PyObject * > PyComponents_t
Definition: PyComponentMgr.h:84
PyObject
_object PyObject
Definition: PyComponentMgr.h:29
IPyComponentMgr.h
PyAthena
Definition: IPyComponent.h:28
calibdata.delete
list delete
Definition: calibdata.py:46
AthService.h
checker_macros.h
Define macros for attributes used to control the static checker.
PyObject
_object PyObject
Definition: IPyComponent.h:26
PyAthena::PyComponentMgr
Definition: PyComponentMgr.h:37
PyAthena::ATLAS_NOT_THREAD_SAFE
StatusCode callPyMethod ATLAS_NOT_THREAD_SAFE(PyObject *self, const char *method, PyObject *arg=nullptr)
call the python method