#include <PyAthenaSvc.h>
Definition at line 31 of file PyAthenaSvc.h.
◆ Svc() [1/2]
PyAthena::Svc::Svc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
svcLocator |
|
) |
| |
Constructor with parameters:
Definition at line 41 of file PyAthenaSvc.cxx.
42 base_class(
name, svcLocator ),
◆ ~Svc()
◆ Svc() [2/2]
◆ finalize()
StatusCode PyAthena::Svc::finalize |
( |
| ) |
|
|
overridevirtual |
◆ handle()
void PyAthena::Svc::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtual |
callback method for the IIncidentSvc
Definition at line 122 of file PyAthenaSvc.cxx.
125 if (0 == PyObject_HasAttrString (
m_self, (
char*)
"handle")) {
132 PyObject *o = TPython::CPPInstance_FromVoidPtr ((
void*)(&inc),
"Incident");
◆ initialize()
StatusCode PyAthena::Svc::initialize |
( |
| ) |
|
|
overridevirtual |
◆ reinitialize()
StatusCode PyAthena::Svc::reinitialize |
( |
| ) |
|
|
overridevirtual |
◆ self()
virtual PyObject* PyAthena::Svc::self |
( |
| ) |
|
|
inlineoverridevirtual |
return associated python object.
BORROWED reference.
Definition at line 68 of file PyAthenaSvc.h.
◆ setPyAttr()
bool PyAthena::Svc::setPyAttr |
( |
PyObject * |
pyobj | ) |
|
|
overrideprotectedvirtual |
attach the C++ component to its python cousin
Definition at line 154 of file PyAthenaSvc.cxx.
158 PyObject* pyobj = TPython::CPPInstance_FromVoidPtr
163 pyobj = TPython::CPPInstance_FromVoidPtr ((
void*)
this,
"PyAthena::Svc");
165 (
"could not dyncast component [" <<
name() <<
"] to a python "
166 <<
"object of type [" << this->
typeName() <<
"] (probably a missing "
167 <<
"dictionary)" <<
endmsg
168 <<
"fallback to [PyAthena::Svc]...");
173 (
"Could not dyncast component [" <<
name() <<
"] to a pyobject of type ["
176 if ( -1 == PyObject_SetAttrString(o,
"_cppHandle", pyobj) ) {
179 (
"Could not attach C++ handle [" <<
name() <<
"] to its python "
181 if ( -1 == PyObject_SetAttrString(o,
"_cppHandle", Py_None) ) {
184 (
"could not attach a dummy C++ handle [" <<
name() <<
"] to its "
185 <<
"python cousin !");
◆ start()
StatusCode PyAthena::Svc::start |
( |
| ) |
|
|
overridevirtual |
◆ stop()
StatusCode PyAthena::Svc::stop |
( |
| ) |
|
|
overridevirtual |
◆ sysInitialize()
StatusCode PyAthena::Svc::sysInitialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 90 of file PyAthenaSvc.cxx.
93 (
"PyAthena::PyComponentMgr/PyComponentMgr",
name() );
94 if ( !pyMgr.retrieve().isSuccess() ) {
96 (
"Could not retrieve service [" << pyMgr.typeAndName() <<
"] !!");
97 return StatusCode::FAILURE;
101 m_self = pyMgr->pyObject(
this );
103 if (
m_self == Py_None ) {
105 return StatusCode::FAILURE;
109 return SvcBase_t::sysInitialize();
◆ typeName()
const char * PyAthena::Svc::typeName |
( |
| ) |
const |
|
override |
return the std::type_info
name of the underlying py-component This is used by concrete implementations to connect a python component to its C++ counter-part
Definition at line 114 of file PyAthenaSvc.cxx.
117 return tname.c_str();
◆ m_self
Pointer to self (from the python world)
Definition at line 89 of file PyAthenaSvc.h.
The documentation for this class was generated from the following files: