27 #include "GaudiKernel/System.h"
28 #include "GaudiKernel/INamedInterface.h"
29 #include "GaudiKernel/ServiceHandle.h"
42 ::Auditor(
name, svcLocator ),
62 return PyAthena::callPyMethod(
m_self,
"sysInitialize" );
69 (
"PyAthena::PyComponentMgr/PyComponentMgr",
name() );
70 if ( !pyMgr.retrieve().isSuccess() ) {
71 return StatusCode::FAILURE;
75 m_self = pyMgr->pyObject(
this );
78 return StatusCode::FAILURE;
82 return ::Auditor::sysInitialize();
88 return PyAthena::callPyMethod(
m_self,
"sysFinalize" );
159 const char* evtname = 0;
161 case Initialize: evtname =
"initialize";
break;
162 case ReInitialize: evtname =
"reinitialize";
break;
163 case Execute: evtname =
"execute";
break;
164 case Finalize: evtname =
"finalize";
break;
165 case Start: evtname =
"start";
break;
166 case Stop: evtname =
"stop";
break;
167 case ReStart: evtname =
"restart";
break;
169 return PyAthena::pyAudit (
m_self,
"before", evtname, component.c_str());
175 return PyAthena::pyAudit (
m_self,
"before",
evt.c_str(), component.c_str());
180 const std::string& component,
183 const char* evtname = 0;
185 case Initialize: evtname =
"initialize";
break;
186 case ReInitialize: evtname =
"reinitialize";
break;
187 case Execute: evtname =
"execute";
break;
188 case Finalize: evtname =
"finalize";
break;
189 case Start: evtname =
"start";
break;
190 case Stop: evtname =
"stop";
break;
191 case ReStart: evtname =
"restart";
break;
193 return PyAthena::pyAudit (
m_self,
"after", evtname, component.c_str(),
sc);
198 const std::string& component,
201 return PyAthena::pyAudit (
m_self,
202 "after",
evt.c_str(), component.c_str(),
sc);
215 PyObject* pyobj = TPython::CPPInstance_FromVoidPtr
220 pyobj = TPython::CPPInstance_FromVoidPtr ((
void*)
this,
"PyAthena::Aud");
223 <<
"could not dyncast component [" <<
name() <<
"] to a python "
224 <<
"object of type [" << this->
typeName() <<
"] (probably a missing "
225 <<
"dictionary)" <<
endmsg
226 <<
"fallback to [PyAthena::Aud]..."
232 msg << MSG::WARNING <<
"Could not dyncast component ["
233 <<
name() <<
"] to a pyobject of type ["
237 if ( -1 == PyObject_SetAttrString(o,
"_cppHandle", pyobj) ) {
241 <<
"Could not attach C++ handle [" <<
name() <<
"] to its python "
244 if ( -1 == PyObject_SetAttrString(o,
"_cppHandle", Py_None) ) {
247 <<
"could not attach a dummy C++ handle [" <<
name() <<
"] to its "