2 #include "TypeConversions.hxx"
3 #include "RuntimeSALOME.hxx"
4 #include "CORBAPythonConv.hxx"
5 #include "PythonPorts.hxx"
10 #include "YacsTrace.hxx"
12 using namespace YACS::ENGINE;
15 CorbaPyDouble::CorbaPyDouble(InputPyPort* p)
16 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
19 void CorbaPyDouble::put(const void *data) throw(ConversionException)
21 put((CORBA::Any *)data);
24 //!Convert a CORBA::Any double to PyObject Double
26 * \param data : CORBA::Any object
28 void CorbaPyDouble::put(CORBA::Any *data) throw(ConversionException)
30 InterpreterUnlocker loc;
31 PyObject* ob=convertCorbaPyObject(edGetType(),data);
32 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
38 CorbaPyInt::CorbaPyInt(InputPyPort* p)
39 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
42 void CorbaPyInt::put(const void *data) throw(ConversionException)
44 put((CORBA::Any *)data);
47 //!Convert a CORBA::Any long to a PyObject Int
49 * \param data : CORBA::Any object
51 void CorbaPyInt::put(CORBA::Any *data) throw(ConversionException)
53 InterpreterUnlocker loc;
54 PyObject* ob=convertCorbaPyObject(edGetType(),data);
55 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
60 CorbaPyString::CorbaPyString(InputPyPort* p)
61 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
63 void CorbaPyString::put(const void *data) throw(ConversionException)
65 put((CORBA::Any *)data);
68 //!Convert a CORBA::Any string to a PyObject String
70 * \param data : CORBA::Any object
72 void CorbaPyString::put(CORBA::Any *data) throw(ConversionException)
74 InterpreterUnlocker loc;
75 PyObject* ob=convertCorbaPyObject(edGetType(),data);
76 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
81 CorbaPyBool::CorbaPyBool(InputPyPort* p)
82 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
85 /*!Convert a CORBA::Any boolean to a PyObject boolean
86 * It's only a wrapper around put(CORBA::Any *data)
88 void CorbaPyBool::put(const void *data) throw(ConversionException)
90 put((CORBA::Any *)data);
93 //!Convert a CORBA::Any boolean to a PyObject boolean
95 * \param data : CORBA::Any object
97 void CorbaPyBool::put(CORBA::Any *data) throw(ConversionException)
99 InterpreterUnlocker loc;
100 PyObject* ob=convertCorbaPyObject(edGetType(),data);
101 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
106 CorbaPyObjref::CorbaPyObjref(InputPyPort* p)
107 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
110 void CorbaPyObjref::put(const void *data) throw(ConversionException)
112 put((CORBA::Any *)data);
115 //!Convert a CORBA::Any Objref to PyObject Objref
117 * \param data : CORBA::Any object
119 void CorbaPyObjref::put(CORBA::Any *data) throw(ConversionException)
121 InterpreterUnlocker loc;
122 PyObject* ob=convertCorbaPyObject(edGetType(),data);
123 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
128 //!Class to convert a CORBA::Any sequence to a PyObject Sequence
130 * \param p : input Python port to adapt to Corba output port
132 CorbaPySequence::CorbaPySequence(InputPyPort* p)
133 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
135 _dynfactory = getSALOMERuntime()->getDynFactory();
138 void CorbaPySequence::put(const void *data) throw(ConversionException)
140 put((CORBA::Any *)data);
143 //!Convert a CORBA::Any sequence to PyObject Sequence
145 * \param data : CORBA::Any object
147 void CorbaPySequence::put(CORBA::Any *data) throw(ConversionException)
149 InterpreterUnlocker loc;
150 PyObject* ob=convertCorbaPyObject(edGetType(),data);
151 DEBTRACE("ob refcnt: " << ob->ob_refcnt );
156 //!Class to convert a CORBA::Any struct into a PyObject struct
158 * \param p : input Python port to adapt to Corba output port
160 CorbaPyStruct::CorbaPyStruct(InputPyPort* p)
161 : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode())
165 void CorbaPyStruct::put(const void *data) throw(ConversionException)
167 put((CORBA::Any *)data);
170 //!Convert a CORBA::Any sequence to PyObject Sequence
172 * \param data : CORBA::Any object
174 void CorbaPyStruct::put(CORBA::Any *data) throw(ConversionException)
176 InterpreterUnlocker loc;
177 PyObject* ob=convertCorbaPyObject(edGetType(),data);
178 DEBTRACE("ob refcnt: " << ob->ob_refcnt );