]> SALOME platform Git repositories - tools/yacsgen.git/commitdiff
Salome HOME
hxx2salome integration:
authorcrouzet <crouzet>
Tue, 19 Oct 2010 14:03:08 +0000 (14:03 +0000)
committercrouzet <crouzet>
Tue, 19 Oct 2010 14:03:08 +0000 (14:03 +0000)
   ajout d'un membre ret Ã  la classe Service pour gérer les service avec retour.
   pour les composants fais avec HXX2SALOMEComponent et utilisant des classes MEDMEM, ajout de l'héritage Ã   SALOME_MED::MED_Gen_Driver

module_generator/gener.py

index 131a181b694d8ba39d2741becc9cfa3ce9892894..fe889166a13f95636f42b05547f3b6fe64cdac7e 100644 (file)
@@ -129,11 +129,12 @@ class Component(object):
     return {}
 
 class Service(object):
-  def __init__(self, name, inport=None, outport=None, instream=None, 
+  def __init__(self, name, inport=None, outport=None, ret="void", instream=None, 
                      outstream=None, parallel_instream=None, parallel_outstream=None, body="", defs="", impl_type="sequential"):
     self.name = name
     self.inport = inport or []
     self.outport = outport or []
+    self.ret = ret
     self.instream = instream or []
     self.outstream = outstream or []
     self.parallel_instream = parallel_instream or []
@@ -276,7 +277,7 @@ AM_CFLAGS=$(SALOME_INCLUDES) -fexceptions
     modules = {}
     for compo in module.components:
       for serv in compo.services:
-        for name, typ in serv.inport + serv.outport:
+        for name, typ in serv.inport + serv.outport + [ ("return",serv.ret) ] :
           mod = moduleTypes[typ]
           if mod:
             get_dependent_modules(mod,modules)
@@ -578,6 +579,8 @@ echo "  Qt ..................... : $qt_ok"
         params = []
         for name, typ in serv.outport:
           params.append(cataOutparam.substitute(name=name, type=typ))
+        if serv.ret != "void" :
+          params.append(cataOutparam.substitute(name="return", type=serv.ret))
         outparams = "\n".join(params)
         streams = []
         for name, typ, dep in serv.instream:
@@ -633,10 +636,18 @@ echo "  Qt ..................... : $qt_ok"
             else:
               typ=idlTypes[typ]
             params.append("out %s %s" % (typ, name))
-          service = "    void %s(" % serv.name
+          service = "    %s %s(" % (idlTypes[serv.ret],serv.name)
           service = service+",".join(params)+") raises (SALOME::SALOME_Exception);"
           services.append(service)
-        interfaces.append(interface.substitute(component=compo.name, services="\n".join(services)))
+        from hxxcompo import HXX2SALOMEComponent
+        if isinstance(compo,HXX2SALOMEComponent):
+          from hxx_tmpl import interfaceidlhxx
+         Inherited=""
+         if compo.use_medmem==True:
+             Inherited=", SALOME_MED::MED_Gen_Driver"
+          interfaces.append(interfaceidlhxx.substitute(component=compo.name,inherited=Inherited, services="\n".join(services)))
+        else:
+            interfaces.append(interface.substitute(component=compo.name, services="\n".join(services)))
 
     #build idl includes for SALOME modules
     idldefs=""