Salome HOME
PR: merge from BR_DATACONV_PR tag "mergeto_trunk_25oct06"
[modules/yacs.git] / src / runtime / PythonCORBAConv.hxx
1 #ifndef __PYTHONCORBACONV_HXX__
2 #define __PYTHONCORBACONV_HXX__
3
4 #include <Python.h>
5
6 #include "CORBAPorts.hxx"
7
8 namespace YACS
9 {
10   namespace ENGINE
11   {
12
13     // --- convertisseurs Python->Corba pour les diffĂ©rents types
14
15     class PyCorbaInt : public ProxyPort
16     {
17     public:
18       PyCorbaInt(InputCorbaPort* p)
19         : ProxyPort(p), Port(p->getNode()) {}
20       virtual void put(const void *data) throw(ConversionException);
21       void put(PyObject *data) throw(ConversionException);
22     };
23
24     class PyCorbaDouble : public ProxyPort
25     {
26     public:
27       PyCorbaDouble(InputCorbaPort* p)
28         : ProxyPort(p), Port(p->getNode()) {}
29       virtual void put(const void *data) throw(ConversionException);
30       void put(PyObject *data) throw(ConversionException);
31     };
32
33     class PyCorbaString : public ProxyPort
34     {
35     public:
36       PyCorbaString(InputCorbaPort* p)
37         : ProxyPort(p), Port(p->getNode()) {}
38       virtual void put(const void *data) throw(ConversionException);
39       void put(PyObject *data) throw(ConversionException);
40     };
41
42     class PyCorbaObjref : public ProxyPort
43     {
44     public:
45       PyCorbaObjref(InputCorbaPort* p);
46       virtual void put(const void *data) throw(ConversionException);
47       void put(PyObject *data) throw(ConversionException);
48     protected:
49       PyObject * _pyorb;
50       CORBA::ORB_var _orb;
51     };
52
53     class PyCorbaSequence : public ProxyPort
54     {
55     public:
56       PyCorbaSequence(InputCorbaPort* p);
57       virtual void put(const void *data) throw(ConversionException);
58       void put(PyObject *data) throw(ConversionException);
59     };
60
61   }
62 }
63 #endif