39 DEBTRACE(
"data refcnt: " << data->ob_refcnt );
40 if (PyObject_HasAttrString(data, (
char*)
"_is_a"))
42 PyObject *result = PyObject_CallMethod(data, (
char*)
"_is_a", (
char*)
"s",(
char*)
"IDL:SALOME/GenericObj:1.0");
43 if(result && PyLong_Check(result))
45 if(PyLong_AS_LONG(result))
47 PyObject* o=PyObject_CallMethod(data, (
char*)method1, (
char*)
"");
57 throw ConversionException(
"Corba object does not exist: you have perhaps forgotten to call Register on a GenericObj");
69 throw ConversionException(
"Corba object does not exist: you have perhaps forgotten to call Register on a GenericObj");
96 PyGILState_STATE gstate = PyGILState_Ensure();
103 PyGILState_Release(gstate);
133 put((PyObject *)data);
173 return (
void*)
_data;
180 PyObject* data=
_data;
191 PyObject *ret(PyObject_Str(
_data));
195 char *val(PyBytes_AsString(ret));
214 PyGILState_STATE gstate = PyGILState_Ensure();
218 PyGILState_Release(gstate);
241 return "<value>None</value>";
249 int isString = PyBytes_Check(
getPyObj());
251 PyObject *strPyObj = PyObject_Str(
getPyObj());
253 string val = PyBytes_AsString(strPyObj);
255 val =
"\"" + val +
"\"";
274 PyGILState_STATE gstate = PyGILState_Ensure();
279 PyGILState_Release(gstate);
290 put((PyObject *)data);
295 DEBTRACE(
"OutputPyPort::put.ob refcnt: " << data->ob_refcnt );
297 PyObject_Print(data,stderr,Py_PRINT_RAW);
310 DEBTRACE(
"OutputPyPort::put.ob refcnt: " << data->ob_refcnt );
333 PyObject* data=
_data;
349 PyObject *strPyObj = PyObject_Str(
getPyObj());
350 string val = PyBytes_AsString(strPyObj);
void registerPyObj(PyObject *data)
void releasePyObj(PyObject *data)
static void RegisterReleasePyObj(PyObject *data, const char *method1)
TypeCode * edGetType() const
Base class for all nodes.
virtual void put(const void *data)
virtual PyObject * get() const
virtual PyObj * getPyObj() const
void putWithoutForward(PyObject *data)
virtual std::string valToStr()
Gives a string representation of the data, for user interfaces.
virtual std::string getAsString()
returns port value as a string that can be used in a GUI for example
virtual void put(const void *data)
virtual void valFromStr(std::string valstr)
Allows to set data from a string representation used in user interface.
virtual std::string dump()
OutputPort * clone(Node *newHelder) const
OutputPyPort(const std::string &name, Node *node, TypeCode *type)
Base class for all ports.
Base class for all type objects.
std::string convertPyObjectToString(PyObject *ob)
std::string convertPyObjectXml(const TypeCode *t, PyObject *data)