Salome HOME
Manage correctly DISBLED state for ElementaryNode.
[modules/yacs.git] / src / runtime / PythonCORBAConv.hxx
index 180e170be9432752538e0aa392207731f48d23d3..e38b45b2277025b34c67c83c14685d0887eac444 100644 (file)
@@ -1,3 +1,22 @@
+// Copyright (C) 2006-2015  CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
 #ifndef __PYTHONCORBACONV_HXX__
 #define __PYTHONCORBACONV_HXX__
 
@@ -10,13 +29,13 @@ namespace YACS
   namespace ENGINE
   {
 
-    // --- convertisseurs Python->Corba pour les diffĂ©rents types
+    // --- adaptator ports Python->Corba for several types
 
     class PyCorbaInt : public ProxyPort
     {
     public:
       PyCorbaInt(InputCorbaPort* p)
-       : ProxyPort(p), Port(p->getNode()) {}
+        : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode()) {}
       virtual void put(const void *data) throw(ConversionException);
       void put(PyObject *data) throw(ConversionException);
     };
@@ -25,7 +44,7 @@ namespace YACS
     {
     public:
       PyCorbaDouble(InputCorbaPort* p)
-       : ProxyPort(p), Port(p->getNode()) {}
+        : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode()) {}
       virtual void put(const void *data) throw(ConversionException);
       void put(PyObject *data) throw(ConversionException);
     };
@@ -34,7 +53,16 @@ namespace YACS
     {
     public:
       PyCorbaString(InputCorbaPort* p)
-       : ProxyPort(p), Port(p->getNode()) {}
+        : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode()) {}
+      virtual void put(const void *data) throw(ConversionException);
+      void put(PyObject *data) throw(ConversionException);
+    };
+
+    class PyCorbaBool : public ProxyPort
+    {
+    public:
+      PyCorbaBool(InputCorbaPort* p)
+        : ProxyPort(p), DataPort(p->getName(), p->getNode(), p->edGetType()), Port(p->getNode()) {}
       virtual void put(const void *data) throw(ConversionException);
       void put(PyObject *data) throw(ConversionException);
     };
@@ -47,7 +75,7 @@ namespace YACS
       void put(PyObject *data) throw(ConversionException);
     protected:
       PyObject * _pyorb;
-      CORBA::ORB_var _orb;
+      CORBA::ORB_ptr _orb;
     };
 
     class PyCorbaSequence : public ProxyPort
@@ -58,6 +86,14 @@ namespace YACS
       void put(PyObject *data) throw(ConversionException);
     };
 
+    class PyCorbaStruct : public ProxyPort
+    {
+    public:
+      PyCorbaStruct(InputCorbaPort* p);
+      virtual void put(const void *data) throw(ConversionException);
+      void put(PyObject *data) throw(ConversionException);
+    };
+
   }
 }
 #endif