| The Gaudi Framework v32r1 (f65d50dc)

Namespaces | Classes | Typedefs | Functions
GaudiPython Namespace Reference

GaudiPython.h GaudiPython/GaudiPython.h. More...

## Namespaces
| Bindings
| GaudiAlgs
| GaudiHandles
| HistoUtils
| Persistency
| Pythonizations
| TupleUtils

## Classes
struct | _identity
| It is here due to 'missing'(?) std::identity. More...
class | AlgDecorator
class | CallbackStreamBuf
struct | Helper
class | HistoDecorator
| Simple decorator class to allow to reuse the functionality of GaudiHistos<TYPE> class in pythin. More...
struct | Interface
| Minor mofidication of original Pere's structure GaudiPython::Interface This helper class is nesessary to perform C++ castings from python. More...
struct | Interface< IInterface >
struct | Printer
struct | Printer< ContainedObject >
struct | Printer< DataObject >
class | PyAlg
| general class to embed the existing algorithm/base class into the python More...
class | PyAlgorithm
| Python Algorithm base class. More...
class | TupleAlgDecorator
| Simple class to perform the "decoration" of Tuples in Python/ROOT. More...
class | TupleDecorator
| Simple class which performs the decoration of the standard N-Tuple. More...
class | TupleToolDecorator
| Simple class to perform the "decoration" of Tuples in Python/ROOT. More...

## Typedefs
typedef std::vector< double > | Vector
| useful type definition for implicit loos More...
typedef Vector | Row
typedef std::vector< Row > | Matrix

## Functions
GAUDI_API StatusCode | call_python_method (PyObject *self, const char *method)
| call the python method More...
int GAUDI_API | call_python_method (PyObject *self, const char *method, char *buf)
| call a python method with a string as an argument More...

## Detailed Description

GaudiPython.h GaudiPython/GaudiPython.h.

Namespace for all classes interfacing Gaudi to Python.

The general namespace to hide all Gaudi-python related classes

Author
  Vanya BELYAEV Ivan..nosp@m.Bely.nosp@m.aev@l.nosp@m.app..nosp@m.in2p3.nosp@m..fr

Date
  2005-08-04

## Typedef Documentation

## ◆ Matrix

typedef std::vector<Row> GaudiPython::Matrix

Definition at line 20 of file Vector.h.

## ◆ Row

typedef Vector GaudiPython::Row

Definition at line 19 of file Vector.h.

## ◆ Vector

typedef std::vector<double> GaudiPython::Vector

useful type definition for implicit loos

Definition at line 18 of file Vector.h.

## Function Documentation

## ◆ call_python_method() [1/2]

int GaudiPython::call_python_method | ( | PyObject * | self,
|  | const char * | method,
|  | char * | buf
| ) |  |

call a python method with a string as an argument

Definition at line 12 of file CallbackStreamBuf.cpp.

12 {
13 if ( !self || !method ) { return 1; }
14 PyObject* r = PyObject_CallMethod( self, const_cast<char*>( method ), const_cast<char*>( "s" ), buf );
15 if ( !r ) {
16 std::string err( "Unsuccessful call to bound Python method" );
17 err += method;
18 PyErr_SetString( PyExc_TypeError, err.c_str() );
19 PyErr_Print();
20 return 1;
21 }
22 Py_DECREF( r );
23 return 0;
24 }
std::string
STL class.

## ◆ call_python_method() [2/2]

StatusCode GaudiPython::call_python_method | ( | PyObject * | self,
|  | const char * | method
| ) |  |

call the python method

Definition at line 28 of file Algorithm.cpp.

28 {
29 StatusCode sc = StatusCode::FAILURE;
30 // check arguments
31 if ( !self || !method ) { return StatusCode::FAILURE; }
32
33 // call Python
34 PyObject* r = PyObject_CallMethod( self, chr( method ), nullptr );
35
36 if ( !r ) {
37 PyErr_Print();
38 return sc;
39 } // RETURN
40
41 if ( PyInt_Check( r ) ) {
42 sc = StatusCode( PyInt_AS_LONG( r ) );
43 Py_DECREF( r );
44 return sc;
45 } // RETURN
46
47 // look for the method getCode with the signature:
48 // ' int getCode() '
49 PyObject* c = PyObject_CallMethod( r, chr( "getCode" ), nullptr );
50
51 if ( !c ) {
52 PyErr_Print();
53 } else if ( PyLong_Check( c ) ) {
54 sc = StatusCode( PyLong_AsLong( c ) );
55 } else {
56 std::string msg( " call_python_method unexpected type from '" );
57 msg += method;
58 msg += "().getCode()' ";
59 PyErr_SetString( PyExc_TypeError, msg.c_str() );
60 PyErr_Print();
61 }
62 // release used objects
63 Py_XDECREF( c );
64 Py_XDECREF( r );
65 //
66 return sc;
67 }
gaudirun.c
c
Definition: gaudirun.py:487
std::string
STL class.
StatusCode
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
GaudiMP.FdsRegistry.msg
msg
Definition: FdsRegistry.py:8
StatusCode::FAILURE
constexpr static const auto FAILURE
Definition: StatusCode.h:86