Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
28 #include "GaudiKernel/MsgStream.h"
29 #include "GaudiKernel/Bootstrap.h"
30 #include "GaudiKernel/IConversionSvc.h"
31 #include "GaudiKernel/ISvcLocator.h"
32 #include "GaudiKernel/IAlgorithm.h"
33 #include "GaudiKernel/DataSvc.h"
44 char* execalgs =
const_cast< char*
>(
"executeAlgorithms" );
54 SmartIF<IEventProcessor> ep{Gaudi::svcLocator()->service(
"PyAthenaEventLoopMgr",
false )};
85 if ( ! PyObject_HasAttrString(
mgr, execalgs ) )
87 PyErr_SetString( PyExc_TypeError,
"given object is not a manager" );
98 PyObject* pyelm = PyImport_AddModule(
const_cast< char*
>(
"AthenaServices.PyAthenaEventLoopMgr" ) );
101 if (PyModule_AddObject( pyelm,
const_cast< char*
>(
"EventLoopMgr" ),
mgr ) < 0) {
107 PyObject* pyself = PyCapsule_New( (
void*)
static_cast< IEventSeek*
>(
this ),
nullptr,
nullptr );
108 #if PY_MAJOR_VERSION < 3
121 if (
old !=
nullptr )
124 Py_INCREF( Py_None );
133 Py_INCREF( Py_None );
149 PyObject* modpyelm = PyImport_ImportModule(
const_cast< char*
>(
"AthenaServices.PyAthenaEventLoopMgr" ) );
152 PyObject* pyelm = PyObject_GetAttrString( modpyelm,
const_cast< char*
>(
"PyAthenaEventLoopMgr" ) );
153 Py_DECREF( modpyelm );
172 return StatusCode::FAILURE;
183 return StatusCode::FAILURE;
197 PyObject* pycontext = PyCapsule_New (
const_cast<EventContext*
>(&ctx),
nullptr,
nullptr);
199 (
char*)
"O", pycontext);
200 Py_DECREF (pycontext);
205 return StatusCode::FAILURE;
208 #if PY_MAJOR_VERSION < 3
216 if ( PyLong_Check(
result ) )
227 <<
"result from python event loop manager has unexpected type."
230 return StatusCode::FAILURE;
The default ATLAS batch event loop manager.
virtual const std::string & name() const
static PyAthenaEventLoopMgr * pointer()
outside access
virtual StatusCode initialize()
implementation of IAppMgrUI::initalize
virtual StatusCode executeAlgorithms(const EventContext &)
Run the algorithms for the current event.
PyAthenaEventLoopMgr()
Unimplemented features to keep Reflex happy.
virtual StatusCode initialize()
implementation of IAppMgrUI::initalize
msgSvc
Provide convenience handles for various services.
::StatusCode StatusCode
StatusCode definition for legacy code.
Implementation of the AthenaEventLoopMgr that allows selective and specific overrides in python....
virtual StatusCode finalize()
implementation of IAppMgrUI::finalize
Implementation of the AthenaEventLoopMgr that allows selective and specific overrides in python....
StringProperty m_clearStorePolicy
Abstract interface for seeking within an event stream.
PyObject * setManager(PyObject *)
actual manager object
virtual StatusCode executeAlgorithms(const EventContext &)
Run the algorithms for the current event.
virtual StatusCode finalize()
implementation of IAppMgrUI::finalize