]> SALOME platform Git repositories - modules/kernel.git/commitdiff
Salome HOME
CCAR: merge last developments from KERNEL 4.1.4 (DSC ports, ResourceManager, ...)
authorcaremoli <caremoli>
Tue, 6 Jan 2009 15:19:44 +0000 (15:19 +0000)
committercaremoli <caremoli>
Tue, 6 Jan 2009 15:19:44 +0000 (15:19 +0000)
156 files changed:
Makefile.am
README.FIRST.txt
bin/appli_clean.sh
bin/appliskel/CatalogResources.xml
bin/appliskel/README
bin/appliskel/SalomeApp.xml
bin/config_appli.xml
bin/launchConfigureParser.py
bin/runSalome.py
bin/setenv.py
bin/virtual_salome.py
bin/waitNS.sh
configure.ac
doc/salome/tui/KERNEL/doxydev.in
doc/salome/tui/KERNEL/doxyfile.in
doc/salome/tui/KERNEL/doxyuser.in
idl/DSC_Engines.xml
idl/Logger.idl
idl/SALOME_Component.xml
idl/SALOME_ContainerManager.idl
idl/SALOME_Exception.xml
idl/SALOME_Ports.xml
resources/CatalogDataType.xml
resources/CatalogModulePersonnel.xml_skel
resources/CatalogResources.xml.in
resources/KERNELCatalog.xml.in
resources/Makefile.am
resources/channel.cfg
salome_adm/unix/config_files/ac_cxx_have_sstream.m4
salome_adm/unix/config_files/ac_cxx_use_std_iostream.m4
src/Basics/Basics_Utils.cxx
src/Batch/Batch_BatchManager_Local.cxx
src/Batch/Batch_BatchManager_eClient.cxx
src/Batch/Batch_BatchManager_eClient.hxx
src/Batch/Batch_BatchManager_eLSF.cxx
src/Batch/Batch_BatchManager_eLSF.hxx
src/Batch/Batch_BatchManager_ePBS.cxx
src/Batch/Batch_BatchManager_ePBS.hxx
src/Batch/Batch_BatchManager_eSGE.cxx [new file with mode: 0644]
src/Batch/Batch_BatchManager_eSGE.hxx [new file with mode: 0644]
src/Batch/Batch_FactBatchManager.cxx
src/Batch/Batch_FactBatchManager_PBS.cxx
src/Batch/Batch_FactBatchManager_eSGE.cxx [new file with mode: 0644]
src/Batch/Batch_FactBatchManager_eSGE.hxx [new file with mode: 0644]
src/Batch/Batch_JobInfo.hxx
src/Batch/Batch_JobInfo_eSGE.cxx [new file with mode: 0644]
src/Batch/Batch_JobInfo_eSGE.hxx [new file with mode: 0644]
src/Batch/Makefile.am
src/Batch/MpiImpl.cxx
src/Batch/MpiImpl.hxx
src/Batch_SWIG/Makefile.am
src/Batch_SWIG/libBatch_Swig.i
src/Batch_SWIG/libBatch_Swig_typemap.i
src/Communication/Receiver.cxx
src/Communication_SWIG/Makefile.am
src/Communication_SWIG/libSALOME_Comm.i
src/Container/Component_i.cxx
src/Container/Container_i.cxx
src/Container/Container_init_python.cxx
src/Container/Makefile.am
src/Container/SALOME_Component_i.hxx
src/Container/SALOME_Container.py
src/Container/SALOME_ContainerManager.cxx
src/Container/SALOME_ContainerPy.py
src/Container/TestSalome_file.cxx
src/DF/Makefile.am
src/DSC/DSC_Basic/DSC_i.cxx
src/DSC/DSC_Basic/DSC_i.hxx
src/DSC/DSC_Python/Makefile.am
src/DSC/DSC_User/Basic/Makefile.am
src/DSC/DSC_User/Basic/basic_port_factory.cxx
src/DSC/DSC_User/Datastream/Calcium/Calcium.cxx
src/DSC/DSC_User/Datastream/Calcium/CalciumPortTraits.hxx
src/DSC/DSC_User/Datastream/Calcium/Makefile.am
src/DSC/DSC_User/Datastream/Calcium/calcium_port_factory.cxx
src/DSC/DSC_User/Datastream/Makefile.am
src/DSC/DSC_User/Datastream/Palm/Makefile.am
src/DSC/DSC_User/Datastream/Palm/palm_port_factory.cxx
src/DSC/DSC_User/Makefile.am
src/DSC/DSC_User/Superv_Component_i.cxx
src/DSC/DSC_User/Superv_Component_i.hxx
src/HDFPersist/HDFcontainerObject.cc
src/HDFPersist/HDFobject.cc
src/HDFPersist/Makefile.am
src/Launcher/BatchTest.cxx
src/Launcher/Launcher.cxx
src/Launcher/Launcher.hxx
src/Launcher/Makefile.am
src/Launcher/SALOME_Launcher.cxx
src/Launcher/SALOME_Launcher.hxx
src/Launcher/SALOME_Launcher_Handler.cxx [new file with mode: 0755]
src/Launcher/SALOME_Launcher_Handler.hxx [new file with mode: 0755]
src/Launcher/SALOME_Launcher_Parser.cxx [new file with mode: 0644]
src/Launcher/SALOME_Launcher_Parser.hxx [new file with mode: 0755]
src/LifeCycleCORBA/Makefile.am
src/LifeCycleCORBA/Test/Makefile.am
src/LifeCycleCORBA_SWIG/Makefile.am
src/LifeCycleCORBA_SWIG/libSALOME_LifeCycleCORBA.i
src/Logger/Makefile.am
src/Logger/SALOME_Logger_Server.hxx
src/Logger/SALOME_Logger_Server_main.cxx
src/MPIContainer/MPIContainer_i.cxx
src/Makefile.am
src/ModuleCatalog/SALOME_ModuleCatalog_Acomponent_impl.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_Client.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_Handler.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_Server.cxx
src/ModuleCatalog/SALOME_ModuleCatalog_impl.cxx
src/ModuleGenerator/IDLparser.py
src/ModuleGenerator/README
src/ModuleGenerator/testIDLparser.in
src/ModuleGenerator/tests/AddComponent.idl [new file with mode: 0644]
src/ModuleGenerator/tests/SubComponent.idl [new file with mode: 0644]
src/ModuleGenerator/tests/test1.sh
src/ModuleGenerator/tests/test1b.sh
src/ModuleGenerator/tests/test2.sh
src/ModuleGenerator/tests/test3.sh
src/ModuleGenerator/tests/test4.sh
src/ModuleGenerator/tests/test5.sh
src/NOTIFICATION_SWIG/Makefile.am
src/NOTIFICATION_SWIG/NOTIFICATION.i
src/ParallelContainer/SALOME_ParallelComponent_i.cxx
src/ParallelContainer/SALOME_ParallelContainerNodeDummy.cxx
src/ParallelContainer/SALOME_ParallelContainerNodeMpi.cxx
src/ParallelContainer/SALOME_ParallelContainerProxyDummy.cxx
src/ParallelContainer/SALOME_ParallelContainerProxyMpi.cxx
src/ParallelContainer/SALOME_ParallelContainer_i.cxx
src/ResourcesManager/Makefile.am
src/ResourcesManager/ResourcesManager.cxx
src/ResourcesManager/ResourcesManager.hxx
src/ResourcesManager/SALOME_ResourcesCatalog_Handler.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Handler.hxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.cxx
src/ResourcesManager/SALOME_ResourcesCatalog_Parser.hxx
src/ResourcesManager/SALOME_ResourcesManager.cxx
src/SALOMEDS/Makefile.am
src/SALOMEDS/README_attributes
src/SALOMEDS/SALOMEDS_AttLong_i.cxx
src/SALOMEDS/SALOMEDS_AttLong_i.hxx
src/SALOMEDS/SALOMEDS_AttReal_i.cxx
src/SALOMEDS/SALOMEDS_AttReal_i.hxx
src/SALOMEDS/SALOMEDS_BasicAttributeFactory.cxx
src/SALOMEDS/SALOMEDS_BasicAttributeFactory.hxx
src/SALOMEDS/SALOMEDS_BasicAttribute_i.cxx
src/SALOMEDS/SALOMEDS_BasicAttribute_i.hxx
src/SALOMEDSImpl/Makefile.am
src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfInteger.cxx
src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfReal.cxx
src/SALOMEDSImpl/SALOMEDSImpl_AttributeTableOfString.cxx
src/SALOMELocalTrace/FileTraceCollector.cxx
src/SALOMELocalTrace/LocalTraceBufferPool.cxx
src/SALOMELocalTrace/LocalTraceCollector.cxx
src/SALOMELocalTrace/LocalTraceCollector.hxx
src/TestMPIContainer/TestMPIContainer.cxx
src/UnitTests/Makefile.am
src/Utils/OpUtil.cxx [new file with mode: 0644]

index 489fc48c1a2fbc8e644a2a47d54802044cf0d955..6d46bb852611793d10560f318e18b311e320fdaa 100644 (file)
@@ -32,7 +32,11 @@ endif
 
 ACLOCAL_AMFLAGS = -I salome_adm/unix/config_files
 
-SUBDIRS = salome_adm $(IDLDIR) src doc bin resources
+if WITHONLYLAUNCHER
+  SUBDIRS = src resources
+else
+  SUBDIRS = salome_adm $(IDLDIR) src doc bin resources
+endif
 
 DIST_SUBDIRS= salome_adm idl src doc bin resources
 
index 6f939e9f6ee9c95cb91a9b8b397b53b3fed457f5..021f43c352e4d5f279b4057ede0b6086effbb9c0 100644 (file)
@@ -1,23 +1,23 @@
- Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 
- Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 
- 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.
+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.
 
- 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.
+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
+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
+See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 
 =================================================================
 General information, for developpers and users
index b30b030da4ebce850145299d7e38f9b5e6c20bd1..9ea7ae8a729079664dd9a5476cd2eee9e62926c9 100644 (file)
@@ -22,4 +22,4 @@
 #
 #clean appli
 #
-rm -rf bin lib share doc  env.d envd getAppliPath.py searchFreePort.sh runAppli runConsole runSession runRemote.sh runTests SalomeApp.xml *.pyc *~ .bashrc
+rm -rf bin lib share doc idl env.d envd getAppliPath.py searchFreePort.sh runAppli runConsole runSession runRemote.sh runTests SalomeApp.xml *.pyc *~ .bashrc
index a9cb9a1a9b2797d90db0220f152be0db66cec165..9e09ed5fc0851dc72601e2c595c567c1a7b86ab9 100644 (file)
@@ -1,27 +1,4 @@
 <!DOCTYPE ResourcesCatalog>
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
 <resources>
    <machine hostname="localhost" />
 </resources>
index 21ee467ac0d463bdc22ac483164083acbdd52ce9..829437f15bf2c5246d0a6e8d727c7b16e269360f 100644 (file)
@@ -1,3 +1,24 @@
+Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+
+Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+
+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.
+
+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
+
 =======================================
 Set of scripts for a SALOME application
 =======================================
index e6b50aef3e0913a7ea9bc57a21db080bb547ded2..7caea4e037d724228ba3e7037fde60c1813b1085 100644 (file)
@@ -1,26 +1,3 @@
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
 <document>
   <section name="desktop" >
     <parameter name="state"  value="max"/>
index 9d79f2d1b6185182f963638a0a45bd238d882861..2695ad7e58028311c74902eb134f574c37058055 100644 (file)
@@ -1,26 +1,3 @@
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
 <application>
 <prerequisites path="/data/tmplgls/secher/SALOME_V4.1.1_MD08/env_products.sh"/>
 <modules>
index 7ec574f099616a58baeb2cf45edcff041c1f0be6..87630757e733c92f460f1922530f6275e530e197 100755 (executable)
@@ -622,10 +622,9 @@ def CreateOptionParser (theAdditionalOptions=[]):
     help_str = "Launch session with gdb"
     o_gdb = optparse.Option("--gdb-session",
                             action="store_true",
-                            dest="gdb_session",
-                           default=False,
-                           help=help_str)
-                           
+                            dest="gdb_session", default=False,
+                            help=help_str)
+    
     # All options
     opt_list = [o_t,o_g, # GUI/Terminal
                 o_d,o_o, # Desktop
index e9b4cc804c9f2b016bca5ba2500b71ec6f59ac12..3508a6cc8fcbb986b12345cb56871f17e4ee4834 100755 (executable)
@@ -314,8 +314,8 @@ class SessionServer(Server):
             self.CMD+=['-test'] + self.args['test']
         elif self.args.has_key('play'):
             self.CMD+=['-play'] + self.args['play']
-       
-       if self.args["gdb_session"]:
+
+        if self.args["gdb_session"]:
             f = open(".gdbinit4salome", "w")
             f.write("set args ")
             args = " ".join(self.CMD[1:])
@@ -326,7 +326,7 @@ class SessionServer(Server):
             f.close()
             self.CMD = ["xterm", "-e", "gdb", "--command=.gdbinit4salome", self.CMD[0]]
             pass
-      
+        
 # ---
 
 class LauncherServer(Server):
index 3c053c274b48735560574cb449db79f56ecca8be..4eeff394b9f455c91f6ee2fb53fef45cc8406e38 100755 (executable)
@@ -228,7 +228,7 @@ def set_env(args, modules_list, modules_root_dir, silent=False):
                                 pass
                             pass
                         pass
-            
+                    
     if sys.platform == 'win32':
         os.environ["SALOMEPATH"]=";".join(modules_root_dir_list)
     else:
index 4e9d545960ce135a87c286d466c79ea60ebfe15c..b7f0e6708fe3cbda0c2fdfec308ad8209ee85652 100644 (file)
@@ -100,11 +100,31 @@ def link_module(options):
         return
 
     home_dir = os.path.expanduser(options.prefix)
+    #try to find python version of salome application and put it in versio
+    pys=[os.path.split(s)[1] for s in glob.glob(os.path.join(home_dir,get_lib_dir(),"python*.*"))]
+    if not pys :
+      versio=None
+    else:
+      versio=pys[0]
+
+    pys=[os.path.split(s)[1] for s in glob.glob(os.path.join(module_dir,get_lib_dir(),"python*.*"))]
+    #check if the module has a python version compatible with application version
+    if not pys :
+      pyversio=versio or py_version
+    elif versio is None:
+      pyversio=pys[0]
+    elif versio in pys:
+      pyversio=versio
+    else:
+      #incompatible python versions
+      print "incompatible python versions : application has version %s and module %s has not" % (versio,module_dir)
+      return
 
     module_bin_dir=os.path.join(module_dir,'bin','salome')
+    module_idl_dir=os.path.join(module_dir,'idl','salome')
     module_lib_dir=os.path.join(module_dir,get_lib_dir(),'salome')
-    module_lib_py_dir=os.path.join(module_dir,get_lib_dir(),py_version,'site-packages','salome')
-    module_lib_py_shared_dir=os.path.join(module_dir,get_lib_dir(),py_version,
+    module_lib_py_dir=os.path.join(module_dir,get_lib_dir(),pyversio,'site-packages','salome')
+    module_lib_py_shared_dir=os.path.join(module_dir,get_lib_dir(),pyversio,
                                           'site-packages','salome','shared_modules')
     module_share_dir=os.path.join(module_dir,'share','salome','resources')
     module_doc_gui_dir=os.path.join(module_dir,'doc','salome','gui')
@@ -115,9 +135,10 @@ def link_module(options):
     module_sharedoc_tui_dir=os.path.join(module_dir,'share','doc','salome','tui')
 
     bin_dir=os.path.join(home_dir,'bin','salome')
+    idl_dir=os.path.join(home_dir,'idl','salome')
     lib_dir=os.path.join(home_dir,'lib','salome')
-    lib_py_dir=os.path.join(home_dir,'lib',py_version,'site-packages','salome')
-    lib_py_shared_dir=os.path.join(home_dir,'lib',py_version,
+    lib_py_dir=os.path.join(home_dir,'lib',pyversio,'site-packages','salome')
+    lib_py_shared_dir=os.path.join(home_dir,'lib',pyversio,
                                    'site-packages','salome','shared_modules')
     share_dir=os.path.join(home_dir,'share','salome','resources')
     doc_gui_dir=os.path.join(home_dir,'doc','salome','gui')
@@ -131,6 +152,7 @@ def link_module(options):
 
     if options.clear:
         rmtree(bin_dir)
+        rmtree(idl_dir)
         rmtree(lib_dir)
         rmtree(lib_py_dir)
         rmtree(share_dir)
@@ -149,6 +171,14 @@ def link_module(options):
         print module_bin_dir, " doesn't exist"
         pass    
     
+    #directory idl/salome : create it and link content
+    if os.path.exists(module_idl_dir):
+        mkdir(idl_dir)
+        for fn in os.listdir(module_idl_dir):
+            symlink(os.path.join(module_idl_dir, fn), os.path.join(idl_dir, fn))
+    else:
+        print module_idl_dir, " doesn't exist"
+
     #directory lib/salome : create it and link content
     if os.path.exists(module_lib_dir):
         mkdir(lib_dir)
@@ -160,7 +190,7 @@ def link_module(options):
         print module_lib_dir, " doesn't exist"
         pass    
     
-    #directory lib/py_version/site-packages/salome : create it and link content
+    #directory lib/pyversio/site-packages/salome : create it and link content
     if not os.path.exists(module_lib_py_dir):
         print "Python directory %s does not exist" % module_lib_py_dir
     else:
index bb89f620b1f1e4e766c4572b37ff5735362a713f..2727217cf2eb85a184e405935e0e9f79872201f7 100755 (executable)
@@ -27,4 +27,4 @@ while [ $status -ne 0 ]; do
   sleep 1
   echo -n "#"
 done
-./runSession waitNS.py
\ No newline at end of file
+./runSession waitNS.py
index 9dd62e36eae793365fbea45200c14038d9a93206..740153160dc730c077e3f08520c8357ef9b4b8e7 100644 (file)
@@ -86,6 +86,12 @@ AC_ARG_ENABLE(corba_gen,
   esac],[corba_gen=true])
 AM_CONDITIONAL(CORBA_GEN, test x$corba_gen = xtrue)
 
+# ---- option to build only launcher, resources manager and batch classes
+AC_ARG_WITH(onlylauncher,
+           --with-onlylauncher,
+           WITHONLYLAUNCHER="yes",WITHONLYLAUNCHER="no")
+AM_CONDITIONAL(WITHONLYLAUNCHER, test x$WITHONLYLAUNCHER = xyes)
+
 # ----------------------------------------------------------------------------
 
 echo
@@ -192,6 +198,15 @@ dnl _CS_gbo We should use here a variable given from the CHECK_PYTHON
 AM_PATH_PYTHON(2.3)
 CHECK_SWIG
 
+echo
+echo ---------------------------------------------
+echo Testing libxml2
+echo ---------------------------------------------
+echo
+
+CHECK_LIBXML
+
+if test x$WITHONLYLAUNCHER = xno; then
 echo
 echo ---------------------------------------------
 echo testing HDF5
@@ -256,18 +271,14 @@ echo
 
 CHECK_BOOST
 
-echo
-echo ---------------------------------------------
-echo Testing libxml2
-echo ---------------------------------------------
-echo
-
-CHECK_LIBXML
-
 fi 
 # --- end test corba
 # ----------------------------------------------------------------------------
 
+fi 
+# --- end test ONLYLAUNCHER
+# ----------------------------------------------------------------------------
+
 echo
 echo ============================================================
 echo testing parallel products
@@ -428,10 +439,14 @@ function check_fatal_error {
 
 # --------------------------------------
 
-if test x$corba_gen = xtrue; then
-  basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok"
+if test x$WITHONLYLAUNCHER = xno; then
+  if test x$corba_gen = xtrue; then
+    basic_mandatory_products="cc_ok threads_ok python_ok swig_ok hdf5_ok libxml_ok"
+  else
+    basic_mandatory_products="cc_ok threads_ok hdf5_ok libxml_ok"
+  fi
 else
-  basic_mandatory_products="cc_ok threads_ok hdf5_ok"
+  basic_mandatory_products="cc_ok threads_ok libxml_ok"
 fi
 
 echo --- General mandatory products - Light configuration:
@@ -439,19 +454,21 @@ summary $basic_mandatory_products
 check_fatal_error $basic_mandatory_products
 echo
 
-corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok libxml_ok"
-if test x$corba_gen = xtrue; then
-  echo --- CORBA mandatory products - default configuration:
-  summary $corba_mandatory_products
-  check_fatal_error $corba_mandatory_products
-else
-  echo --- CORBA products not required - option --disable-corba-gen
-  if test x"$WITH_BATCH" = xyes; then
-    echo --- BATCH mode mandatory products - default configuration:
-    summary "python_ok"
-    check_fatal_error "python_ok"
-  else 
+if test x$WITHONLYLAUNCHER = xno; then
+  corba_mandatory_products="omniORB_ok omniORBpy_ok boost_ok"
+  if test x$corba_gen = xtrue; then
+    echo --- CORBA mandatory products - default configuration:
+    summary $corba_mandatory_products
+    check_fatal_error $corba_mandatory_products
+  else
+    echo --- CORBA products not required - option --disable-corba-gen
+    if test x"$WITH_BATCH" = xyes; then
+      echo --- BATCH mode mandatory products - default configuration:
+      summary "python_ok"
+      check_fatal_error "python_ok"
+    else 
     echo --- Python not required - option --enable-batch=no
+    fi
   fi
 fi
 echo
@@ -474,9 +491,11 @@ echo --- Html documentation products: only required for doc production
 summary $htmldoc_products
 echo
 
+if test x$WITHONLYLAUNCHER = xno; then
 echo
 echo "Default ORB   : $DEFAULT_ORB"
 echo
+fi
 
 dnl generals files which could be included in every makefile
 
index 6defe5238048706b37d280c1be71a2067634ccf9..168d1c5ee1b1b60491af857440f8e18c30a4ce07 100644 (file)
@@ -1,24 +1,3 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  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.
-#
-#  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
-#
 # Doxyfile 1.4.6
 
 #---------------------------------------------------------------------------
index 21780fbfe0ea88fb114bd4e62f1cdea8c915973f..a4f54eba4bff5940c98756fbb970b48f37a9eb23 100755 (executable)
@@ -1,24 +1,3 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  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.
-#
-#  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
-#
 # Doxyfile 1.3-rc1
 
 #---------------------------------------------------------------------------
index 7187e95d24ded3c9e856c30a864851a5ce0825ee..d3387500bdcece5c77ef7b115f3592541e37355f 100644 (file)
@@ -1,24 +1,3 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  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.
-#
-#  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
-#
 # Doxyfile 1.4.6
 
 #---------------------------------------------------------------------------
index 534d0f33e629ebbd8b8a609b644abfb6054c450e..bf519ac38b80609277f5260dc5f8904c3446b39e 100644 (file)
@@ -1,30 +1,29 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
-  File   : DSC_Engines.xml
-  Author : Andre RIBES, EDF
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  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. 
+// 
+//  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
+//
+//  File   : DSC_Engines.xml
+//  Author : Andre RIBES, EDF
 -->
-
 <GridCCM_Interface_description
       xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
       xsi:noNamespaceSchemaLocation='$PACOPATH/IDL2Tool/interface.xsd'
index ba5e46da901851e4fed9a018d5ced8f3450aa74c..e69d5f2dd1ebe503aab60dd787dfc908bd1319c2 100644 (file)
@@ -33,7 +33,7 @@ module SALOME_Logger
          {
            //put message into one special place for all servers using Logger
            oneway void putMessage (in string message);
-            void ping ();
+            void ping (); 
             void shutdown();
          };
 };
index 0119921694b3323a140ee52b34358ac4483c1c22..7d27962ca9669ecf50d14303573db830d61b483c 100644 (file)
@@ -1,28 +1,28 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-  
-  File   : SALOME_Component.xml
-  Author : Andre RIBES, EDF
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  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. 
+// 
+//  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
+//
+//  File   : SALOME_Component.xml
+//  Author : Andre RIBES, EDF
 -->
 <GridCCM_Interface_description
       xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
index 55685a6072d36d589f7f07472b12d89ae5f0f833..7fe11b29bc92f8b7a33ec4f3505c800b138ac37a 100644 (file)
@@ -91,14 +91,16 @@ struct BatchParameters
 */
   interface SalomeLauncher
   {
+    long submitJob( in string xmlExecuteFile,
+                    in string clusterName ) raises (SALOME::SALOME_Exception);
     long submitSalomeJob( in string fileToExecute,
                          in FilesList filesToExport,
                          in FilesList filesToImport,
                          in BatchParameters batch_params,
                          in MachineParameters params ) raises (SALOME::SALOME_Exception);
-    string querySalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
-    void deleteSalomeJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
-    void getResultSalomeJob( in string directory, in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
+    string queryJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
+    void deleteJob( in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
+    void getResultsJob( in string directory, in long jobId, in MachineParameters params ) raises (SALOME::SALOME_Exception);
 
     boolean testBatch(in MachineParameters params) raises (SALOME::SALOME_Exception);
 
index b146f75fb2c60bdbbc92e50d69cc6f7eee9b993f..52966c6332d11aa5ca5dc62219aeeaa245ee97a1 100644 (file)
@@ -1,28 +1,28 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
-  File   : SALOME_Exception.xml
-  Author : Andre RIBES, EDF
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  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. 
+// 
+//  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
+//
+//  File   : SALOME_Exception.xml
+//  Author : Andre RIBES, EDF
 -->
 <GridCCM_Interface_description
       xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
index 4e581ed800c981f9b2b64ed0e5f7b91468124255..1e5d82f3023bfff92a07309cc0a97444c07f6f22 100644 (file)
@@ -1,28 +1,28 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
-  File   : SALOME_Ports.xml
-  Author : Andre RIBES, EDF
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+// 
+//  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. 
+// 
+//  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
+//
+//  File   : SALOME_Ports.xml
+//  Author : Andre RIBES, EDF
 -->
 <GridCCM_Interface_description
       xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
index d40159d7a8e414cea1d902ef3963007d64c627f2..c7d9cded49e0a490f61cf66e937fcfb3fc4962e5 100644 (file)
@@ -1,27 +1,4 @@
 <?xml version='1.0' encoding='us-ascii' ?>
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
 
 <!-- XML data type catalog -->
 
index a16b5de4719ab8bd477d4ea5a27083673ecceb29..b5a892ba02b8d8f132734b72e67e0a00da672b96 100644 (file)
@@ -1,27 +1,4 @@
 <?xml version='1.0' encoding='us-ascii' ?>
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
  
 <!-- XML component catalog -->
 <begin-catalog>
index 2118a497f8bca8d1bac87ee5ae18d433e58d343c..11e6b6e2659e128f01a68f4e4ae318afb42e8bc1 100644 (file)
@@ -1,27 +1,4 @@
 <!DOCTYPE ResourcesCatalog>
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
 <resources>
   <machine hostname="localhost" />
 </resources>
index f1a53c0d94c39345f833b1d59f6dfb5818cf9af0..1452381ff7c638fcfa0ddd08e7930374033a842a 100644 (file)
@@ -1,27 +1,4 @@
 <?xml version='1.0' encoding='us-ascii' ?>
-<!--
-  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  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.
-
-  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
-
--->
  
 <!-- XML component catalog -->
 <begin-catalog>
index 2a92d94c56cad809500e2c21edc77e77280f0ff4..336a0caebeb3c46e4b404869077cc6305c6b3805 100644 (file)
@@ -32,12 +32,15 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 # ===============================================================
 #
 
-dist_salomeres_DATA = \
-       CatalogDataType.xml \
+if WITHONLYLAUNCHER
+  dist_salomeres_DATA=\
+       CatalogResources.xml \
+       CatalogModulePersonnel.xml_skel
+else
+  dist_salomeres_DATA=\
+       CatalogResources.xml \
        CatalogModulePersonnel.xml_skel \
        channel.cfg \
-       SALOMEDS_Resources
-
-nodist_salomeres_DATA = \
-       CatalogResources.xml \
-       KERNELCatalog.xml
+       KERNELCatalog.xml \
+       SALOMEDS_Resources 
+endif
index 3cacd6c5ca0018b0d60c5e10e7cfea22c02601e0..afe59a75cb20ed77996327c80aa998e61a1c4ac5 100755 (executable)
@@ -1,24 +1,3 @@
-#  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
-#
-#  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-#  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-#
-#  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.
-#
-#  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
-#
 # =================================================================
 # PARAM SETTINGS
 #
index de84d16e94531a00f35415cb153bb1a3d7516073..24be4c5d9a719d49000b470b1d05e475e3894db8 100644 (file)
@@ -23,7 +23,9 @@ dnl @synopsis AC_CXX_HAVE_SSTREAM
 dnl If the C++ library has a working stringstream, define HAVE_SSTREAM.
 dnl @author Ben Stanley
 dnl @version $Id$
+dnl modified by Marc Tajchman (CEA) - 10/10/2002
 dnl
+
 AC_DEFUN([AC_CXX_HAVE_SSTREAM],
 [AC_CACHE_CHECK(whether the compiler has stringstream,
 HAVE_SSTREAM,
index 665482d83ab120c5e007ca1089c527d393660221..163568fbe399b9e6a87dc14b748b71e82dca1c2d 100644 (file)
@@ -20,8 +20,11 @@ dnl
 dnl  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 dnl
 dnl @synopsis AC_CXX_USE_STD_IOSTREAM
+dnl
 dnl If the C++ library use std iostream
 dnl
+dnl @author Bernard Secher (CEA) - 05/12/2003
+dnl
 AC_DEFUN([AC_CXX_USE_STD_IOSTREAM],
 [
 
index 1499881b8ff2906a801cfcb2e601ac10824a6c11..10a12b74a66c82c3e42e64f5e573d0fb86ddc921 100644 (file)
@@ -24,8 +24,7 @@
 //  Module : SALOME
 //
 #include "Basics_Utils.hxx"
-
-#include "string.h"
+#include <string.h>
 
 #ifndef WIN32
 #include <unistd.h>
index 7cf2991aa23804d35ade1b89f50a50d7caa1f7ff..37354706026052756c4e01a2adf8e9afa4a5501e 100644 (file)
@@ -33,6 +33,8 @@
 #include <fstream>
 #include <sstream>
 #include <cstdlib>
+#include <limits.h>
+
 #include <sys/types.h>
 #ifdef WIN32
 # include <direct.h>
@@ -45,7 +47,6 @@
 #include <signal.h>
 #include <errno.h>
 #include <string.h>
-#include <limits.h>
 #include "Batch_IOMutex.hxx"
 #include "Batch_BatchManager_Local.hxx"
 
index e5a4377f088732f1e76eaf711c0b4e06853c391c..ebdd308950a307a8fbad9adadb3664ccb4826972 100644 (file)
@@ -36,8 +36,8 @@
 #include <fstream>
 #include <sstream>
 #include <sys/stat.h>
-#include <stdlib.h>
 #include <string.h>
+#include <stdlib.h>
 
 using namespace std;
 
@@ -98,24 +98,27 @@ namespace Batch {
 
     // Second step : copy fileToExecute into
     // batch tmp files directory
-    command = copy_command;
-    command += string(params[EXECUTABLE]);
-    command += " ";
-    if(_username != ""){
-      command += _username;
-      command += "@";
-    }
-    command += _hostname;
-    command += ":";
-    command += string(params[TMPDIR]);
-    cerr << command.c_str() << endl;
-    status = system(command.c_str());
-    if(status) {
-      std::ostringstream oss;
-      oss << status;
-      std::string ex_mess("Error of connection on remote host ! status = ");
-      ex_mess += oss.str();
-      throw EmulationException(ex_mess.c_str());
+    string executeFile = params[EXECUTABLE];
+    if( executeFile.size() > 0 ){
+      command = copy_command;
+      command += string(params[EXECUTABLE]);
+      command += " ";
+      if(_username != ""){
+        command += _username;
+        command += "@";
+      }
+      command += _hostname;
+      command += ":";
+      command += string(params[TMPDIR]);
+      cerr << command.c_str() << endl;
+      status = system(command.c_str());
+      if(status) {
+        std::ostringstream oss;
+        oss << status;
+        std::string ex_mess("Error of connection on remote host ! status = ");
+        ex_mess += oss.str();
+        throw EmulationException(ex_mess.c_str());
+      }
     }
 
     // Third step : copy filesToExportList into
@@ -202,6 +205,10 @@ namespace Batch {
       return new MpiImpl_OPENMPI();
     else if(mpiImpl == "slurm")
       return new MpiImpl_SLURM();
+    else if(mpiImpl == "prun")
+      return new MpiImpl_PRUN();
+    else if(mpiImpl == "nompi")
+      throw EmulationException("you must specified an mpi implementation for batch manager");
     else{
       ostringstream oss;
       oss << mpiImpl << " : not yet implemented";
index 6afcdd6230b130d682bf7bce91a1db32cc0bd315..172ca4abd4ab96710e783717c6b94e5766316a2a 100644 (file)
@@ -55,7 +55,7 @@ namespace Batch {
   {
   public:
     // Constructeur et destructeur
-    BatchManager_eClient(const Batch::FactBatchManager * parent, const char* host="localhost", const char* protocol="ssh", const char* mpiImpl="indif");
+    BatchManager_eClient(const Batch::FactBatchManager * parent, const char* host="localhost", const char* protocol="ssh", const char* mpiImpl="mpich1");
     virtual ~BatchManager_eClient();
     void importOutputFiles( const Job & job, const std::string directory ) throw(EmulationException);
 
index 40a5caeb7a99cb5f799f6f56bb900e9c58b2c579..009d4c6a43ee578c91d2908d2fae69e8ab18d845 100644 (file)
@@ -33,7 +33,9 @@
 #include <fstream>
 #include <sstream>
 #include <sys/stat.h>
+#include <string.h>
 #include <stdlib.h>
+
 #include "Batch_BatchManager_eLSF.hxx"
 #ifdef WIN32
 # include <time.h>
@@ -64,9 +66,14 @@ namespace Batch {
     Parametre params = job.getParametre();
     const std::string dirForTmpFiles = params[TMPDIR];
     const string fileToExecute = params[EXECUTABLE];
-    string::size_type p1 = fileToExecute.find_last_of("/");
-    string::size_type p2 = fileToExecute.find_last_of(".");
-    std::string fileNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+    std::string fileNameToExecute;
+    if( fileToExecute.size() > 0 ){
+      string::size_type p1 = fileToExecute.find_last_of("/");
+      string::size_type p2 = fileToExecute.find_last_of(".");
+      fileNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+    }
+    else
+      fileNameToExecute = "command";
 
     // export input files on cluster
     exportInputFiles(job);
@@ -242,37 +249,65 @@ namespace Batch {
 #ifndef WIN32 //TODO: need for porting on Windows
     int status;
     Parametre params = job.getParametre();
+    Environnement env = job.getEnvironnement();
     const int nbproc = params[NBPROC];
     const long edt = params[MAXWALLTIME];
     const long mem = params[MAXRAMSIZE];
     const string workDir = params[WORKDIR];
     const std::string dirForTmpFiles = params[TMPDIR];
     const string fileToExecute = params[EXECUTABLE];
-    string::size_type p1 = fileToExecute.find_last_of("/");
-    string::size_type p2 = fileToExecute.find_last_of(".");
-    std::string rootNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
-    std::string fileNameToExecute = "~/" + dirForTmpFiles + "/" + string(basename((char*)(fileToExecute.c_str())));
-
-    int idx = dirForTmpFiles.find("Batch/");
-    std::string filelogtemp = dirForTmpFiles.substr(idx+6, dirForTmpFiles.length());
+    const string home = params[HOMEDIR];
+    const std::string queue = params[QUEUE];
+    std::string rootNameToExecute;
+    std::string fileNameToExecute;
+    std::string filelogtemp;
+    if( fileToExecute.size() > 0 ){
+      string::size_type p1 = fileToExecute.find_last_of("/");
+      string::size_type p2 = fileToExecute.find_last_of(".");
+      rootNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+      char* basec=strdup(fileToExecute.c_str());
+      fileNameToExecute = "~/" + dirForTmpFiles + "/" + string(basename(basec));
+      free(basec);
+
+      int idx = dirForTmpFiles.find("Batch/");
+      filelogtemp = dirForTmpFiles.substr(idx+6, dirForTmpFiles.length());
+    }
+    else{
+      rootNameToExecute = "command";
+    }
 
     std::string TmpFileName = BuildTemporaryFileName();
     ofstream tempOutputFile;
     tempOutputFile.open(TmpFileName.c_str(), ofstream::out );
 
     tempOutputFile << "#! /bin/sh -f" << endl ;
+    if (queue != "")
+      tempOutputFile << "#BSUB -q " << queue << endl;
     if( edt > 0 )
       tempOutputFile << "#BSUB -W " << getWallTime(edt) << endl ;
     if( mem > 0 )
       tempOutputFile << "#BSUB -M " << mem*1024 << endl ;
     tempOutputFile << "#BSUB -n " << nbproc << endl ;
-    tempOutputFile << "#BSUB -o runSalome.output.log." << filelogtemp << endl ;
-    tempOutputFile << "#BSUB -e runSalome.error.log." << filelogtemp << endl ;
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << "#BSUB -o " << home << "/" << dirForTmpFiles << "/output.log." << filelogtemp << endl ;
+      tempOutputFile << "#BSUB -e " << home << "/" << dirForTmpFiles << "/error.log." << filelogtemp << endl ;
+    }
+    else{
+      tempOutputFile << "#BSUB -o " << dirForTmpFiles << "/" << env["LOGFILE"] << ".output.log" << endl ;
+      tempOutputFile << "#BSUB -e " << dirForTmpFiles << "/" << env["LOGFILE"] << ".error.log" << endl ;
+    }
     if( workDir.size() > 0 )
       tempOutputFile << "cd " << workDir << endl ;
-    tempOutputFile << _mpiImpl->boot("",nbproc);
-    tempOutputFile << _mpiImpl->run("",nbproc,fileNameToExecute);
-    tempOutputFile << _mpiImpl->halt();
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << _mpiImpl->boot("",nbproc);
+      tempOutputFile << _mpiImpl->run("",nbproc,fileNameToExecute);
+      tempOutputFile << _mpiImpl->halt();
+    }
+    else{
+      tempOutputFile << "source " << env["SOURCEFILE"] << endl ;
+      tempOutputFile << env["COMMAND"];
+    }
+      
     tempOutputFile.flush();
     tempOutputFile.close();
 #ifdef WIN32
index 5a0543feb6629f3808bdaa9a461ed8973bb2cb99..599d90c686fece84db3954889261414622633f08 100644 (file)
@@ -55,7 +55,7 @@ namespace Batch {
   {
   public:
     // Constructeur et destructeur
-    BatchManager_eLSF(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="indif") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
+    BatchManager_eLSF(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="nompi") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
     virtual ~BatchManager_eLSF();
 
     // Recupere le nom du serveur par defaut
index 63b3318acb90beee0870d274aba003d9d471546b..177319c32c477a9762a725c2cdcbcfaadfac75f5 100644 (file)
@@ -33,7 +33,9 @@
 #include <fstream>
 #include <sstream>
 #include <sys/stat.h>
+#include <string.h>
 #include <stdlib.h>
+
 #include "Batch_BatchManager_ePBS.hxx"
 #ifdef WIN32
 # include <time.h>
@@ -241,6 +243,7 @@ namespace Batch {
 #ifndef WIN32 //TODO: need for porting on Windows
     int status;
     Parametre params = job.getParametre();
+    Environnement env = job.getEnvironnement();
     const long nbproc = params[NBPROC];
     const long edt = params[MAXWALLTIME];
     const long mem = params[MAXRAMSIZE];
@@ -248,30 +251,56 @@ namespace Batch {
     const std::string dirForTmpFiles = params[TMPDIR];
     const string fileToExecute = params[EXECUTABLE];
     const string home = params[HOMEDIR];
-    string::size_type p1 = fileToExecute.find_last_of("/");
-    string::size_type p2 = fileToExecute.find_last_of(".");
-    std::string rootNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
-    std::string fileNameToExecute = "~/" + dirForTmpFiles + "/" + string(basename((char*)(fileToExecute.c_str())));
-
-    int idx = dirForTmpFiles.find("Batch/");
-    std::string filelogtemp = dirForTmpFiles.substr(idx+6, dirForTmpFiles.length());
+    const std::string queue = params[QUEUE];
+    std::string rootNameToExecute;
+    std::string fileNameToExecute;
+    std::string filelogtemp;
+    if( fileToExecute.size() > 0 ){
+      string::size_type p1 = fileToExecute.find_last_of("/");
+      string::size_type p2 = fileToExecute.find_last_of(".");
+      rootNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+      char* basec=strdup(fileToExecute.c_str());
+      fileNameToExecute = "~/" + dirForTmpFiles + "/" + string(basename(basec));
+      free(basec);
+
+      int idx = dirForTmpFiles.find("Batch/");
+      filelogtemp = dirForTmpFiles.substr(idx+6, dirForTmpFiles.length());
+    }
+    else{
+      rootNameToExecute = "command";
+    }
 
     std::string TmpFileName = BuildTemporaryFileName();
     ofstream tempOutputFile;
     tempOutputFile.open(TmpFileName.c_str(), ofstream::out );
 
     tempOutputFile << "#! /bin/sh -f" << endl;
+    if (queue != "")
+      tempOutputFile << "#BSUB -q " << queue << endl;
     if( edt > 0 )
       tempOutputFile << "#PBS -l walltime=" << edt*60 << endl ;
     if( mem > 0 )
       tempOutputFile << "#PBS -l mem=" << mem << "mb" << endl ;
-    tempOutputFile << "#PBS -o " << home << "/" << dirForTmpFiles << "/runSalome.output.log." << filelogtemp << endl ;
-    tempOutputFile << "#PBS -e " << home << "/" << dirForTmpFiles << "/runSalome.error.log." << filelogtemp << endl ;
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << "#PBS -o " << home << "/" << dirForTmpFiles << "/output.log." << filelogtemp << endl ;
+      tempOutputFile << "#PBS -e " << home << "/" << dirForTmpFiles << "/error.log." << filelogtemp << endl ;
+    }
+    else{
+      tempOutputFile << "#PBS -o " << dirForTmpFiles << "/" << env["LOGFILE"] << ".output.log" << endl ;
+      tempOutputFile << "#PBS -e " << dirForTmpFiles << "/" << env["LOGFILE"] << ".error.log" << endl ;
+    }
     if( workDir.size() > 0 )
       tempOutputFile << "cd " << workDir << endl ;
-    tempOutputFile << _mpiImpl->boot("${PBS_NODEFILE}",nbproc);
-    tempOutputFile << _mpiImpl->run("${PBS_NODEFILE}",nbproc,fileNameToExecute);
-    tempOutputFile << _mpiImpl->halt();
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << _mpiImpl->boot("${PBS_NODEFILE}",nbproc);
+      tempOutputFile << _mpiImpl->run("${PBS_NODEFILE}",nbproc,fileNameToExecute);
+      tempOutputFile << _mpiImpl->halt();
+    }
+    else{
+      tempOutputFile << "source " << env["SOURCEFILE"] << endl ;
+      tempOutputFile << env["COMMAND"];
+    }
+      
     tempOutputFile.flush();
     tempOutputFile.close();
 #ifdef WIN32
index 15fc444b3c09b784e6ae05970e6bd936a337a25c..9effa53cf6dc544df48497768c4b8e038bb8ec3a 100644 (file)
@@ -55,7 +55,7 @@ namespace Batch {
   {
   public:
     // Constructeur et destructeur
-    BatchManager_ePBS(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="indif") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
+    BatchManager_ePBS(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="nompi") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
     virtual ~BatchManager_ePBS();
 
     // Recupere le nom du serveur par defaut
diff --git a/src/Batch/Batch_BatchManager_eSGE.cxx b/src/Batch/Batch_BatchManager_eSGE.cxx
new file mode 100644 (file)
index 0000000..56130df
--- /dev/null
@@ -0,0 +1,344 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * BatchManager_eSGE.cxx : emulation of SGE client
+ *
+ * Auteur : Bernard SECHER - CEA DEN
+ * Mail   : mailto:bernard.secher@cea.fr
+ * Date   : Thu Apr 24 10:17:22 2008
+ * Projet : PAL Salome 
+ *
+ */
+
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include <sys/stat.h>
+#include "Batch_BatchManager_eSGE.hxx"
+#include <stdlib.h>
+#ifdef WIN32
+# include <time.h>
+# include <io.h>
+#else
+#include <libgen.h>
+#endif
+
+using namespace std;
+
+namespace Batch {
+
+  BatchManager_eSGE::BatchManager_eSGE(const FactBatchManager * parent, const char * host, const char * protocol, const char * mpiImpl) throw(InvalidArgumentException,ConnexionFailureException) : BatchManager_eClient(parent,host,protocol,mpiImpl)
+  {
+    // Nothing to do
+  }
+
+  // Destructeur
+  BatchManager_eSGE::~BatchManager_eSGE()
+  {
+    // Nothing to do
+  }
+
+  // Methode pour le controle des jobs : soumet un job au gestionnaire
+  const JobId BatchManager_eSGE::submitJob(const Job & job)
+  {
+    int status;
+    Parametre params = job.getParametre();
+    const std::string dirForTmpFiles = params[TMPDIR];
+    const string fileToExecute = params[EXECUTABLE];
+    string::size_type p1 = fileToExecute.find_last_of("/");
+    string::size_type p2 = fileToExecute.find_last_of(".");
+    std::string fileNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+
+    // export input files on cluster
+    exportInputFiles(job);
+
+    // build batch script for job
+    buildBatchScript(job);
+
+    // define name of log file
+    string logFile="/tmp/logs/";
+    logFile += getenv("USER");
+    logFile += "/batchSalome_";
+    srand ( time(NULL) );
+    int ir = rand();
+    ostringstream oss;
+    oss << ir;
+    logFile += oss.str();
+    logFile += ".log";
+
+    string command;
+
+    // define command to submit batch
+    command = _protocol;
+    command += " ";
+
+    if(_username != ""){
+      command += _username;
+      command += "@";
+    }
+
+    command += _hostname;
+    command += " \"cd " ;
+    command += dirForTmpFiles ;
+    command += "; qsub " ;
+    command += fileNameToExecute ;
+    command += "_Batch.sh\" > ";
+    command += logFile;
+    cerr << command.c_str() << endl;
+    status = system(command.c_str());
+    if(status)
+      throw EmulationException("Error of connection on remote host");
+
+    // read id of submitted job in log file
+    char line[128];
+    FILE *fp = fopen(logFile.c_str(),"r");
+    fgets( line, 128, fp);
+    fclose(fp);
+    
+    string strjob;
+    istringstream iss(line);
+    iss >> strjob >> strjob >> strjob;
+
+    JobId id(this, strjob);
+    return id;
+  }
+
+  // Methode pour le controle des jobs : retire un job du gestionnaire
+  void BatchManager_eSGE::deleteJob(const JobId & jobid)
+  {
+    int status;
+    int ref;
+    istringstream iss(jobid.getReference());
+    iss >> ref;
+    
+    // define command to submit batch
+    string command;
+    command = _protocol;
+    command += " ";
+
+    if (_username != ""){
+      command += _username;
+      command += "@";
+    }
+
+    command += _hostname;
+    command += " \"qdel " ;
+    command += iss.str();
+    command += "\"";
+    cerr << command.c_str() << endl;
+    status = system(command.c_str());
+    if(status)
+      throw EmulationException("Error of connection on remote host");
+
+    cerr << "jobId = " << ref << "killed" << endl;
+  }
+   
+  // Methode pour le controle des jobs : suspend un job en file d'attente
+  void BatchManager_eSGE::holdJob(const JobId & jobid)
+  {
+    throw EmulationException("Not yet implemented");
+  }
+
+  // Methode pour le controle des jobs : relache un job suspendu
+  void BatchManager_eSGE::releaseJob(const JobId & jobid)
+  {
+    throw EmulationException("Not yet implemented");
+  }
+
+
+  // Methode pour le controle des jobs : modifie un job en file d'attente
+  void BatchManager_eSGE::alterJob(const JobId & jobid, const Parametre & param, const Environnement & env)
+  {
+    throw EmulationException("Not yet implemented");
+  }
+
+  // Methode pour le controle des jobs : modifie un job en file d'attente
+  void BatchManager_eSGE::alterJob(const JobId & jobid, const Parametre & param)
+  {
+    alterJob(jobid, param, Environnement());
+  }
+
+  // Methode pour le controle des jobs : modifie un job en file d'attente
+  void BatchManager_eSGE::alterJob(const JobId & jobid, const Environnement & env)
+  {
+    alterJob(jobid, Parametre(), env);
+  }
+
+  // Methode pour le controle des jobs : renvoie l'etat du job
+  JobInfo BatchManager_eSGE::queryJob(const JobId & jobid)
+  {
+    int id;
+    istringstream iss(jobid.getReference());
+    iss >> id;
+
+    // define name of log file
+    string logFile="/tmp/logs/";
+    logFile += getenv("USER");
+    logFile += "/batchSalome_";
+
+    ostringstream oss;
+    oss << this << "_" << id;
+    logFile += oss.str();
+    logFile += ".log";
+
+    string command;
+    int status;
+
+    // define command to submit batch
+    command = _protocol;
+    command += " ";
+
+    if (_username != ""){
+      command += _username;
+      command += "@";
+    }
+
+    command += _hostname;
+    command += " \"qstat | grep " ;
+    command += iss.str();
+    command += "\" > ";
+    command += logFile;
+    cerr << command.c_str() << endl;
+    status = system(command.c_str());
+    if(status && status != 256)
+      throw EmulationException("Error of connection on remote host");
+
+    JobInfo_eSGE ji = JobInfo_eSGE(id,logFile);
+    return ji;
+  }
+
+  // Methode pour le controle des jobs : teste si un job est present en machine
+  bool BatchManager_eSGE::isRunning(const JobId & jobid)
+  {
+    throw EmulationException("Not yet implemented");
+  }
+
+  void BatchManager_eSGE::buildBatchScript(const Job & job) throw(EmulationException)
+  {
+#ifndef WIN32
+    //TODO porting on Win32 platform
+    int status;
+    Parametre params = job.getParametre();
+    Environnement env = job.getEnvironnement();
+    const long nbproc = params[NBPROC];
+    const long edt = params[MAXWALLTIME];
+    const long mem = params[MAXRAMSIZE];
+    const string workDir = params[WORKDIR];
+    const std::string dirForTmpFiles = params[TMPDIR];
+    const string fileToExecute = params[EXECUTABLE];
+    const string home = params[HOMEDIR];
+    const std::string queue = params[QUEUE];
+    std::string rootNameToExecute;
+    std::string fileNameToExecute;
+    std::string filelogtemp;
+    if( fileToExecute.size() > 0 ){
+      string::size_type p1 = fileToExecute.find_last_of("/");
+      string::size_type p2 = fileToExecute.find_last_of(".");
+      rootNameToExecute = fileToExecute.substr(p1+1,p2-p1-1);
+      fileNameToExecute = "~/" + dirForTmpFiles + "/" + string(basename((char *) fileToExecute.c_str()));
+
+      int idx = dirForTmpFiles.find("Batch/");
+      filelogtemp = dirForTmpFiles.substr(idx+6, dirForTmpFiles.length());
+    }
+    else{
+      rootNameToExecute = "command";
+    }
+
+    std::string TmpFileName = BuildTemporaryFileName();
+    ofstream tempOutputFile;
+    tempOutputFile.open(TmpFileName.c_str(), ofstream::out );
+
+    tempOutputFile << "#! /bin/sh -f" << endl;
+    if (queue != "")
+      tempOutputFile << "#$ -q " << queue << endl;
+    tempOutputFile << "#$ -pe mpich " << nbproc << endl;
+    if( edt > 0 )
+      tempOutputFile << "#$ -l h_rt=" << getWallTime(edt) << endl ;
+    if( mem > 0 )
+      tempOutputFile << "#$ -l h_vmem=" << mem << "M" << endl ;
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << "#$ -o " << home << "/" << dirForTmpFiles << "/output.log." << filelogtemp << endl ;
+      tempOutputFile << "#$ -e " << home << "/" << dirForTmpFiles << "/error.log." << filelogtemp << endl ;
+    }
+    else{
+      tempOutputFile << "#$ -o " << dirForTmpFiles << "/" << env["LOGFILE"] << ".output.log" << endl ;
+      tempOutputFile << "#$ -e " << dirForTmpFiles << "/" << env["LOGFILE"] << ".error.log" << endl ;
+    }
+    if( workDir.size() > 0 )
+      tempOutputFile << "cd " << workDir << endl ;
+    if( fileToExecute.size() > 0 ){
+      tempOutputFile << _mpiImpl->boot("",nbproc);
+      tempOutputFile << _mpiImpl->run("${TMPDIR}/machines",nbproc,fileNameToExecute);
+      tempOutputFile << _mpiImpl->halt();
+    }
+    else{
+      tempOutputFile << "source " << env["SOURCEFILE"] << endl ;
+      tempOutputFile << env["COMMAND"];
+    }
+      
+    tempOutputFile.flush();
+    tempOutputFile.close();
+    chmod(TmpFileName.c_str(), 0x1ED);
+    cerr << TmpFileName.c_str() << endl;
+
+    string command;
+    if( _protocol == "rsh" )
+      command = "rcp ";
+    else if( _protocol == "ssh" )
+      command = "scp ";
+    else
+      throw EmulationException("Unknown protocol");
+    command += TmpFileName;
+    command += " ";
+    if(_username != ""){
+      command +=  _username;
+      command += "@";
+    }
+    command += _hostname;
+    command += ":";
+    command += dirForTmpFiles ;
+    command += "/" ;
+    command += rootNameToExecute ;
+    command += "_Batch.sh" ;
+    cerr << command.c_str() << endl;
+    status = system(command.c_str());
+    if(status)
+      throw EmulationException("Error of connection on remote host");    
+
+    RmTmpFile(TmpFileName);
+#endif //WIN32    
+  }
+
+  std::string BatchManager_eSGE::getWallTime(const long edt)
+  {
+    long h, m;
+    h = edt / 60;
+    m = edt - h*60;
+    ostringstream oss;
+    if( m >= 10 )
+      oss << h << ":" << m;
+    else
+      oss << h << ":0" << m;
+    return oss.str();
+  }
+
+}
diff --git a/src/Batch/Batch_BatchManager_eSGE.hxx b/src/Batch/Batch_BatchManager_eSGE.hxx
new file mode 100644 (file)
index 0000000..c2a0fec
--- /dev/null
@@ -0,0 +1,95 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * BatchManager_eSGE.hxx : emulation of SGE client
+ *
+ * Auteur : Bernard SECHER - CEA DEN
+ * Mail   : mailto:bernard.secher@cea.fr
+ * Date   : Thu Apr 24 10:17:22 2008
+ * Projet : PAL Salome 
+ *
+ */
+
+#ifndef _BATCHMANAGER_eLSF_H_
+#define _BATCHMANAGER_eLSF_H_
+
+#include "Batch_Defines.hxx"
+#include "Batch_JobId.hxx"
+#include "Batch_JobInfo.hxx"
+#include "Batch_JobInfo_eSGE.hxx"
+#include "Batch_InvalidArgumentException.hxx"
+#include "Batch_ConnexionFailureException.hxx"
+#include "Batch_APIInternalFailureException.hxx"
+#include "Batch_NotYetImplementedException.hxx"
+#include "Batch_BatchManager.hxx"
+#include "Batch_BatchManager_eClient.hxx"
+
+namespace Batch {
+
+  class Job;
+  class JobId;
+  class JobInfo;
+  class FactBatchManager;
+
+  class BATCH_EXPORT BatchManager_eSGE : public BatchManager_eClient
+  {
+  public:
+    // Constructeur et destructeur
+    BatchManager_eSGE(const FactBatchManager * parent, const char * host="localhost", const char * protocol="ssh", const char * mpiImpl="nompi") throw(InvalidArgumentException,ConnexionFailureException); // connexion a la machine host
+    virtual ~BatchManager_eSGE();
+
+    // Recupere le nom du serveur par defaut
+    // static string BatchManager_LSF::getDefaultServer();
+
+    // Methodes pour le controle des jobs
+    virtual const JobId submitJob(const Job & job); // soumet un job au gestionnaire
+    virtual void deleteJob(const JobId & jobid); // retire un job du gestionnaire
+    virtual void holdJob(const JobId & jobid); // suspend un job en file d'attente
+    virtual void releaseJob(const JobId & jobid); // relache un job suspendu
+    virtual void alterJob(const JobId & jobid, const Parametre & param, const Environnement & env); // modifie un job en file d'attente
+    virtual void alterJob(const JobId & jobid, const Parametre & param); // modifie un job en file d'attente
+    virtual void alterJob(const JobId & jobid, const Environnement & env); // modifie un job en file d'attente
+    virtual JobInfo queryJob(const JobId & jobid); // renvoie l'etat du job
+    virtual bool isRunning(const JobId & jobid); // teste si un job est present en machine
+
+    virtual void setParametre(const JobId & jobid, const Parametre & param) { return alterJob(jobid, param); } // modifie un job en file d'attente
+    virtual void setEnvironnement(const JobId & jobid, const Environnement & env) { return alterJob(jobid, env); } // modifie un job en file d'attente
+
+
+  protected:
+    void buildBatchScript(const Job & job) throw(EmulationException);
+    std::string getWallTime(const long edt);
+
+  private:
+
+#ifdef SWIG
+  public:
+    // Recupere le l'identifiant d'un job deja soumis au BatchManager
+    //virtual const JobId getJobIdByReference(const string & ref) { return BatchManager::getJobIdByReference(ref); }
+    virtual const JobId getJobIdByReference(const char * ref) { return BatchManager::getJobIdByReference(ref); }
+#endif
+
+  };
+
+}
+
+#endif
index 6dfd819082a553bad9d49103098a8f500610e463..0adc4e7d074daf132e04f6d6ddabd8c9b55bc08a 100644 (file)
@@ -30,9 +30,9 @@
 
 #include <string>
 #include <sstream>
+#include <iostream>
 #include "Batch_BatchManagerCatalog.hxx"
 #include "Batch_FactBatchManager.hxx"
-#include "utilities.h"
 using namespace std;
 
 namespace Batch {
@@ -41,16 +41,9 @@ namespace Batch {
   FactBatchManager::FactBatchManager(const string & _t) : type(_t)
   {
     BatchManagerCatalog::addFactBatchManager(type.c_str(), this);
-    /*
-    #ifndef WIN32
-    Win32 limitation: it's impossible to create new thread of LocalTraceCollector
-    during initialization of static objects of DLL
-    Be careful with static objects of types inherited from FactBatchManager class
-    */
     ostringstream msg;
     msg << "FactBatchManager of type '" << type << "' inserted into catalog";
-    MESSAGE(msg.str().c_str());
-    //#endif
+    cerr << msg.str().c_str() << endl;
   }
 
   // Destructeur
index 2995ee266509a1bde74a23eb9b15c3d3e2ab1c84..43c79e21307a16ba0d057bef790488adb1928ae8 100644 (file)
  *
  */
 
-#include <string>
 #include "Batch_BatchManager_PBS.hxx"
 #include "Batch_FactBatchManager_PBS.hxx"
-#include "utilities.h"
 using namespace std;
 
 namespace Batch {
@@ -53,7 +51,6 @@ namespace Batch {
   // Functor
   BatchManager * FactBatchManager_PBS::operator() (const char * hostname) const
   {
-    MESSAGE("Building new BatchManager_PBS on host '" << hostname << "'");
     return new BatchManager_PBS(this, hostname);
   }
 
diff --git a/src/Batch/Batch_FactBatchManager_eSGE.cxx b/src/Batch/Batch_FactBatchManager_eSGE.cxx
new file mode 100644 (file)
index 0000000..c7a6c9f
--- /dev/null
@@ -0,0 +1,66 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * FactBatchManager_eSGE.cxx : 
+ *
+ * Auteur : Bernard SECHER - CEA DEN
+ * Date   : Avril 2008
+ * Projet : PAL Salome
+ *
+ */
+
+#include <string>
+#include "Batch_BatchManager_eSGE.hxx"
+#include "Batch_FactBatchManager_eSGE.hxx"
+//#include "utilities.h"
+
+namespace Batch {
+
+  static FactBatchManager_eSGE sFBM_eSGE;
+
+  // Constructeur
+  FactBatchManager_eSGE::FactBatchManager_eSGE() : FactBatchManager_eClient("eSGE")
+  {
+    // Nothing to do
+  }
+
+  // Destructeur
+  FactBatchManager_eSGE::~FactBatchManager_eSGE()
+  {
+    // Nothing to do
+  }
+
+  // Functor
+  BatchManager * FactBatchManager_eSGE::operator() (const char * hostname) const
+  {
+    // MESSAGE("Building new BatchManager_SGE on host '" << hostname << "'");
+    return new BatchManager_eSGE(this, hostname);
+  }
+
+  BatchManager_eClient * FactBatchManager_eSGE::operator() (const char * hostname, const char * protocol, const char * mpiImpl) const
+  {
+    // MESSAGE("Building new BatchManager_SGE on host '" << hostname << "'");
+    return new BatchManager_eSGE(this, hostname, protocol, mpiImpl);
+  }
+
+
+}
diff --git a/src/Batch/Batch_FactBatchManager_eSGE.hxx b/src/Batch/Batch_FactBatchManager_eSGE.hxx
new file mode 100644 (file)
index 0000000..44f7f6c
--- /dev/null
@@ -0,0 +1,61 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * FactBatchManager_eSGE.hxx : 
+ *
+ * Auteur : Bernard SECHER : CEA DEN
+ * Date   : Avril 2008
+ * Projet : PAL Salome
+ *
+ */
+
+#ifndef _FACTBATCHMANAGER_eSGE_H_
+#define _FACTBATCHMANAGER_eSGE_H_
+
+#include "Batch_Defines.hxx"
+
+#include "Batch_BatchManager_eClient.hxx"
+#include "Batch_FactBatchManager_eClient.hxx"
+
+namespace Batch {
+  
+  class BatchManager_eSGE;
+
+  class BATCH_EXPORT FactBatchManager_eSGE : public FactBatchManager_eClient
+  {
+  public:
+    // Constructeur et destructeur
+    FactBatchManager_eSGE();
+    virtual ~FactBatchManager_eSGE();
+
+    virtual BatchManager * operator() (const char * hostname) const;
+    virtual BatchManager_eClient * operator() (const char * hostname, const char * protocol, const char * mpiImpl) const;
+
+  protected:
+
+  private:
+
+  };
+
+}
+
+#endif
index 58fb2aeca053876ec475f525a132e95208c64f41..f4b54f1159e804788d3af1dde7fcc1e84cd05d2d 100644 (file)
@@ -39,8 +39,6 @@
 #include "Batch_Parametre.hxx"
 #include "Batch_Environnement.hxx"
 
-using namespace std;
-
 namespace Batch {
 
   class BATCH_EXPORT JobInfo
diff --git a/src/Batch/Batch_JobInfo_eSGE.cxx b/src/Batch/Batch_JobInfo_eSGE.cxx
new file mode 100644 (file)
index 0000000..f441437
--- /dev/null
@@ -0,0 +1,113 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * JobInfo_eSGE.cxx :  emulation of SGE client
+ *
+ * Auteur : Bernard SECHER - CEA DEN
+ * Mail   : mailto:bernard.secher@cea.fr
+ * Date   : Thu Apr 24 10:17:22 2008
+ * Projet : PAL Salome 
+ *
+ */
+
+#include <cstdio>
+#include <iostream>
+#include <fstream>
+#include <sstream>
+#include "Batch_Parametre.hxx"
+#include "Batch_Environnement.hxx"
+#include "Batch_RunTimeException.hxx"
+#include "Batch_APIInternalFailureException.hxx"
+#include "Batch_JobInfo_eSGE.hxx"
+
+using namespace std;
+
+namespace Batch {
+
+
+
+  // Constructeurs
+  JobInfo_eSGE::JobInfo_eSGE(int id, string logFile) : JobInfo()
+  {
+    // On remplit les membres _param et _env
+    ostringstream oss;
+    oss << id;
+    _param[ID] = oss.str();
+
+    // read of log file
+    char line[128];
+    ifstream fp(logFile.c_str(),ios::in);
+      
+    string status;
+    string sline;
+    fp.getline(line,80,'\n');
+    sline = string(line);
+
+    if( sline.length() > 0 ){
+      istringstream iss(sline);
+      iss >> status >> status >> status >> status >> status;
+    }
+    else
+      status = "e";
+
+    _param[STATE] = status;
+
+    if( status.find("r") != string::npos)
+      _running = true;
+
+  }
+
+  // Teste si un job est present en machine
+  bool JobInfo_eSGE::isRunning() const
+  {
+    return _running;
+  }
+
+
+  // Destructeur
+  JobInfo_eSGE::~JobInfo_eSGE()
+  {
+    // Nothing to do
+  }
+
+  // Convertit une date HH:MM:SS en secondes
+  long JobInfo_eSGE::HMStoLong(const string & s)
+  {
+    long hour, min, sec;
+
+    sscanf( s.c_str(), "%ld:%ld:%ld", &hour, &min, &sec);
+    return ( ( ( hour * 60L ) + min ) * 60L ) + sec;
+  }
+
+  // Methode pour l'interfacage avec Python (SWIG) : affichage en Python
+  string JobInfo_eSGE::__str__() const
+  {
+    ostringstream sst;
+    sst << "<JobInfo_eSGE (" << this << ") :" << endl;
+    sst << " ID = " <<_param[ID] << endl;
+    sst << " STATE = " <<_param[STATE] << endl;
+
+    return sst.str();
+  }
+
+
+}
diff --git a/src/Batch/Batch_JobInfo_eSGE.hxx b/src/Batch/Batch_JobInfo_eSGE.hxx
new file mode 100644 (file)
index 0000000..1f5066a
--- /dev/null
@@ -0,0 +1,72 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+/*
+ * JobInfo_eSGE.hxx :  emulation of SGE client
+ *
+ * Auteur : Bernard SECHER - CEA DEN
+ * Mail   : mailto:bernard.secher@cea.fr
+ * Date   : Thu Apr 24 10:17:22 2008
+ * Projet : PAL Salome 
+ *
+ */
+
+#ifndef _JOBINFO_SGE_H_
+#define _JOBINFO_SGE_H_
+
+#include <string>
+#include "Batch_Defines.hxx"
+#include "Batch_RunTimeException.hxx"
+#include "Batch_JobInfo.hxx"
+
+namespace Batch {
+
+  class BATCH_EXPORT JobInfo_eSGE : public JobInfo
+  {
+  public:
+    // Constructeurs et destructeur
+    JobInfo_eSGE() : _running(false) {};
+    JobInfo_eSGE(int id,std::string logFile);
+    virtual ~JobInfo_eSGE();
+
+    // Constructeur par recopie
+    JobInfo_eSGE(const JobInfo_eSGE & jinfo) : JobInfo(jinfo) {};
+
+    // Teste si un job est present en machine
+    virtual bool isRunning() const;
+
+    // Methodes pour l'interfacage avec Python (SWIG)
+    // TODO : supprimer ces methodes et transferer leur definitions dans SWIG
+    std::string  __str__() const; // SWIG : affichage en Python
+    std::string  __repr__() const { return __str__(); }; // SWIG : affichage en Python
+
+  protected:
+    bool _running; // etat du job en machine
+
+  private:
+    // Convertit une date HH:MM:SS en secondes
+    long HMStoLong(const std::string &);
+
+  };
+
+}
+
+#endif
index 1070cf47385ad8179860502f6fc6bdd0548ea622..e0bc1b719ee4c0e3d57aae94225ebe584687eeef 100644 (file)
@@ -68,7 +68,11 @@ LIB_INCLUDES = \
        Batch_FactBatchManager_ePBS.hxx \
        Batch_JobInfo_ePBS.hxx \
        MpiImpl.hxx \
-       Batch_Defines.hxx
+       Batch_Defines.hxx \
+       Batch_BatchManager_eSGE.hxx \
+       Batch_FactBatchManager_eSGE.hxx \
+       Batch_JobInfo_eSGE.hxx \
+       MpiImpl.hxx
 
 
 LIB_SRC = \
@@ -109,20 +113,27 @@ LIB_SRC = \
        Batch_BatchManager_ePBS.cxx \
        Batch_FactBatchManager_ePBS.cxx \
        Batch_JobInfo_ePBS.cxx \
+       Batch_BatchManager_eSGE.cxx \
+       Batch_FactBatchManager_eSGE.cxx \
+       Batch_JobInfo_eSGE.cxx \
        MpiImpl.cxx
 
 
 LIB_CPPFLAGS = \
-       ${PYTHON_INCLUDES} \
+       ${PYTHON_INCLUDES}
+if !WITHONLYLAUNCHER
+  LIB_CPPFLAGS += \
        -I$(srcdir)/../Basics \
-       -I$(srcdir)/../SALOMELocalTrace \
        -I$(top_builddir)/salome_adm/unix
+endif
 
-LIB_LIBADD   = \
-       ${PYTHON_LIBS} \
-       ../SALOMELocalTrace/libSALOMELocalTrace.la \
+LIB_LIBADD =
+if !WITHONLYLAUNCHER
+  LIB_LIBADD   += \
        ../Basics/libSALOMEBasics.la
+endif
 
+LIB_LIBADD   += $(PYTHON_LIBS)
 
 #
 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -158,7 +169,9 @@ LIB_SRC +=\
        Batch_Job_Local.cxx \
        Batch_IOMutex.cxx
 
-LIB_CPPFLAGS += -DHAVE_CONFIG_H
+if !WITHONLYLAUNCHER
+  LIB_CPPFLAGS += -DHAVE_CONFIG_H
+endif
 
 endif
 
index 81756ce74cfcc67bb785daf8f5a51abd8152b32f..5491584197b2538f1febaaa369fa906bac577b5e 100644 (file)
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-/*
- * BatchManager.cxx : 
- *
- * Auteur : Bernard SECHER - CEA/DEN
- * Date   : Juillet 2007
- * Projet : SALOME
- *
- */
 
 #include <iostream>
 #include <sstream>
@@ -100,12 +92,12 @@ MpiImpl_MPICH1::~MpiImpl_MPICH1()
 
 string MpiImpl_MPICH1::size()
 {
-  throw MpiImplException("mpich1 doesn't work with this batch system to submit salome session");
+  return "${MPIRUN_NPROCS}";
 }
 
 string MpiImpl_MPICH1::rank()
 {
-  throw MpiImplException("mpich1 doesn't work with this batch system to submit salome session");
+  return "${MPIRUN_RANK}";
 }
 
 string MpiImpl_MPICH1::boot(const string machinefile, const unsigned int nbnodes)
@@ -149,7 +141,10 @@ string MpiImpl_MPICH2::rank()
 string MpiImpl_MPICH2::boot(const string machinefile, const unsigned int nbnodes)
 {
   ostringstream oss;
-  oss << "mpdboot -n " << nbnodes << " -f " << machinefile << endl;
+  oss << "mpdboot" << " -n " << nbnodes;
+  if (machinefile!="")
+    oss  << " -f " << machinefile;
+  oss << endl;
   return oss.str();
 }
 
@@ -243,3 +238,40 @@ string MpiImpl_SLURM::halt()
   return "";
 }
 
+// prun implementation
+// Constructor
+MpiImpl_PRUN::MpiImpl_PRUN() : MpiImpl()
+{
+}
+
+// Destructor
+MpiImpl_PRUN::~MpiImpl_PRUN()
+{
+}
+
+string MpiImpl_PRUN::size()
+{
+  return "${RMS_NPROCS}";
+}
+
+string MpiImpl_PRUN::rank()
+{
+  return "${RMS_RANK}";
+}
+
+string MpiImpl_PRUN::boot(const string machinefile, const unsigned int nbnodes)
+{
+  return "";
+}
+
+string MpiImpl_PRUN::run(const string machinefile, const unsigned int nbproc, const string fileNameToExecute)
+{
+  ostringstream oss;
+  oss << "prun -n " << nbproc << " " << "-p mpi " << fileNameToExecute << endl;
+  return oss.str();
+}
+
+string MpiImpl_PRUN::halt()
+{
+  return "";
+}
index 3c1414eb66ea1b2c0aca1d66b94c09ed3c5b32f7..4639e6e8522ac6e364e053ed7aeb34a4963e8cb7 100644 (file)
 //
 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-/*
- * BatchManager.hxx : 
- *
- * Auteur : Bernard SECHER - CEA/DEN
- * Date   : Juillet 2007
- * Projet : SALOME
- *
- */
 
 #ifndef _BL_MPIIMPL_H_
 #define _BL_MPIIMPL_H_
@@ -156,4 +148,23 @@ private:
 
 };
 
+class BATCH_EXPORT MpiImpl_PRUN : public MpiImpl
+{
+public:
+  // Constructeur et destructeur
+  MpiImpl_PRUN(); // constructor
+  virtual ~MpiImpl_PRUN(); //Destructor
+
+  std::string size(); // get number of process of current job
+  std::string rank(); // get process number of current job
+  std::string boot( const std::string machinefile, const unsigned int nbnodes); // get boot command
+  std::string run( const std::string machinefile, const unsigned int nbproc, const std::string fileNameToExecute); // get run command
+  std::string halt(); // get stop command
+
+protected:
+
+private:
+
+};
+
 #endif
index 72ad7740d05d23c7b300f697c26c7c95c31e3788..645567f97299ffefcf27164305a013aae8d0f5f6 100644 (file)
@@ -49,13 +49,14 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 # The library will be installed in the common place.
 #
 
+BUILT_SOURCES = swig_wrap.cpp
+
 SWIG_FLAGS    = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Batch
 SWIG_SOURCES  = libBatch_Swig.i libBatch_Swig_exception.i libBatch_Swig_typemap.i
 
-nodist_salomepython_PYTHON = libBatch_Swig.py
-salomepyexec_LTLIBRARIES   = _libBatch_Swig.la
-nodist__libBatch_Swig_la_SOURCES = swig_wrap.cpp
-_libBatch_Swig_la_SOURCES  = $(SWIG_SOURCES)
+salomepython_PYTHON           = libBatch_Swig.py
+salomepyexec_LTLIBRARIES      = _libBatch_Swig.la
+_libBatch_Swig_la_SOURCES  = $(BUILT_SOURCES) $(SWIG_SOURCES)
 _libBatch_Swig_la_CPPFLAGS = @PYTHON_INCLUDES@ -I$(srcdir) -I$(srcdir)/../Batch
 _libBatch_Swig_la_LDFLAGS  = -module
 _libBatch_Swig_la_LIBADD   = ../Batch/libSalomeBatch.la @PYTHON_LIBS@
@@ -68,7 +69,7 @@ endif
 swig_wrap.cpp : $(SWIG_SOURCES)
        $(SWIG) $(SWIG_FLAGS) -o $@ $<
 
-CLEANFILES = swig_wrap.cpp libBatch_Swig.py
+CLEANFILES = swig_wrap.cpp
 
 
 #
index 04447f6491b1d0757fa2dd5cedee08e3388aaeaf..fc610e787396f0a1144fa280f97e392766f2b93a 100644 (file)
@@ -43,6 +43,9 @@
 /* Le nom du module Python tel qu'il est importe */
 %module libBatch_Swig
 
+/* generate docstrings with types */
+%feature("autodoc", "1");
+
 /* Inclusion des conversions de type */
 %include libBatch_Swig_typemap.i
 
index 242a18c6a6c9e4dc52e7ea21a28b6e9440328db6..6b2a011232214e715f9ee4d8560ff2f1d90bba25 100644 (file)
 #include "Batch_PyVersatile.hxx"
 #include "Batch_JobId.hxx"
 #include "Batch_FactBatchManager.hxx"
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
 %}
 
 # // supprime toutes les definitions par defaut => sert au debug
   }
 }
 
+%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) Batch::Parametre
+{
+  $1 = PyDict_Check($input)? 1 : 0;
+}
 
 # // construction d'un dictionnaire Python a partir d'un objet Parametre C++
 %typemap(out) Batch::Parametre
   }
 }
 
+%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) Batch::Environnement
+{
+  $1 = PyDict_Check($input)? 1 : 0;
+}
 
 # // construction d'un dictionnaire Python a partir d'un objet Environnement C++
 %typemap(out) Batch::Environnement
index 48ddf6556b91dc03672207604887fbd77aacdcf6..d632318d43b9ee8b2b34f63d0c404fd0da125a3c 100644 (file)
@@ -1,21 +1,23 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-// 
-// 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.
-// 
-// 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.
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 //
-// 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
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
 //
-// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//  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.
+//
+//  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
 //
 #include "Receiver.hxx"
 #include <string.h>
index 99d80de405f714eca0bb9fa2e731d15d00bac4c7..8c66bb02ec6a5f0969ce86fb5133867ef244b211 100644 (file)
@@ -49,14 +49,15 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 # The library will be installed in the common place.
 #
 
+BUILT_SOURCES = swig_wrap.cpp
+
 SWIG_FLAGS    = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Communication
 SWIG_SOURCES  = libSALOME_Comm.i
 
 
-nodist_salomepython_PYTHON = libSALOME_Comm.py
+salomepython_PYTHON = libSALOME_Comm.py
 salomepyexec_LTLIBRARIES = _libSALOME_Comm.la
-nodist__libSALOME_Comm_la_SOURCES = swig_wrap.cpp
-_libSALOME_Comm_la_SOURCES  = $(SWIG_SOURCES)
+_libSALOME_Comm_la_SOURCES  = $(BUILT_SOURCES) $(SWIG_SOURCES)
 _libSALOME_Comm_la_CPPFLAGS =\
        @PYTHON_INCLUDES@ \
        -I$(srcdir) -I$(srcdir)/../Communication \
@@ -83,7 +84,7 @@ endif
 swig_wrap.cpp : $(SWIG_SOURCES)
        $(SWIG) $(SWIG_FLAGS) -o $@ $<
 
-CLEANFILES = swig_wrap.cpp libSALOME_Comm.py
+CLEANFILES = swig_wrap.cpp
 
 
 #
index 617618dd9a08a6347e7fe2a20507f7507dc7a33f..d13560473f62f80587eeed1a89694def0d78c6f8 100644 (file)
@@ -21,6 +21,8 @@
 //
 %module libSALOME_Comm
 
+%feature("autodoc", "1");
+
 %{
   #include "ReceiverFactory.hxx"
   #include "MatrixClient.hxx"
index 590020d44c6fecf6a8ba2726fd28d905e7bc4b5a..93caf53ceea9fbad32f3fc42b3838282b90807fc 100644 (file)
@@ -124,6 +124,7 @@ Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb,
  *  \param instanceName unique instance name for this object (see Container_i)
  *  \param interfaceName component class name
  *  \param notif use of notification
+ *  \param regist (true or false) use of registry (default true)
  */
 //=============================================================================
 
@@ -132,7 +133,8 @@ Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb,
                                          Engines::Container_ptr container,
                                          const char *instanceName,
                                          const char *interfaceName,
-                                         bool notif) :
+                                         bool notif,
+                                         bool regist) :
   _instanceName(instanceName),
   _interfaceName(interfaceName),
   _myConnexionToRegistry(0),
@@ -159,7 +161,8 @@ Engines_Component_i::Engines_Component_i(CORBA::ORB_ptr orb,
       _contId = 0;
     }
   const CORBA::String_var ior = _orb->object_to_string(_container);
-  _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession", _instanceName.c_str());
+  if(regist)
+    _myConnexionToRegistry = new RegistryConnexion(0, 0, ior,"theSession", _instanceName.c_str());
   _notifSupplier = new NOTIFICATION_Supplier(instanceName, notif);
 }
 
@@ -289,11 +292,10 @@ void Engines_Component_i::destroy()
   MESSAGE("Engines_Component_i::destroy()");
   //SCRUTE(pd_refCount);
 
-  delete _notifSupplier;
-  _notifSupplier = 0;
-
-  delete _myConnexionToRegistry;
+  if(_myConnexionToRegistry)delete _myConnexionToRegistry;
   _myConnexionToRegistry = 0 ;
+  if(_notifSupplier)delete _notifSupplier;
+  _notifSupplier = 0;
   if(_id)
     delete(_id) ;
   //SCRUTE(pd_refCount);
index 8e41722efcbedb44ced6c8fd06fd06234939173c..954c8fcf7fce4dce9082ac1977a7fb92ef527e58 100644 (file)
@@ -325,7 +325,20 @@ void Engines_Container_i::Shutdown()
   */
   std::map<std::string, Engines::Component_var>::iterator itm;
   for (itm = _listInstances_map.begin(); itm != _listInstances_map.end(); itm++)
-    itm->second->destroy();
+    {
+      try
+        {
+          itm->second->destroy();
+        }
+      catch(const CORBA::Exception& e)
+        {
+          // ignore this entry and continue
+        }
+      catch(...)
+        {
+          // ignore this entry and continue
+        }
+    }
 
   _NS->Destroy_FullDirectory(_containerName.c_str());
   _NS->Destroy_Name(_containerName.c_str());
index 2e48961ff319ddc2e79da8ce20a5c2bef1595b66..e5e1369dbdb3749f814c73a99139cf979e7a8ef4 100644 (file)
@@ -51,6 +51,8 @@ void KERNEL_PYTHON::init_python(int argc, char **argv)
   MESSAGE("=================================================================");
   MESSAGE("Python Initialization...");
   MESSAGE("=================================================================");
+  // set stdout to line buffering (aka C++ std::cout)
+  setvbuf(stdout, (char *)NULL, _IOLBF, BUFSIZ);
   Py_SetProgramName(argv[0]);
   Py_Initialize(); // Initialize the interpreter
   PySys_SetArgv(argc, argv);
index 0ae10c7e2ae76b2cbbf2703044a3e2acd5c0d511..5f8172cff83bad609ce0e7e3ee4a0158f7669f2e 100644 (file)
@@ -141,7 +141,6 @@ SALOME_Container_CPPFLAGS =\
 SALOME_Container_LDADD = \
        libSalomeContainer.la \
        ../Basics/libSALOMEBasics.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
        $(HDF5_LIBS) \
        $(MPI_LIBS) \
        $(CORBA_LIBS) \
@@ -159,7 +158,6 @@ TestSalome_file_CPPFLAGS =\
 TestSalome_file_LDADD =\
        libSalomeContainer.la \
        ../Basics/libSALOMEBasics.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
        $(HDF5_LIBS) \
        $(MPI_LIBS) \
        $(CORBA_LIBS) \
index 715b843db66e9b68e1bbc87502799472b0408cd4..5c9080a307676e9aa527c9cfb5be0fa4573801c7 100644 (file)
@@ -66,8 +66,9 @@ public:
                      Engines::Container_ptr container, 
                      const char *instanceName, 
                      const char *interfaceName,
-                      bool notif = false);
-  // Consructeur pour composant parallele: ne pas faire appel au registry
+                      bool notif = false,
+                      bool regist=true);
+  // Constructor for parallel component : don't call registry
   Engines_Component_i(CORBA::ORB_ptr orb,
                      PortableServer::POA_ptr poa,
                      PortableServer::ObjectId * contId, 
index 8a912a9f6297ef77e9c8192d1aea4343fde53ce5..9b6d7f89342ab24bcde3d6c46171d96a521193e7 100644 (file)
@@ -69,14 +69,15 @@ class SALOME_Container_i:
         MESSAGE( "SALOME_Container_i::import_component" )
         ret=0
         try:
-            print "try import ",componentName
+            if verbose(): print "try import ",componentName
             __import__(componentName)
-            print "import ",componentName," successful"
+            if verbose(): print "import ",componentName," successful"
             ret=1
         except:
-            import traceback
-            traceback.print_exc()
-            print "import ",componentName," not possible"
+            if verbose():
+              import traceback
+              traceback.print_exc()
+              print "import ",componentName," not possible"
         return ret
         
     #-------------------------------------------------------------------------
index 947cff6bdcddbe24e04362cfe9cf679a86164cf0..3c7fdf021649b1be5d1454d72a60648294a30bb0 100644 (file)
@@ -37,7 +37,7 @@
 #include "PaCO++.h"
 #endif
 
-#define TIME_OUT_TO_LAUNCH_CONT 21
+#define TIME_OUT_TO_LAUNCH_CONT 61
 
 using namespace std;
 
@@ -127,13 +127,20 @@ void SALOME_ContainerManager::ShutdownContainers()
   if( isOK ){
     vector<string> vec = _NS->list_directory_recurs();
     list<string> lstCont;
-    for(vector<string>::iterator iter = vec.begin();iter!=vec.end();iter++){
+    for(vector<string>::iterator iter = vec.begin();iter!=vec.end();iter++)
+      {
         SCRUTE((*iter));
         CORBA::Object_var obj=_NS->Resolve((*iter).c_str());
-        Engines::Container_var cont=Engines::Container::_narrow(obj);
-        if(!CORBA::is_nil(cont)){
-           lstCont.push_back((*iter));
-       }
+        try
+          {
+            Engines::Container_var cont=Engines::Container::_narrow(obj);
+            if(!CORBA::is_nil(cont))
+             lstCont.push_back((*iter));
+          }
+        catch(const CORBA::Exception& e)
+          {
+            // ignore this entry and continue
+          }
       }
     MESSAGE("Container list: ");
     for(list<string>::iterator iter=lstCont.begin();iter!=lstCont.end();iter++){
@@ -283,19 +290,17 @@ StartContainer(const Engines::MachineParameters& params,
   CORBA::Object_var obj = _NS->Resolve(containerNameInNS.c_str());
   if ( !CORBA::is_nil(obj) )
     {
-       // shutdown the registered container if it exists
-        Engines::Container_var cont=Engines::Container::_narrow(obj);
-        if(!CORBA::is_nil(cont))
-         {
-           try
-           {
-               cont->Shutdown();
-           }
-           catch(CORBA::Exception&)
-            {
-             INFOS("CORBA::Exception ignored.");
-           }
-         }
+      try
+        {
+          // shutdown the registered container if it exists
+          Engines::Container_var cont=Engines::Container::_narrow(obj);
+          if(!CORBA::is_nil(cont))
+            cont->Shutdown();
+        }
+      catch(CORBA::Exception&)
+        {
+          INFOS("CORBA::Exception ignored.");
+        }
     }
 
   //redirect stdout and stderr in a file
@@ -305,16 +310,17 @@ StartContainer(const Engines::MachineParameters& params,
   // launch container with a system call
   int status=system(command.c_str());
 
-  RmTmpFile(); // command file can be removed here
 
   if (status == -1){
     MESSAGE("SALOME_LifeCycleCORBA::StartOrFindContainer rsh failed " <<
            "(system command status -1)");
+    RmTmpFile(); // command file can be removed here
     return Engines::Container::_nil();
   }
   else if (status == 217){
     MESSAGE("SALOME_LifeCycleCORBA::StartOrFindContainer rsh failed " <<
            "(system command status 217)");
+    RmTmpFile(); // command file can be removed here
     return Engines::Container::_nil();
   }
   else{
@@ -346,6 +352,7 @@ StartContainer(const Engines::MachineParameters& params,
         ret->logfilename(logFilename.c_str());
       }
 
+    RmTmpFile(); // command file can be removed here
     return ret;
   }
 }
index 1dc01b639a3fb2e9d66a916ac72a2c3e8c23d9ff..955a1d8d9ba39d3904b7fa1717ab681af1cdd8e1 100755 (executable)
@@ -174,9 +174,10 @@ class SALOME_ContainerPy_i (Engines__POA.Container):
             if verbose(): print "import ",componentName," successful"
             ret=1
         except:
-            import traceback
-            traceback.print_exc()
-            print "import ",componentName," not possible"
+            if verbose(): 
+              import traceback
+              traceback.print_exc()
+              print "import ",componentName," not possible"
         return ret
 
     #-------------------------------------------------------------------------
@@ -317,6 +318,8 @@ class SALOME_ContainerPy_i (Engines__POA.Container):
 #=============================================================================
 
 if __name__ == "__main__":
+  # change the stdout buffering to line buffering (same as C++ cout buffering)
+  sys.stdout=os.fdopen(1,"w",1)
   #initialise the ORB and find the root POA
   if verbose():print "Starting ",sys.argv[1]
   orb = CORBA.ORB_init(sys.argv, CORBA.ORB_ID)
index 6f18790bb66171327a24729f8d9a98d2de303516..5230d7fc5ab5b50628d29abdc324c340017d5161 100644 (file)
@@ -23,8 +23,8 @@
 #include <iostream>
 #include <fstream>
 #include <sstream>
-#include <stdlib.h>
 #include "HDFascii.hxx"
+#include <stdlib.h>
 
 using namespace std;
 
index 93e771dc0f980ad940c4ac2fcff3efaa5b131c03..78d557daf31a977660a248602ee68cb0e9c591ae 100644 (file)
@@ -48,16 +48,10 @@ salomeinclude_HEADERS= \
 
 # This local variable defines the list of CPPFLAGS common to all target in this package.
 COMMON_CPPFLAGS=\
-       -I$(srcdir)/../Basics \
-       -I$(srcdir)/../SALOMELocalTrace \
-       -I$(srcdir)/../HDFPersist \
-       @HDF5_INCLUDES@ \
        @BOOST_CPPFLAGS@
 
 # This local variable defines the list of dependant libraries common to all target in this package.
-COMMON_LIBS =\
-       ../HDFPersist/libSalomeHDFPersist.la \
-       @HDF5_LIBS@
+COMMON_LIBS =
 
 #
 # ===============================================================
@@ -93,6 +87,5 @@ libDF_la_LIBADD    = $(COMMON_LIBS)
 bin_PROGRAMS = testDF
 testDF_SOURCES  = testDF.cxx
 testDF_CPPFLAGS = $(COMMON_CPPFLAGS)
-testDF_LDADD    = ./libDF.la \
-                  $(HDF5_LIBS)
+testDF_LDADD    = ./libDF.la
 
index 736fc1e51492ee7029be88b12a5113e9197fcca8..75f3f05c7b95c7ff2c503fd5fb461ff8ce82b2d8 100644 (file)
@@ -48,7 +48,9 @@ Engines_DSC_i(CORBA::ORB_ptr orb,
               Engines::Container_ptr container, 
               const char *instanceName,
               const char *interfaceName,
-              bool notif) : Engines_Component_i(orb, poa, container, instanceName, interfaceName) 
+              bool notif,
+              bool regist) : 
+    Engines_Component_i(orb, poa, container, instanceName, interfaceName,notif,regist) 
 {
 #ifdef _DEBUG_
   std::cerr << "--Engines_DSC_i: MARK 1 --" << instanceName << "----" << std::endl;
index e0411cfa335f33707dd6b203b5fc21e60a3a08ee..ccfd98786e1b49ea94caead1c179548c40166bae 100644 (file)
@@ -61,7 +61,8 @@ public:
                          Engines::Container_ptr container, 
                          const char *instanceName,
                          const char *interfaceName,
-                         bool notif = false);
+        bool notif = false,
+        bool regist = true );
 
   virtual ~Engines_DSC_i();
 
index 314931e2ac390c0e9df6d0ee1be1f8186c563795..5a87b6b309a63666c8b7b5d13abd12444d268905 100644 (file)
@@ -56,13 +56,11 @@ COMMON_LIBS = @CORBA_LIBS@
 #
 
 AM_CFLAGS         = -fexceptions
-salomepython_PYTHON = dsccalcium.py
-nodist_salomepython_PYTHON = calcium.py 
+salomepython_PYTHON = calcium.py dsccalcium.py
 salomepyexec_LTLIBRARIES = _calcium.la
-MY_SWIG_FLAGS = $(SWIG_FLAGS) -noexcept -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Calcium
-SWIG_SRC = calcium.i
-nodist__calcium_la_SOURCES = calcium_wrap.cpp
-_calcium_la_SOURCES = $(SWIG_SRC)
+MY_SWIG_FLAGS= $(SWIG_FLAGS) -noexcept -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Calcium
+SWIG_SRC=calcium.i
+_calcium_la_SOURCES = calcium_wrap.cpp
 _calcium_la_LDFLAGS = -module
 _calcium_la_LIBADD = ../DSC_User/Datastream/Calcium/libCalciumC.la \
                                                                                 ../DSC_User/Datastream/libSalomeDatastream.la \
@@ -73,8 +71,10 @@ _calcium_la_LIBADD = ../DSC_User/Datastream/Calcium/libCalciumC.la \
 
 _calcium_la_CXXFLAGS = $(PYTHON_INCLUDES) $(COMMON_CPPFLAGS)
 
-calcium_wrap.cpp calcium.py:$(SWIG_SRC)
+EXTRA_DIST=calcium_wrap.cpp calcium.i
+
+calcium_wrap.cpp calcium.py:calcium.i
        $(SWIG) $(MY_SWIG_FLAGS) -o calcium_wrap.cpp $<
 
-CLEANFILES = calcium_wrap.cpp calcium.py
+CLEANFILES = calcium_wrap.cpp
 
index 607985787f33cfcdab5203469876fc033870a068..9b77a6a6e6c094793342c42ba12a4dcdcf975e15 100644 (file)
@@ -45,6 +45,11 @@ salomeinclude_HEADERS = basic_port_factory.hxx \
 COMMON_CPPFLAGS= -I$(top_builddir)/idl \
                 -I$(top_srcdir)/src/DSC/DSC_Basic \
                 -I$(top_srcdir)/src/DSC/DSC_User \
+                -I$(top_srcdir)/src/Container \
+                -I$(top_srcdir)/src/Notification \
+                -I$(top_srcdir)/src/SALOMELocalTrace \
+                -I$(top_srcdir)/src/Basics \
+                -I$(top_srcdir)/src/Utils \
                 -I$(top_builddir)/salome_adm/unix \
                 @CORBA_CXXFLAGS@ @CORBA_INCLUDES@
 
@@ -66,4 +71,5 @@ libSalomeDSCSupervBasic_la_SOURCES  = basic_port_factory.cxx \
 libSalomeDSCSupervBasic_la_CXXFLAGS = $(COMMON_CPPFLAGS)
 
 libSalomeDSCSupervBasic_la_LDFLAGS  = -no-undefined -version-info=0:0:0
+libSalomeDSCSupervBasic_la_LIBADD  = ../libSalomeDSCSuperv.la
 
index 8eeae33ac706d921873418c04cc9ae24d4be8a7a..9c147cf056d6b61a5dcc909b6b7ea4045d8d1064 100644 (file)
 //  Module : KERNEL
 //
 #include "basic_port_factory.hxx"
+#include "Superv_Component_i.hxx"
 
 using namespace std;
 
-basic_port_factory::basic_port_factory() {}
+basic_port_factory::basic_port_factory() {
+  Superv_Component_i::register_factory("BASIC",this);
+}
 
 basic_port_factory::~basic_port_factory() {}
 
@@ -47,3 +50,5 @@ basic_port_factory::create_data_proxy(string type) {
     rtn_port = new data_short_port_uses();
   return rtn_port;
 }
+
+static basic_port_factory myfactory;
index 46d8734c2507251956212c238264e3a7effe5211..eec2ea22fc15bc20b74afd454f06ebf25cc6e59a 100644 (file)
@@ -34,7 +34,7 @@ PySupervCompo::PySupervCompo( CORBA::ORB_ptr orb,
                               const char *instanceName,
                               const char *interfaceName,
                               bool notif) :
-  Superv_Component_i(orb, poa,contain, instanceName, interfaceName)
+  Superv_Component_i(orb, poa,contain, instanceName, interfaceName,false,false)
 {
 }
 
index 5ce9dd3d5b6fca0d1c1b6396edecb0c3ffcc93e3..b607de11908c97e292990295da4edc98a65722c9 100644 (file)
@@ -30,6 +30,7 @@
 #define _PORT_TRAITS_HXX_
 
 #include "Superv_Component_i.hxx"
+#include "calcium_port_factory.hxx"
 
 // PROVIDES PORT TRAITS
 template <class T> struct UnknownProvidesPortType {};
index 3ec3177092817adbd857e9ea5ac9cdc6d73951fe..da56a1f68022451aca3d70a192a78ae15af3920e 100644 (file)
@@ -68,7 +68,7 @@ EXTRA_DIST=fortoc.h
 #
 
 # This local variable defines the list of CPPFLAGS common to all target in this package.
-COMMON_CPPFLAGS= -I$(srcdir) -I$(top_srcdir)/src/DSC/DSC_User \
+COMMON_CPPFLAGS= -I$(top_srcdir)/src/DSC/DSC_User \
                 -I$(top_srcdir)/src/DSC/DSC_User/Datastream \
                 -I$(top_srcdir)/src/DSC/DSC_User/Datastream/Palm \
                 -I$(top_srcdir)/src/DSC/DSC_User/Basic \
index fbcdb7eeab71b1c4a1bf3bec0d75e4a89f746cea..a99ec947f65211c2c07f24505e35eb6c55bf2ec4 100644 (file)
 // Id          : $Id$
 //
 #include "calcium_port_factory.hxx"
+#include "Superv_Component_i.hxx"
 
 using namespace std;
 
-calcium_port_factory::calcium_port_factory() {}
+calcium_port_factory::calcium_port_factory() {
+  Superv_Component_i::register_factory("CALCIUM",this);
+}
 
 calcium_port_factory::~calcium_port_factory() {}
 
@@ -73,3 +76,5 @@ calcium_port_factory::create_data_proxy(string type) {
 
   return rtn_port;
 }
+
+static calcium_port_factory myfactory;
index 9a7f5bfa1d7780896abd48bf89b6f7a49e51c852..9c7742f391c7c34935e2c72c3f715adfa4cfa613 100644 (file)
@@ -56,7 +56,8 @@ COMMON_CPPFLAGS= @BOOST_CPPFLAGS@ -I$(top_srcdir)/src/DSC/DSC_User
 
 # This local variable defines the list of dependant libraries common to all target in this package.
 COMMON_LIBS = $(top_builddir)/src/DSC/DSC_User/Datastream/Palm/libSalomePalm.la \
-             $(top_builddir)/src/DSC/DSC_User/Datastream/Calcium/libSalomeCalcium.la
+             $(top_builddir)/src/DSC/DSC_User/Datastream/Calcium/libSalomeCalcium.la \
+                               ../libSalomeDSCSuperv.la
 
 #
 # ===============================================================
index 74f149f5bfb666588986150fd63dd61bbe7d272e..8d663d52d241c5e32d878907d427c5b8a37ebd52 100644 (file)
@@ -46,6 +46,10 @@ salomeinclude_HEADERS = palm_port_factory.hxx \
 COMMON_CPPFLAGS= -I$(top_srcdir)/src/DSC/DSC_User \
                 -I$(top_srcdir)/src/DSC/DSC_User/Datastream \
                 -I$(top_srcdir)/src/DSC/DSC_Basic \
+                -I$(top_srcdir)/src/Container \
+                -I$(top_srcdir)/src/Notification \
+                -I$(top_srcdir)/src/SALOMELocalTrace \
+                -I$(top_srcdir)/src/Basics \
                 -I$(top_srcdir)/src/Utils \
                 -I$(top_builddir)/salome_adm/unix \
                 -I$(top_builddir)/idl \
index b0896d43aea0998bf8290b2b3ee99d6f4ff5d5b5..18656bfffa8072541e31fb13a3c855cd3209dadc 100644 (file)
 // Id          : $Id$
 //
 #include "palm_port_factory.hxx"
+#include "Superv_Component_i.hxx"
 
 using namespace std;
 
 palm_port_factory::palm_port_factory() {
+    Superv_Component_i::register_factory("PALM",this);
 }
 
 palm_port_factory::~palm_port_factory() {}
@@ -52,3 +54,5 @@ palm_port_factory::create_data_proxy(string type) {
   uses_port * rtn_port = NULL;
   return rtn_port;
 }
+
+static palm_port_factory myfactory;
index 2b42e30baf77d9f0e8b099ebf89796718c8c65cc..9c6f39364f986647a9799b216713a644a68e83e4 100644 (file)
@@ -45,10 +45,7 @@ salomeinclude_HEADERS = base_port.hxx \
 #
 
 # This local variable defines the list of CPPFLAGS common to all target in this package.
-COMMON_CPPFLAGS= -I$(srcdir) -I$(srcdir)/Basic \
-                -I$(srcdir)/Datastream  \
-                -I$(srcdir)/Datastream/Palm \
-                -I$(srcdir)/Datastream/Calcium \
+COMMON_CPPFLAGS= \
                 -I$(top_srcdir)/src/Container \
                 -I$(top_srcdir)/src/Notification \
                 -I$(top_srcdir)/src/DSC/DSC_Basic \
@@ -78,6 +75,7 @@ libSalomeDSCSuperv_la_SOURCES  = base_port.cxx \
 libSalomeDSCSuperv_la_CXXFLAGS = $(COMMON_CPPFLAGS)
 
 libSalomeDSCSuperv_la_LDFLAGS  = -no-undefined -version-info=0:0:0
+libSalomeDSCSuperv_la_LIBADD  = ../DSC_Basic/libSalomeDSCContainer.la
 
 #
 # ===============================================================
@@ -93,4 +91,4 @@ test_DSC_Exception_CXXFLAGS = $(COMMON_CPPFLAGS)
 test_DSC_Exception_LDADD = $(top_builddir)/src/Utils/libOpUtil.la \
                            $(CORBA_LIBS)
 
-SUBDIRS = Basic Datastream
+SUBDIRS = Basic Datastream
index 53e053b4211d0591536b083513d1771b472f2e5c..49eb3751540b11fcd817fbd9f0689edf894c505e 100644 (file)
@@ -25,8 +25,6 @@
 //
 #include "Superv_Component_i.hxx"
 
-using namespace std;
-
 DSC_EXCEPTION_CXX(Superv_Component_i,BadFabType);
 DSC_EXCEPTION_CXX(Superv_Component_i,BadType);
 DSC_EXCEPTION_CXX(Superv_Component_i,BadCast);
@@ -37,6 +35,8 @@ DSC_EXCEPTION_CXX(Superv_Component_i,PortNotConnected);
 DSC_EXCEPTION_CXX(Superv_Component_i,NilPort);
 DSC_EXCEPTION_CXX(Superv_Component_i,BadProperty);
 
+std::map<std::string, port_factory*> Superv_Component_i::_factory_map;
+
 Superv_Component_i::Superv_Component_i(CORBA::ORB_ptr orb,
                                       PortableServer::POA_ptr poa,
                                       PortableServer::ObjectId * contId,
@@ -48,23 +48,19 @@ Superv_Component_i::Superv_Component_i(CORBA::ORB_ptr orb,
 #ifdef _DEBUG_
   std::cerr << "--Superv_Component_i : MARK 1 ----  " << instanceName << "----" << std::endl;
 #endif
-  register_factory("BASIC", new basic_port_factory());
-  register_factory("PALM", new palm_port_factory());
-  register_factory("CALCIUM", new calcium_port_factory());
 }
 Superv_Component_i::Superv_Component_i(CORBA::ORB_ptr orb,
                                       PortableServer::POA_ptr poa,
                                       Engines::Container_ptr container, 
                                       const char *instanceName,
                                       const char *interfaceName,
-                                      bool notif) : Engines_DSC_i(orb, poa, container, instanceName, interfaceName) 
+                                      bool notif,
+                                       bool regist) : 
+  Engines_DSC_i(orb, poa, container, instanceName, interfaceName,notif,regist) 
 {
 #ifdef _DEBUG_
   std::cerr << "--Superv_Component_i : MARK 1 ----  " << instanceName << "----" << std::endl;
 #endif
-  register_factory("BASIC", new basic_port_factory());
-  register_factory("PALM", new palm_port_factory());
-  register_factory("CALCIUM", new calcium_port_factory());
 }
 
   
index ecc529586d731b64835dc16a17d3a6e69743b6fc..ec6d8abcbec2f6320858129a3178bfde6b3e0ad2 100644 (file)
 #include "provides_port.hxx"
 #include "port_factory.hxx"
 
-// default ports factories in the Kernel
-#include "basic_port_factory.hxx"
-#include "palm_port_factory.hxx"
-#include "calcium_port_factory.hxx"
-
 #include "DSC_Exception.hxx"
+#include <vector>
+
 
 /*! \class Superv_Component_i
  *  \brief This class implements DSC_User component.
@@ -67,7 +64,8 @@ public:
                     Engines::Container_ptr container, 
                     const char *instanceName,
                     const char *interfaceName,
-                    bool notif = false);
+                    bool notif = false,
+         bool regist = true );
   virtual ~Superv_Component_i();
 
   // Exceptions declarations.
@@ -246,7 +244,7 @@ public:
    * and Superv_Component_i::create_uses_data_port)
    * \param factory_ptr factory pointer (destroyed by the component)
    */
-  virtual void register_factory(const std::string & factory_name,
+  static void register_factory(const std::string & factory_name,
                                port_factory * factory_ptr);
 
   /*!
@@ -260,7 +258,7 @@ public:
 private:   
   // Factory map
   typedef std::map<std::string, port_factory*> factory_map_t;
-  factory_map_t _factory_map;
+  static factory_map_t _factory_map;
 
   /*-------------------------------------------------*/
   // A Superv_Component port.
index 2ac7eb48453b78b3e3e8621f9cd18e89c8ad89a9..faf2c61915c3f42fab1e6a191434abbfa0c2bc25 100644 (file)
@@ -29,7 +29,6 @@ extern "C"
 }
 #include "HDFcontainerObject.hxx"
 #include "HDFexception.hxx"
-//#include "utilities.h"
 using namespace std;
 
 HDFcontainerObject::HDFcontainerObject(const char *name)
@@ -47,10 +46,8 @@ HDFcontainerObject::~HDFcontainerObject()
     {
       sonToDelete = _firstson;
       _firstson = _firstson->GetNextBrother();
-//       MESSAGE("son to delete: " << sonToDelete);
       delete sonToDelete;
     }
-//   MESSAGE("destruction: " << this);
 }
 
 int HDFcontainerObject::nInternalObjects()
@@ -65,11 +62,6 @@ void HDFcontainerObject::InternalObjectIndentify(int rank, char *object_name)
 
 void HDFcontainerObject::AddSon(HDFinternalObject *son)
 {
-//   MESSAGE("add son ")  MESSAGE("add to this" << this);
-//   MESSAGE("add son " << son);
-//   MESSAGE("firstson " << _firstson);
-//   MESSAGE("lastson  " << _lastson);
-
   if (_nsons == 0)
     {
       _firstson = son;
@@ -82,8 +74,6 @@ void HDFcontainerObject::AddSon(HDFinternalObject *son)
       _lastson = son;
     }
   _nsons ++;
-//   MESSAGE("firstson " << _firstson);
-//   MESSAGE("lastson  " << _lastson);
 }
 
 HDFinternalObject *HDFcontainerObject::GetFirstSon()
index a5075a0cf1fff5622d04003c75c0a8c26a48d3a9..828cdd1d72c56deaaf412c49d72c64e3897ad3ab 100644 (file)
@@ -29,24 +29,20 @@ extern "C"
 #include "hdfi.h"
 }
 
-#include <string>
-//#include "utilities.h"
+#include <string.h>
+#include <stdlib.h>
 using namespace std;
 
 HDFobject::HDFobject(const char *name)
 {
-  //  MESSAGE("-------- constructor " << name << " " << this);
   HDFerrorModeLock();
-  _name = new char[strlen(name)+1];
-  strcpy(_name,name);
+  _name = strdup(name);
   _id = -1;
 }
 
 HDFobject::~HDFobject()
 {
-  //delete [] _name;
-  delete _name;
-  //  MESSAGE("-------- destructor ------" << this);
+  free(_name);
 }
 
 hdf_idt HDFobject::GetId()
index 617d009fa1d1153ada5480eb4c9667b6b8f93576..0213e73e7df22a12f1e1384856634a418f2cce89 100644 (file)
@@ -89,9 +89,7 @@ libSalomeHDFPersist_la_SOURCES  =\
 
 libSalomeHDFPersist_la_LDFLAGS  = -no-undefined -version-info=0:0:0
 
-libSalomeHDFPersist_la_CPPFLAGS = @HDF5_INCLUDES@ -D@MACHINE@ \
-                                  -I$(srcdir)/../SALOMELocalTrace \
-                                  -I$(srcdir)/../Basics
+libSalomeHDFPersist_la_CPPFLAGS = @HDF5_INCLUDES@ -D@MACHINE@ 
 
 libSalomeHDFPersist_la_LIBADD   = @HDF5_LIBS@
 
@@ -105,16 +103,3 @@ EXTRA_DIST = \
   test7.cxx \
   test8.cxx \
   test9.cxx
-
-#bin_PROGRAMS=HDFtest1 HDFtest2 HDFtest3
-#HDFtest1_SOURCES = test1.c
-#HDFtest2_SOURCES = test2.c
-#HDFtest3_SOURCES = test3.cxx
-
-#AM_CFLAGS= @CAS_CPPFLAGS@ @HDF5_INCLUDES@ -D@MACHINE@ \
-#                                  -I$(srcdir)/../SALOMELocalTrace \
-#                                  -I$(srcdir)/../Basics
-#AM_CXXFLAGS= @CAS_CPPFLAGS@ @HDF5_INCLUDES@ -D@MACHINE@ \
-#                                  -I$(srcdir)/../SALOMELocalTrace \
-#                                  -I$(srcdir)/../Basics
-#AM_LDFLAGS= @HDF5_LIBS@
index 790a673aaae752823a6ff450a531e6f4c923041f..a320ecedc6b75b03475ca1bbc91402a0c66c8236 100644 (file)
@@ -285,9 +285,15 @@ BatchTest::test_jobsubmit_simple()
   std::string batch_type = _batch_descr.batch.in();
 
   // Basic test
-  if (batch_type == "slurm")
+  if (batch_type == "lsf")
   {
-    INFOS("test_jobsubmit_simple not yet implemented for slurm... return OK");
+    INFOS("test_jobsubmit_simple not yet implemented for lsf... return OK");
+    result = "OK";
+    return result;
+  }
+  if (batch_type == "sge")
+  {
+    INFOS("test_jobsubmit_simple not yet implemented for sge... return OK");
     result = "OK";
     return result;
   }
@@ -452,16 +458,25 @@ BatchTest::test_jobsubmit_mpi()
     mpiImpl = new MpiImpl_MPICH2();
   else if(mpi_type == "openmpi")
     mpiImpl = new MpiImpl_OPENMPI();
+  else if(mpi_type == "slurm")
+    mpiImpl = new MpiImpl_SLURM();
   else
   {
     result += "Error MPI impl not supported : " + mpi_type;
     return result;
   }
 
-  // SLURM not yet implemented...
-  if (batch_type == "slurm")
+  // LSF et SGE not yet implemented...
+  if (batch_type == "lsf")
+  {
+    INFOS("test_jobsubmit_simple not yet implemented for lsf... return OK");
+    result = "OK";
+    return result;
+  }
+
+  if (batch_type == "sge")
   {
-    INFOS("test_jobsubmit_simple not yet implemented for slurm... return OK");
+    INFOS("test_jobsubmit_simple not yet implemented for sge... return OK");
     result = "OK";
     return result;
   }
index c4d6804236462dc7c4994e2855935944f7b0d083..6dd80e1899b89a35467142675bdf75a713f847ed 100644 (file)
 #include "Batch_FactBatchManager_eLSF.hxx"
 #include "Batch_FactBatchManager_ePBS.hxx"
 #include "Batch_BatchManager_eClient.hxx"
-
+#include "Batch_FactBatchManager_eSGE.hxx"
+#include "SALOME_Launcher_Handler.hxx"
+#include "Launcher.hxx"
 #include <iostream>
 #include <sstream>
 #include <sys/stat.h>
 #include <time.h>
 
+using namespace std;
+
 //=============================================================================
 /*! 
  *  Constructor
@@ -66,6 +70,114 @@ Launcher_cpp::~Launcher_cpp()
     delete it2->second;
 }
 
+//=============================================================================
+/*! CORBA Method:
+ *  Submit a batch job on a cluster and returns the JobId
+ *  \param xmlExecuteFile     : to define the execution on the batch cluster
+ *  \param clusterName        : name of the batch cluster
+ */
+//=============================================================================
+long Launcher_cpp::submitJob( const std::string xmlExecuteFile,
+                  const std::string clusterName) throw(LauncherException)
+{
+#if defined(_DEBUG_) || defined(_DEBUG)
+  cout << "BEGIN OF Launcher_cpp::submitJob" << endl;
+#endif
+  long jobId;
+  vector<string> aMachineList;
+
+  if(!_ResManager)
+    throw LauncherException("You must set Resources Manager to Launcher!!");
+
+  // verify if cluster is in resources catalog
+  machineParams params;
+  params.hostname = clusterName;
+  vector<string> aCompoList ;
+  try{
+    aMachineList = _ResManager->GetFittingResources(params, aCompoList);
+  }
+  catch(const ResourcesException &ex){
+    throw LauncherException(ex.msg.c_str());
+  }
+  if (aMachineList.size() == 0)
+    throw LauncherException("This cluster is not in resources catalog");
+
+  // Parsing xml file
+  ParseXmlFile(xmlExecuteFile);
+
+  // verify if clustername is in xml file
+  map<std::string,MachineParameters>::const_iterator it1 = _launch.MachinesList.find(clusterName);
+  if(it1 == _launch.MachinesList.end())
+    throw LauncherException("This cluster is not in xml file");
+
+  ParserResourcesType p = _ResManager->GetResourcesList(aMachineList[0]);
+  string cname(p.Alias);
+#if defined(_DEBUG_) || defined(_DEBUG)
+  cout << "Choose cluster: " <<  cname << endl;
+#endif
+
+  // search batch manager for that cluster in map or instanciate one
+  map < string, Batch::BatchManager_eClient * >::const_iterator it2 = _batchmap.find(cname);
+  if(it2 == _batchmap.end())
+    {
+      _batchmap[cname] = FactoryBatchManager(p);
+      // TODO: Add a test for the cluster !
+    }
+    
+  try{
+
+    // directory on cluster to put files to execute
+    string remotedir = _launch.MachinesList[clusterName].WorkDirectory;
+    // local directory to get files to execute and to put results
+    string localdir = _launch.RefDirectory;
+
+    int idx1 = xmlExecuteFile.find_last_of("/");
+    if(idx1 == string::npos) idx1 = -1;
+    int idx2 = xmlExecuteFile.find(".xml");
+    string logfile = xmlExecuteFile.substr(idx1+1,idx2-idx1-1);
+    string ologfile = logfile + ".output.log";
+    string elogfile = logfile + ".error.log";
+
+    // create and submit job on cluster
+    Batch::Parametre param;
+    param[USER] = p.UserName;
+    param[EXECUTABLE] = "";
+    for(int i=0; i<_launch.InputFile.size();i++)
+      param[INFILE] += Batch::Couple( localdir + "/" + _launch.InputFile[i], remotedir + "/" + _launch.InputFile[i] );
+    for(int i=0; i<_launch.OutputFile.size();i++)
+      param[OUTFILE] += Batch::Couple( localdir + "/" + _launch.OutputFile[i], remotedir + "/" + _launch.OutputFile[i] );
+    param[OUTFILE] += Batch::Couple( localdir + "/" + ologfile, remotedir + "/" + ologfile );
+    param[OUTFILE] += Batch::Couple( localdir + "/" + elogfile, remotedir + "/" + elogfile );
+    param[NBPROC] = _launch.NbOfProcesses;
+    param[WORKDIR] = remotedir;
+    param[TMPDIR] = remotedir;
+    param[MAXWALLTIME] = getWallTime("");
+    param[MAXRAMSIZE] = getRamSize("");
+    param[HOMEDIR] = "";
+
+    Batch::Environnement env;
+    env["COMMAND"] = _launch.Command;
+    env["SOURCEFILE"] = _launch.MachinesList[clusterName].EnvFile;
+    env["LOGFILE"] = logfile;
+
+    Batch::Job* job = new Batch::Job(param,env);
+
+    // submit job on cluster
+    Batch::JobId jid = _batchmap[cname]->submitJob(*job);
+
+    // get job id in long
+    istringstream iss(jid.getReference());
+    iss >> jobId;
+
+    _jobmap[ pair<string,long>(cname,jobId) ] = job;
+  }
+  catch(const Batch::EmulationException &ex){
+    throw LauncherException(ex.msg.c_str());
+  }
+
+  return jobId;
+}
+
 //=============================================================================
 /*! CORBA Method:
  *  Submit a batch job on a cluster and returns the JobId
@@ -87,6 +199,9 @@ long Launcher_cpp::submitSalomeJob( const string fileToExecute ,
   long jobId;
   vector<string> aMachineList;
 
+  if(!_ResManager)
+    throw LauncherException("You must set Resources Manager to Launcher!!");
+
   // check batch params
   if ( !check(batch_params) )
     throw LauncherException("Batch parameters are bad (see informations above)");
@@ -128,11 +243,10 @@ long Launcher_cpp::submitSalomeJob( const string fileToExecute ,
     for(int i=0;i<filesToExport.size();i++)
       param[INFILE] += Batch::Couple( filesToExport[i], getRemoteFile(tmpdir,filesToExport[i]) );
 
-
     ostringstream file_name_output;
-    file_name_output << "~/" << tmpdir << "/" << "runSalome.output.log*";
+    file_name_output << "~/" << tmpdir << "/" << "output.log*";
     ostringstream file_name_error;
-    file_name_error << "~/" << tmpdir << "/" << "runSalome.error.log*";
+    file_name_error << "~/" << tmpdir << "/" << "error.log*";
     ostringstream file_container_log;
     file_container_log << "~/" << tmpdir << "/" << "YACS_Server*";
     param[OUTFILE] = Batch::Couple( "", file_name_output.str());
@@ -148,6 +262,7 @@ long Launcher_cpp::submitSalomeJob( const string fileToExecute ,
     param[MAXWALLTIME] = getWallTime(batch_params.expected_during_time);
     param[MAXRAMSIZE] = getRamSize(batch_params.mem);
     param[HOMEDIR] = getHomeDir(p, tmpdir);
+    param[QUEUE] = p.batchQueue;
 
     Batch::Environnement env;
 
@@ -176,9 +291,12 @@ long Launcher_cpp::submitSalomeJob( const string fileToExecute ,
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-string Launcher_cpp::querySalomeJob( long id, 
-                                    const machineParams& params) throw(LauncherException)
+string Launcher_cpp::queryJob( long id, 
+                              const machineParams& params) throw(LauncherException)
 {
+  if(!_ResManager)
+    throw LauncherException("You must set Resources Manager to Launcher!!");
+
   // find a cluster matching params structure
   vector<string> aCompoList ;
   vector<string> aMachineList = _ResManager->GetFittingResources( params , aCompoList ) ;
@@ -190,15 +308,30 @@ string Launcher_cpp::querySalomeJob( long id,
   if(it == _batchmap.end())
     throw LauncherException("no batchmanager for that cluster");
     
-  ostringstream oss;
-  oss << id;
-  Batch::JobId jobId( _batchmap[clustername], oss.str() );
+  Batch::Parametre par;
+  try{
+    ostringstream oss;
+    oss << id;
+    Batch::JobId jobId( _batchmap[clustername], oss.str() );
+
+    Batch::JobInfo jinfo = jobId.queryJob();
+    par = jinfo.getParametre();
+  }
+  catch(const Batch::EmulationException &ex){
+    throw LauncherException(ex.msg.c_str());
+  }
 
-  Batch::JobInfo jinfo = jobId.queryJob();
-  Batch::Parametre par = jinfo.getParametre();
   return par[STATE];
 }
 
+string Launcher_cpp::queryJob( long id, 
+                              const std::string clusterName)
+{
+  machineParams params;
+  params.hostname = clusterName;
+  return queryJob(id,params);
+}
+
 //=============================================================================
 /*! CORBA Method:
  *  Delete a batch job on a cluster 
@@ -206,9 +339,12 @@ string Launcher_cpp::querySalomeJob( long id,
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-void Launcher_cpp::deleteSalomeJob( const long id, 
-                                   const machineParams& params) throw(LauncherException)
+void Launcher_cpp::deleteJob( const long id, 
+                             const machineParams& params) throw(LauncherException)
 {
+  if(!_ResManager)
+    throw LauncherException("You must set Resources Manager to Launcher!!");
+
   // find a cluster matching params structure
   vector<string> aCompoList ;
   vector<string> aMachineList = _ResManager->GetFittingResources( params , aCompoList ) ;
@@ -227,6 +363,14 @@ void Launcher_cpp::deleteSalomeJob( const long id,
   jobId.deleteJob();
 }
 
+void Launcher_cpp::deleteJob( long id, 
+                             const std::string clusterName)
+{
+  machineParams params;
+  params.hostname = clusterName;
+  deleteJob(id,params);
+}
+
 //=============================================================================
 /*! CORBA Method:
  *  Get result files of job on a cluster
@@ -234,10 +378,13 @@ void Launcher_cpp::deleteSalomeJob( const long id,
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-void Launcher_cpp::getResultSalomeJob( const string directory,
-                                      const long id, 
-                                      const machineParams& params) throw(LauncherException)
+void Launcher_cpp::getResultsJob( const string directory,
+                                 const long id, 
+                                 const machineParams& params) throw(LauncherException)
 {
+  if(!_ResManager)
+    throw LauncherException("You must set Resources Manager to Launcher!!");
+
   vector<string> aCompoList ;
   vector<string> aMachineList = _ResManager->GetFittingResources( params , aCompoList ) ;
   ParserResourcesType p = _ResManager->GetResourcesList(aMachineList[0]);
@@ -253,6 +400,15 @@ void Launcher_cpp::getResultSalomeJob( const string directory,
   _batchmap[clustername]->importOutputFiles( *job, directory );
 }
 
+void Launcher_cpp::getResultsJob( const std::string directory, 
+                                 long id, 
+                                 const std::string clusterName)
+{
+  machineParams params;
+  params.hostname = clusterName;
+  getResultsJob(directory,id,params);
+}
+
 //=============================================================================
 /*!
  *  Factory to instanciate the good batch manager for choosen cluster.
@@ -293,8 +449,14 @@ Batch::BatchManager_eClient *Launcher_cpp::FactoryBatchManager( const ParserReso
   case slurm:
     mpi = "slurm";
     break;
+  case prun:
+    mpi = "prun";
+    break;
+  case nompi:
+    throw LauncherException("you must specified an mpi implementation for batch manager");
+    break;
   default:
-    mpi = "indif";
+    throw LauncherException("unknown mpi implementation");
     break;
   }    
 #if defined(_DEBUG_) || defined(_DEBUG)
@@ -313,6 +475,12 @@ Batch::BatchManager_eClient *Launcher_cpp::FactoryBatchManager( const ParserReso
 #endif
     fact = new Batch::FactBatchManager_eLSF;
     break;
+  case sge:
+#if defined(_DEBUG_) || defined(_DEBUG)
+    cout << "Instantiation of SGE batch manager" << endl;
+#endif
+    fact = new Batch::FactBatchManager_eSGE;
+    break;
   default:
 #if defined(_DEBUG_) || defined(_DEBUG)
     cerr << "BATCH = " << params.Batch << endl;
@@ -347,10 +515,14 @@ string Launcher_cpp::buildSalomeCouplingScript(const string fileToExecute, const
   tempOutputFile << dirForTmpFiles ;
   tempOutputFile << ":$PYTHONPATH" << endl ;
 
+  // Adding user script
+  std::string script = params.userCommands;
+  if (script != "")
+    tempOutputFile << script << endl;
   // Test node rank
-  tempOutputFile << "if test " ;
+  tempOutputFile << "if test \"" ;
   tempOutputFile << mpiImpl->rank() ;
-  tempOutputFile << " = 0; then" << endl ;
+  tempOutputFile << "\" = \"0\"; then" << endl ;
 
   // -----------------------------------------------
   // Code for rank 0 : launch runAppli and a container
@@ -453,8 +625,10 @@ MpiImpl *Launcher_cpp::FactoryMpiImpl(MpiImplType mpi) throw(LauncherException)
     return new MpiImpl_OPENMPI();
   case slurm:
     return new MpiImpl_SLURM();
-  case indif:
-    throw LauncherException("you must specify a mpi implementation in CatalogResources.xml file");
+  case prun:
+    return new MpiImpl_PRUN();
+  case nompi:
+    throw LauncherException("you must specify an mpi implementation for batch manager");
   default:
     ostringstream oss;
     oss << mpi << " : not yet implemented";
@@ -628,37 +802,70 @@ long Launcher_cpp::getRamSize(std::string mem)
     return 0;
 }
 
-std::string
-Launcher_cpp::getHomeDir(const ParserResourcesType& p, const std::string& tmpdir)
+void Launcher_cpp::ParseXmlFile(string xmlExecuteFile)
 {
-    std::string home;
-    std::string command;
-    int idx = tmpdir.find("Batch/");
-    std::string filelogtemp = tmpdir.substr(idx+6, tmpdir.length());
-    filelogtemp = "/tmp/logs" + filelogtemp + "_home";
-
-    if( p.Protocol == rsh )
-      command = "rsh ";
-    else if( p.Protocol == ssh )
-      command = "ssh ";
-    else
-      throw LauncherException("Unknown protocol");
-    if (p.UserName != ""){
-      command += p.UserName;
-      command += "@";
+  SALOME_Launcher_Handler* handler = new SALOME_Launcher_Handler(_launch);
+
+  const char* aFilePath = xmlExecuteFile.c_str();
+  FILE* aFile = fopen(aFilePath, "r");
+  
+  if (aFile != NULL)
+    {
+      xmlDocPtr aDoc = xmlReadFile(aFilePath, NULL, 0);
+      
+      if (aDoc != NULL)
+        handler->ProcessXmlDocument(aDoc);
+      else{
+#if defined(_DEBUG_) || defined(_DEBUG)
+        cout << "ResourcesManager_cpp: could not parse file "<< aFilePath << endl;
+#endif
+      }
+      
+      // Free the document
+      xmlFreeDoc(aDoc);
+
+      fclose(aFile);
     }
-    command += p.Alias;
-    command += " 'echo $HOME' > ";
-    command += filelogtemp;
+  else{
 #if defined(_DEBUG_) || defined(_DEBUG)
-    std::cerr << command.c_str() << std::endl;
+    cout << "Launcher_cpp: file "<<aFilePath<<" is not readable." << endl;
 #endif
-    int status = system(command.c_str());
-    if(status)
-      throw LauncherException("Error of launching home command on remote host");
-
-    std::ifstream file_home(filelogtemp.c_str());
-    std::getline(file_home, home);
-    file_home.close();
-    return home;
+  }
+  
+  delete handler;
+
+}
+
+std::string Launcher_cpp::getHomeDir(const ParserResourcesType& p, const std::string& tmpdir)
+{
+  std::string home;
+  std::string command;
+  int idx = tmpdir.find("Batch/");
+  std::string filelogtemp = tmpdir.substr(idx+6, tmpdir.length());
+  filelogtemp = "/tmp/logs" + filelogtemp + "_home";
+  
+  if( p.Protocol == rsh )
+    command = "rsh ";
+  else if( p.Protocol == ssh )
+    command = "ssh ";
+  else
+    throw LauncherException("Unknown protocol");
+  if (p.UserName != ""){
+    command += p.UserName;
+    command += "@";
+  }
+  command += p.Alias;
+  command += " 'echo $HOME' > ";
+  command += filelogtemp;
+#if defined(_DEBUG_) || defined(_DEBUG)
+  std::cerr << command.c_str() << std::endl;
+#endif
+  int status = system(command.c_str());
+  if(status)
+    throw LauncherException("Error of launching home command on remote host");
+  
+  std::ifstream file_home(filelogtemp.c_str());
+  std::getline(file_home, home);
+  file_home.close();
+  return home;
 }
index dc1d9d5615e991d0444a1324941c25bdb31cfcdf..d9153543e9b2b59f1854128b5523b12d82ddca4f 100644 (file)
@@ -34,6 +34,7 @@
 
 #include <SALOME_ResourcesCatalog_Parser.hxx>
 #include "ResourcesManager.hxx"
+#include "SALOME_Launcher_Parser.hxx"
 
 #include <string>
 #include <vector>
@@ -67,15 +68,21 @@ public:
   Launcher_cpp();
   ~Launcher_cpp();
 
+  long submitJob(const std::string xmlExecuteFile,
+                const std::string clusterName) throw(LauncherException);
+
   long submitSalomeJob(const std::string fileToExecute ,
                       const std::vector<std::string>& filesToExport ,
                       const std::vector<std::string>& filesToImport ,
                       const batchParams& batch_params,
                       const machineParams& params) throw(LauncherException);
 
-  std::string querySalomeJob( const long jobId, const machineParams& params) throw(LauncherException);
-  void deleteSalomeJob( const long jobId, const machineParams& params) throw(LauncherException);
-  void getResultSalomeJob( const std::string directory, const long jobId, const machineParams& params ) throw(LauncherException);
+  std::string queryJob( const long jobId, const machineParams& params) throw(LauncherException);
+  std::string queryJob( const long jobId, const std::string clusterName);
+  void deleteJob( const long jobId, const machineParams& params) throw(LauncherException);
+  void deleteJob( const long jobId, const std::string clusterName);
+  void getResultsJob( const std::string directory, const long jobId, const machineParams& params ) throw(LauncherException);
+  void getResultsJob( const std::string directory, const long jobId, const std::string clusterName );
 
   void SetResourcesManager( ResourcesManager_cpp* rm ) { _ResManager = rm; }
 
@@ -94,6 +101,11 @@ protected:
   bool check(const batchParams& batch_params);
   long getWallTime(std::string edt);
   long getRamSize(std::string mem);
+  void ParseXmlFile(std::string xmlExecuteFile);
+
+  //! will contain the informations on the data type catalog(after parsing)
+  ParserLauncherType _launch;
+
 };
 
 #endif
index 52a95dfc0fdbb80b3182a74d20170063447a6d0e..ab797d7039167ac2363bd938a5568114038d1f8c 100644 (file)
 #
 #  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 #
-#  SALOME Container : implementation of container and engine for Kernel
-#  File   : Makefile.am
-#  Author : Guillaume Boulant (CSSI)
-#  Module : KERNEL
-#  $Header$
-#
 include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 
 #
@@ -34,10 +28,12 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 #
 # header files  
 salomeinclude_HEADERS = \
-                       BatchTest.hxx \
-                       SALOME_Launcher.hxx \
-                       SALOME_Launcher_defs.hxx \
-                       Launcher.hxx
+  SALOME_Launcher_Parser.hxx \
+  SALOME_Launcher_Handler.hxx \
+  BatchTest.hxx \
+  SALOME_Launcher_defs.hxx \
+  SALOME_Launcher.hxx \
+  Launcher.hxx
 
 # Scripts to be installed
 dist_salomescript_DATA =
@@ -91,10 +87,14 @@ COMMON_LIBS =\
 # Libraries targets
 # ===============================================================
 #
-lib_LTLIBRARIES = libLauncher.la libSalomeLauncher.la
+if WITHONLYLAUNCHER
+  lib_LTLIBRARIES = libLauncher.la
+else
+  lib_LTLIBRARIES = libLauncher.la libSalomeLauncher.la
+endif
 libSalomeLauncher_la_SOURCES=\
-                            BatchTest.cxx \
-                            SALOME_Launcher.cxx 
+       BatchTest.cxx \
+       SALOME_Launcher.cxx 
 
 libSalomeLauncher_la_CPPFLAGS =\
        $(COMMON_CPPFLAGS)
@@ -107,10 +107,12 @@ libSalomeLauncher_la_LIBADD =\
        $(COMMON_LIBS) libLauncher.la
 
 libLauncher_la_SOURCES=\
+       SALOME_Launcher_Parser.cxx \
+       SALOME_Launcher_Handler.cxx  \
        Launcher.cxx
 
 libLauncher_la_CPPFLAGS =\
-       $(COMMON_CPPFLAGS) \
+       -I$(srcdir)/../Batch \
        -I$(srcdir)/../ResourcesManager \
        @MPI_INCLUDES@ \
        @LIBXML_INCLUDES@
@@ -121,7 +123,7 @@ libLauncher_la_LDFLAGS  =\
 
 libLauncher_la_LIBADD =\
        ../Batch/libSalomeBatch.la \
-       ../ResourcesManager/libResourcesManager.la \
+       ../ResourcesManager/libSalomeResourcesManager.la \
        @MPI_LIBS@ \
        @LIBXML_LIBS@
 
@@ -130,7 +132,9 @@ libLauncher_la_LIBADD =\
 # Executables targets
 # ===============================================================
 #
-bin_PROGRAMS = SALOME_LauncherServer
+if !WITHONLYLAUNCHER
+  bin_PROGRAMS = SALOME_LauncherServer
+endif
 
 SALOME_LauncherServer_SOURCES =\
        SALOME_LauncherServer.cxx
index afbd89b4e97eb516b3e834b0867b7c1adb3e2249..00869eec808cdc3db817b4e4b4f40ffe88027695 100644 (file)
@@ -113,6 +113,28 @@ CORBA::Long SALOME_Launcher::getPID()
 
 }
 
+//=============================================================================
+/*! CORBA Method:
+ *  Submit a batch job on a cluster and returns the JobId
+ *  \param xmlExecuteFile     : .xml to parse to execute on the batch cluster
+ *  \param clusterName        : cluster name
+ */
+//=============================================================================
+CORBA::Long SALOME_Launcher::submitJob(const char * xmlExecuteFile,
+                                      const char * clusterName)
+{
+  CORBA::Long jobId;
+
+  try{
+    jobId = _l.submitJob(xmlExecuteFile,clusterName);
+  }
+  catch(const LauncherException &ex){
+    INFOS(ex.msg.c_str());
+    THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR);
+  }
+  return jobId;
+}
+
 //=============================================================================
 /*! CORBA Method:
  *  Submit a batch job on a cluster and returns the JobId
@@ -192,9 +214,9 @@ SALOME_Launcher::testBatch(const Engines::MachineParameters& params)
       rtn = true;
     }
   }
-  catch(const SALOME_Exception &ex){
-    INFOS(ex.what());
-    THROW_SALOME_CORBA_EXCEPTION(ex.what(),SALOME::INTERNAL_ERROR);
+  catch(const LauncherException &ex){
+    INFOS(ex.msg.c_str());
+    THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::INTERNAL_ERROR);
   }
   return rtn;
 }
@@ -206,8 +228,8 @@ SALOME_Launcher::testBatch(const Engines::MachineParameters& params)
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-char* SALOME_Launcher::querySalomeJob( const CORBA::Long jobId, 
-                                      const Engines::MachineParameters& params)
+char* SALOME_Launcher::queryJob( const CORBA::Long jobId, 
+                                const Engines::MachineParameters& params)
 {
   string status;
   machineParams p;
@@ -219,10 +241,10 @@ char* SALOME_Launcher::querySalomeJob( const CORBA::Long jobId,
   p.mem_mb = params.mem_mb;
 
   try{
-    status =  _l.querySalomeJob(jobId,p);
+    status =  _l.queryJob(jobId,p);
   }
   catch(const LauncherException &ex){
-    INFOS("Caught exception.");
+    INFOS(ex.msg.c_str());
     THROW_SALOME_CORBA_EXCEPTION(ex.msg.c_str(),SALOME::BAD_PARAM);
   }
   return CORBA::string_dup(status.c_str());
@@ -235,8 +257,8 @@ char* SALOME_Launcher::querySalomeJob( const CORBA::Long jobId,
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-void SALOME_Launcher::deleteSalomeJob( const CORBA::Long jobId, 
-                                      const Engines::MachineParameters& params)
+void SALOME_Launcher::deleteJob( const CORBA::Long jobId, 
+                                const Engines::MachineParameters& params)
 {
   machineParams p;
   p.hostname = params.hostname;
@@ -247,7 +269,7 @@ void SALOME_Launcher::deleteSalomeJob( const CORBA::Long jobId,
   p.mem_mb = params.mem_mb;
 
   try{
-    _l.deleteSalomeJob(jobId,p);
+    _l.deleteJob(jobId,p);
   }
   catch(const LauncherException &ex){
     INFOS("Caught exception.");
@@ -262,9 +284,9 @@ void SALOME_Launcher::deleteSalomeJob( const CORBA::Long jobId,
  *  \param params             : Constraints for the choice of the batch cluster
  */
 //=============================================================================
-void SALOME_Launcher::getResultSalomeJob( const char *directory,
-                                         const CORBA::Long jobId, 
-                                         const Engines::MachineParameters& params)
+void SALOME_Launcher::getResultsJob( const char *directory,
+                                    const CORBA::Long jobId, 
+                                    const Engines::MachineParameters& params)
 {
   machineParams p;
   p.hostname = params.hostname;
@@ -275,7 +297,7 @@ void SALOME_Launcher::getResultSalomeJob( const char *directory,
   p.mem_mb = params.mem_mb;
 
   try{
-    _l.getResultSalomeJob( directory, jobId, p );
+    _l.getResultsJob( directory, jobId, p );
   }
   catch(const LauncherException &ex){
     INFOS("Caught exception.");
index 91615c658a15bffed959f6fa4c448ff4ef70ac7f..9263d5c68394343a55fc6e158e12358f819164c5 100644 (file)
@@ -43,6 +43,9 @@ public:
   SALOME_Launcher(CORBA::ORB_ptr orb, PortableServer::POA_var poa);
   ~SALOME_Launcher();
 
+  CORBA::Long submitJob(const char * xmlExecuteFile,
+                        const char * clusterName);
+
   CORBA::Long submitSalomeJob(const char * fileToExecute ,
                              const Engines::FilesList& filesToExport ,
                              const Engines::FilesList& filesToImport ,
@@ -52,6 +55,9 @@ public:
   char* querySalomeJob( CORBA::Long jobId, const Engines::MachineParameters& params);
   void deleteSalomeJob( CORBA::Long jobId, const Engines::MachineParameters& params);
   void getResultSalomeJob( const char * directory, CORBA::Long jobId, const Engines::MachineParameters& params );
+  char* queryJob( CORBA::Long jobId, const Engines::MachineParameters& params);
+  void deleteJob( CORBA::Long jobId, const Engines::MachineParameters& params);
+  void getResultsJob( const char * directory, CORBA::Long jobId, const Engines::MachineParameters& params );
 
   CORBA::Boolean testBatch(const Engines::MachineParameters& params);
 
diff --git a/src/Launcher/SALOME_Launcher_Handler.cxx b/src/Launcher/SALOME_Launcher_Handler.cxx
new file mode 100755 (executable)
index 0000000..31b4e7c
--- /dev/null
@@ -0,0 +1,167 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl)
+//  File   : SALOME_Laucher_Handler.cxx
+//  Author : Bernard Secher
+//  Module : SALOME
+//  $Header$
+//
+#include "SALOME_Launcher_Handler.hxx"
+#include <iostream>
+#include <map>
+
+using namespace std;
+
+#ifdef _DEBUG_
+static int MYDEBUG = 1;
+#else
+static int MYDEBUG = 0;
+#endif
+
+//=============================================================================
+/*!
+ *  Constructor
+ *  \param listOfResources: map of ParserResourcesType to fill when parsing
+ */ 
+//=============================================================================
+
+SALOME_Launcher_Handler::SALOME_Launcher_Handler(ParserLauncherType& launch):
+    _launch(launch)
+{
+  //XML tags initialisation
+  test_machine_list = "machine-list";
+  test_main = "main";
+
+  test_machine = "machine";
+  test_env_file = "env-file";
+  test_work_directory = "work-directory";
+  test_ref_directory = "ref-directory";
+  test_nb_processes = "nb-processes";
+  test_input_file = "input-file";
+  test_output_file = "output-file";
+  test_command = "command";
+
+}
+
+//=============================================================================
+/*!
+ *  Destructor
+ */ 
+//=============================================================================
+
+SALOME_Launcher_Handler::~SALOME_Launcher_Handler()
+{
+  //  cout << "SALOME_Launcher_Handler destruction") << endl;
+}
+
+//=============================================================================
+/*!
+ *  Retrieves DS after the file parse.
+ */ 
+//=============================================================================
+
+const ParserLauncherType&
+SALOME_Launcher_Handler::GetLauncherAfterParsing() const
+{
+  return _launch;
+}
+
+//=============================================================================
+/*!
+ *  Processes XML document and fills the list of resources
+ */ 
+//=============================================================================
+
+void SALOME_Launcher_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
+{
+//   if (MYDEBUG) cout << "Begin parse document" << endl;
+
+  // Empty private elements
+  _launch.Clear();
+
+  // Get the document root node
+  xmlNodePtr aCurNode = xmlDocGetRootElement(theDoc);
+
+  aCurNode = aCurNode->xmlChildrenNode;
+  
+  // Processing the document nodes
+  while(aCurNode != NULL){
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_machine_list) ){
+      xmlNodePtr aCurNode2 = aCurNode->xmlChildrenNode;
+      while(aCurNode2 != NULL){
+       if ( !xmlStrcmp(aCurNode2->name,(const xmlChar*)test_machine) ){
+         _machp.Clear();
+         xmlChar* name = xmlNodeGetContent(aCurNode2);
+         string clusterName = (const char*)name;
+         xmlFree(name);
+       
+         if (xmlHasProp(aCurNode2, (const xmlChar*)test_env_file)){
+           xmlChar* envfile = xmlGetProp(aCurNode2, (const xmlChar*)test_env_file);
+           _machp.EnvFile = (const char*)envfile;
+           xmlFree(envfile);
+         }
+
+         if (xmlHasProp(aCurNode2, (const xmlChar*)test_work_directory)){
+           xmlChar* workdirectory = xmlGetProp(aCurNode2, (const xmlChar*)test_work_directory);
+           _machp.WorkDirectory = (const char*)workdirectory;
+           xmlFree(workdirectory);
+         }
+         _launch.MachinesList[clusterName]=_machp ;
+       }
+       aCurNode2 = aCurNode2->next;
+      }
+    }
+
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_ref_directory) ){
+      xmlChar* refdirectory = xmlNodeGetContent(aCurNode);
+      _launch.RefDirectory = (const char*)refdirectory;
+      xmlFree(refdirectory);
+    }
+         
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_nb_processes) ){
+      xmlChar* nbofprocesses = xmlNodeGetContent(aCurNode);
+      _launch.NbOfProcesses = atoi((const char*)nbofprocesses);
+      xmlFree(nbofprocesses);
+    }
+         
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_input_file) ){
+      xmlChar* inputfile = xmlNodeGetContent(aCurNode);
+      _launch.InputFile.push_back((const char*)inputfile);
+      xmlFree(inputfile);
+    }
+         
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_output_file) ){
+      xmlChar* outputfile = xmlNodeGetContent(aCurNode);
+      _launch.OutputFile.push_back((const char*)outputfile);
+      xmlFree(outputfile);
+    }
+         
+    if ( !xmlStrcmp(aCurNode->name,(const xmlChar*)test_command) ){
+      xmlChar* command = xmlNodeGetContent(aCurNode);
+      _launch.Command = (const char*)command;
+      xmlFree(command);
+    }
+         
+    aCurNode = aCurNode->next;
+  }
+
+}
diff --git a/src/Launcher/SALOME_Launcher_Handler.hxx b/src/Launcher/SALOME_Launcher_Handler.hxx
new file mode 100755 (executable)
index 0000000..0e14468
--- /dev/null
@@ -0,0 +1,68 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl)
+//  File   : SALOME_Launcher_Handler.hxx
+//  Author : Bernard SECHER
+//  Module : SALOME
+//$Header$
+//
+#ifndef SALOME_LAUNCHER_HANDLER
+#define SALOME_LAUNCHER_HANDLER
+
+#include "SALOME_Launcher_Parser.hxx"
+
+#include <string>
+#include <vector>
+
+#include <libxml/parser.h>
+
+class SALOME_Launcher_Handler
+{
+  
+public :
+  SALOME_Launcher_Handler(ParserLauncherType& launch);
+
+  virtual ~SALOME_Launcher_Handler();
+
+  const ParserLauncherType& GetLauncherAfterParsing() const;
+
+  void ProcessXmlDocument(xmlDocPtr theDoc);
+  
+private :
+  ParserLauncherType& _launch;
+  MachineParameters _machp;
+
+  const char *test_machine_list;
+  const char *test_main;
+
+  const char *test_machine;
+  const char *test_env_file;
+  const char *test_work_directory;
+  const char *test_ref_directory;
+  const char *test_nb_processes;
+  const char *test_input_file;
+  const char *test_output_file;
+  const char *test_command;
+
+};
+
+#endif // SALOME_LAUNCHER_HANDLER
diff --git a/src/Launcher/SALOME_Launcher_Parser.cxx b/src/Launcher/SALOME_Launcher_Parser.cxx
new file mode 100644 (file)
index 0000000..0636deb
--- /dev/null
@@ -0,0 +1,79 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+#include "SALOME_Launcher_Parser.hxx"
+#include <iostream>
+#include <sstream>
+
+#define NULL_VALUE 0
+
+using namespace std;
+
+void MachineParameters::Clear()
+{
+  EnvFile = "";
+  WorkDirectory = "";
+}
+
+void MachineParameters::Print() const
+{
+  ostringstream oss;
+  oss << " EnvFile: " <<  EnvFile 
+      << " WorkDirectory: " <<  WorkDirectory << endl;
+
+  cout << oss.str();
+}
+
+void ParserLauncherType::Print() const
+{
+  ostringstream oss;
+  oss << endl <<
+    "RefDirectory: " << RefDirectory << endl << 
+    "NbOfProcesses: " << NbOfProcesses << endl <<
+    "InputFile: ";
+  for(int i=0; i <InputFile.size();i++)
+    oss << InputFile[i] << " ";
+  oss << endl << "OutputFile: ";
+  for(int i=0; i <OutputFile.size();i++)
+    oss << OutputFile[i] << " ";
+  oss << endl <<
+    "Command: " << Command << endl <<
+    "Machines: " << endl;
+
+  cout << oss.str();
+
+  std::map < string, MachineParameters >::const_iterator it;
+  for(it=MachinesList.begin();it!=MachinesList.end();it++){
+    cout << "  " << it->first;
+    it->second.Print();
+  }
+
+}
+
+void ParserLauncherType::Clear()
+{
+  MachinesList.clear();
+  RefDirectory = "";
+  NbOfProcesses = 1;
+  InputFile.clear();
+  OutputFile.clear();
+  Command = "";
+}
diff --git a/src/Launcher/SALOME_Launcher_Parser.hxx b/src/Launcher/SALOME_Launcher_Parser.hxx
new file mode 100755 (executable)
index 0000000..4cecce9
--- /dev/null
@@ -0,0 +1,57 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  SALOME ResourcesCatalog : implementation of catalog resources parsing (SALOME_ModuleCatalog.idl)
+//  File   : SALOME_Launcher_Parser.hxx
+//  Author : Bernard Secher
+//  Module : SALOME
+//$Header$
+//
+#ifndef SALOME_LAUNCHER_PARSER
+#define SALOME_LAUNCHER_PARSER
+
+#include <string>
+#include <vector>
+#include <map>
+#include <iostream>
+
+struct MachineParameters
+  {
+    std::string EnvFile;
+    std::string WorkDirectory;
+    void Print() const;
+    void Clear();
+  };
+
+struct ParserLauncherType
+  {
+    std::map<std::string,MachineParameters> MachinesList;
+    std::string RefDirectory;
+    long NbOfProcesses;
+    std::vector<std::string> InputFile;
+    std::vector<std::string> OutputFile;
+    std::string Command;
+
+    void Print() const;
+    void Clear();
+  };
+
+#endif //SALOME_LAUNCHER_PARSER
index d01de24a86de34011c846fb636dfe2fd93cbcfb2..c24e369f92c87bbc5a7d1b418221d1decd7dca73 100644 (file)
@@ -109,7 +109,6 @@ Test_LifeCycleCORBA_LDADD    = \
        ../Registry/libRegistry.la \
        ../Notification/libSalomeNotification.la \
        ../Container/libSalomeContainer.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
        $(COMMON_LIBS) \
        @CORBA_LIBS@
 
@@ -125,8 +124,6 @@ TestContainerManager_LDADD    = \
        ../Registry/libRegistry.la \
        ../Notification/libSalomeNotification.la \
        ../Container/libSalomeContainer.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
        $(COMMON_LIBS) \
        @CORBA_LIBS@
 
index 5db61876b3d3b500072bd481c85246f386e553df..c54e9860332d11d77d43dd925d0d0525a7ac170c 100644 (file)
@@ -74,7 +74,6 @@ COMMON_LIBS =\
        $(RPATH)/Utils/Test/libUtilsTest.la $(RPATH)/Utils/libOpUtil.la \
        $(RPATH)/SALOMELocalTrace/Test/libSALOMELocalTraceTest.la $(RPATH)/SALOMELocalTrace/libSALOMELocalTrace.la \
        $(RPATH)/SALOMETraceCollector/Test/libSALOMETraceCollectorTest.la \
-       $(RPATH)/HDFPersist/libSalomeHDFPersist.la \
        $(top_builddir)/idl/libSalomeIDLKernel.la
 
 #
index 1ed7461f478d08fdc0b359b800ad45bde6db19e5..7c694fc072469167aaebb84f45a82e5ceea54874 100644 (file)
@@ -49,13 +49,14 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 # The library will be installed in the same place.
 #
 
+BUILT_SOURCES = swig_wrap.cpp
+
 SWIG_FLAGS    = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../LifeCycleCORBA -I$(srcdir)/../Utils
 SWIG_SOURCES  = libSALOME_LifeCycleCORBA.i
 
-nodist_salomepython_PYTHON = libSALOME_LifeCycleCORBA.py
+salomepython_PYTHON = libSALOME_LifeCycleCORBA.py
 salomepyexec_LTLIBRARIES = _libSALOME_LifeCycleCORBA.la
-nodist__libSALOME_LifeCycleCORBA_la_SOURCES = swig_wrap.cpp
-_libSALOME_LifeCycleCORBA_la_SOURCES  = $(SWIG_SOURCES)
+_libSALOME_LifeCycleCORBA_la_SOURCES  = $(BUILT_SOURCES) $(SWIG_SOURCES)
 _libSALOME_LifeCycleCORBA_la_CPPFLAGS =\
        @PYTHON_INCLUDES@ \
        -I$(srcdir) \
@@ -76,7 +77,7 @@ _libSALOME_LifeCycleCORBA_la_LIBADD   = \
 swig_wrap.cpp : $(SWIG_SOURCES)
        $(SWIG) $(SWIG_FLAGS) -o $@ $<
 
-CLEANFILES = swig_wrap.cpp libSALOME_LifeCycleCORBA.py
+CLEANFILES = swig_wrap.cpp
 
 
 #
index 4791f4247a12cdafecba504b5abdfc009c0fa827..d2d5fe26866fac3e40e762b5bf3724032d206e1f 100644 (file)
@@ -23,6 +23,8 @@
 //
 %module libSALOME_LifeCycleCORBA
 
+%feature("autodoc", "1");
+
 %include <std_except.i>
 
 
 #include "SALOME_NamingService.hxx"
 #include "ServiceUnreachable.hxx"
 #include "Utils_SALOME_Exception.hxx"
+#if PY_VERSION_HEX < 0x02050000 && !defined(PY_SSIZE_T_MIN)
+typedef int Py_ssize_t;
+#define PY_SSIZE_T_MAX INT_MAX
+#define PY_SSIZE_T_MIN INT_MIN
+#endif
 
   using namespace std;
 
@@ -116,10 +123,13 @@ struct omniORBpyAPI {
   $result = PyString_FromString($1.c_str());
 }
 
-%typemap(typecheck) const Engines::MachineParameters &,
-                    Engines::MachineParameters const &
+%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) Engines::MachineParameters const &
+{
+  $1 = PyDict_Check($input)? 1 : 0;
+}
+%typemap(typecheck,precedence=SWIG_TYPECHECK_POINTER) const Engines::MachineParameters &
 {
-  $1 = PyDict_Check($input);
+  $1 = PyDict_Check($input)? 1 : 0;
 }
 
 %typemap(typecheck) std::string, 
index db56c6be81faefcbac5fdc46d03f883995166d71..5347e5c7b298d554190b6f0d503c308f4fb46bad 100644 (file)
@@ -47,8 +47,6 @@ SALOME_Logger_Server_LDADD   = libSalomeLoggerServer.la
 SALOME_Logger_Server_CPPFLAGS =\
        -I$(top_builddir)/salome_adm/unix \
        -I$(top_builddir)/idl \
-       -I$(srcdir)/../SALOMELocalTrace \
-       -I$(srcdir)/../Basics \
        @CORBA_CXXFLAGS@ @CORBA_INCLUDES@
 
 # Libraries targets
index dc13fec3fb740869fb83d7d461116595f961d0b5..a206328578990dac120877775a2a92badd600dbf 100644 (file)
@@ -28,8 +28,8 @@
 #define SALOME_Logger_Server_include
 
 #include <SALOMEconfig.h>
-
 #include <fstream>
+
 #ifdef WIN32
 #include <iosfwd>
 #endif
@@ -69,8 +69,10 @@ private:
         bool m_putIntoFile;
        //ofstream class specialized for disk file output
        std::ofstream m_outputFile; 
+
        //synchronisation object
        static omni_mutex myLock;
+
        CORBA::ORB_ptr _orb;
 };
 
index 524059906a7a6c1829fc6dd0ef8d9dfbdf304cdf..8cd5d902502d6b62a628a38c10f74fe5207ebb55 100644 (file)
 //  Module : SALOME
 //
 #include <iostream>
-#include <stdlib.h>
 #include "SALOME_Logger_Server.hxx"
 #include <SALOMEconfig.h>
 #include <sys/types.h>
+#include <stdlib.h>
+
 #ifndef WIN32
 # include <unistd.h>
 #else
index 902cd1ddb4bf85efd88f88569e80fdc3c0344ce0..ecdfba30c12d16c0d9a1acfeb12d13e0653edb85 100644 (file)
@@ -26,6 +26,7 @@
 #include <iostream.h>
 #include <dlfcn.h>
 #include <stdio.h>
+#include "Basics_Utils.hxx"
 #include "SALOME_Component_i.hxx"
 #include "MPIContainer_i.hxx"
 #include "SALOME_NamingService.hxx"
index 3faeb2350dc6de55e3d892368089ec4cdd5d26e1..2d202204b768bdee6d1cf41531aa01c2773fbbdb 100644 (file)
@@ -100,6 +100,10 @@ DIST_SUBDIRS = \
 # check_cppunit for example with CPPUNIT_IS_OK.
 #
 
+if WITHONLYLAUNCHER
+  SUBDIRS = Batch Batch_SWIG ResourcesManager Launcher
+else
+
 SUBDIRS = $(SUBDIR_BASE)
 
 if WITH_BATCH
@@ -110,9 +114,9 @@ if CORBA_GEN
   SUBDIRS += $(SUBDIR_CORBA)
 endif
 
-#if MPI_IS_OK
-#  SUBDIRS += $(SUBDIR_MPI)
-#endif
+if MPI_IS_OK
+  SUBDIRS += $(SUBDIR_MPI)
+endif
 
 if CPPUNIT_IS_OK
 if CORBA_GEN
@@ -127,7 +131,8 @@ else
 endif
 endif
 if WITH_PACO_PARALLEL
-SUBDIRS += $(SUBDIR_PARALLEL)
+  SUBDIRS += $(SUBDIR_PARALLEL)
 endif
 
+endif
 EXTRA_DIST = win32pm
index 79424535d46c14d1bfdd7593b27cc2ce38191ea0..fba68af7b304903e98bbe906fda63cf81d0c6f24 100644 (file)
@@ -488,13 +488,13 @@ void SALOME_ModuleCatalog_AcomponentImpl::duplicate
   // duplicate service by default
   S_out.Servicebydefault = S_in.Servicebydefault;
 
-  unsigned int _length, ind2;
+  unsigned int _length;
 
   // duplicate in Parameters
   _length = S_in.ServiceinParameter.length();
   S_out.ServiceinParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_out.ServiceinParameter[ind2],
              S_in.ServiceinParameter[ind2]);
   
@@ -502,7 +502,7 @@ void SALOME_ModuleCatalog_AcomponentImpl::duplicate
   _length = S_in.ServiceoutParameter.length();
   S_out.ServiceoutParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_out.ServiceoutParameter[ind2],
              S_in.ServiceoutParameter[ind2]);
   
@@ -510,7 +510,7 @@ void SALOME_ModuleCatalog_AcomponentImpl::duplicate
   _length = S_in.ServiceinDataStreamParameter.length();
   S_out.ServiceinDataStreamParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_out.ServiceinDataStreamParameter[ind2],
              S_in.ServiceinDataStreamParameter[ind2]);
   
@@ -519,7 +519,7 @@ void SALOME_ModuleCatalog_AcomponentImpl::duplicate
   if(MYDEBUG) SCRUTE(_length);
   S_out.ServiceoutDataStreamParameter.length(_length);
   
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_out.ServiceoutDataStreamParameter[ind2],
              S_in.ServiceoutDataStreamParameter[ind2]);
 }
index e1d3a5ae350112bb7e2e886f93bdfffb9bd90188..895b05cd9a19dfbaafd207d6acf646b75d5b3431 100644 (file)
@@ -66,24 +66,24 @@ int main(int argc,char **argv)
    SALOME_ModuleCatalog::ListOfComponents_var list_composants 
      = Catalogue->GetComponentList();
 
-   unsigned int ind;
+
    // Typed component list
    MESSAGE("Get Typed Component list (GEOM Type)");
    SALOME_ModuleCatalog::ListOfComponents_var list_typed_composants 
      = Catalogue->GetTypedComponentList(SALOME_ModuleCatalog::GEOM);
-   for (ind = 0; ind < list_typed_composants->length();ind++)
+   for (unsigned int ind = 0; ind < list_typed_composants->length();ind++)
      MESSAGE("Component GEOM list : " << list_typed_composants[ind]);      
 
    MESSAGE("Get Typed Component list (SUPERV Type)");
    list_typed_composants 
      = Catalogue->GetTypedComponentList(SALOME_ModuleCatalog::SUPERV);
-   for (ind = 0; ind < list_typed_composants->length();ind++)
+   for (unsigned int ind = 0; ind < list_typed_composants->length();ind++)
       MESSAGE("Component SUPERV list : " << list_typed_composants[ind]);
 
    // Get list of couple (component name, component icone)
    SALOME_ModuleCatalog::ListOfIAPP_Affich_var list_composants_icone 
      = Catalogue->GetComponentIconeList();
-   for (ind = 0; ind < list_composants_icone->length();ind++)
+   for (unsigned int ind = 0; ind < list_composants_icone->length();ind++)
      {
        MESSAGE("Component name: " << list_composants_icone[ind].modulename);
        MESSAGE("Component icone: " << list_composants_icone[ind].moduleicone);
index 272657738e7604d076cc24541253ceaf154c5bb1..7298101b4c0824f83035ecbfd90fa4a9cfdd099a 100644 (file)
@@ -236,10 +236,10 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                         _typeList.push_back(aType);
                       }
                     else
-                      MESSAGE ( "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  );
+                      std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  << std::endl;
                   }
                 else
-                  MESSAGE ( "Warning: this type (" << aType.name << "," << aType.kind << ") has incorrect kind, it will be ignored." );
+                  std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") has incorrect kind, it will be ignored." << std::endl;
               }
             else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"sequence" )) 
               {
@@ -266,11 +266,11 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                         _typeList.push_back(aType);
                       }
                     else
-                      MESSAGE ( "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  );
+                      std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  << std::endl;
                   }
                 else
                   {
-                    MESSAGE ( "Warning: this sequence type (" << aType.name << "," << aType.content << ") has unknown content type, it will be ignored." );
+                    std::cerr << "Warning: this sequence type (" << aType.name << "," << aType.content << ") has unknown content type, it will be ignored." << std::endl;
                   }
               }
             else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"objref" )) 
@@ -308,7 +308,7 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                               }
                             else
                               {
-                                MESSAGE ( "Warning: this objref type (" << aType.name << ") has unknown base type (" << base << "), it will be ignored." );
+                                std::cerr << "Warning: this objref type (" << aType.name << ") has unknown base type (" << base << "), it will be ignored." << std::endl;
                                 error=1;
                                 break;
                               }
@@ -325,7 +325,7 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                         _typeList.push_back(aType);
                       }
                     else
-                      MESSAGE ( "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  );
+                      std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  << std::endl;
                   }
               }
             else if ( !xmlStrcmp(aTypeNode->name, (const xmlChar*)"struct" )) 
@@ -370,7 +370,7 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                           }
                         else
                           {
-                            MESSAGE ( "Warning: this struct type (" << aType.name << ") has unknown member type (" << member.first << "," << member.second << "), it will be ignored." );
+                            std::cerr << "Warning: this struct type (" << aType.name << ") has unknown member type (" << member.first << "," << member.second << "), it will be ignored." << std::endl;
                             error=1;
                             break;
                           }
@@ -386,7 +386,7 @@ void SALOME_ModuleCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                         _typeList.push_back(aType);
                       }
                     else
-                      MESSAGE ( "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  );
+                      std::cerr << "Warning: this type (" << aType.name << "," << aType.kind << ") already exists, it will be ignored."  << std::endl;
                   }
               } // end of struct
             aTypeNode = aTypeNode->next;
index 29c48ed5f2fc0e9fa38ed62c10217bae353f0297..43c4b6d8c078b68569d6d49a541bfb69bab7d2c2 100644 (file)
@@ -161,7 +161,7 @@ int main(int argc,char **argv)
       timer.ShowAbsolute();
 #endif
       orb->run();
-      MESSAGE ( "server returned from orb->run()" );
+      std::cerr << "server returned from orb->run()" << std::endl;
       orb->destroy();
  
 //       mgr->deactivate(true,true);
index 185ec8bfdb7d58ab2843c6aaa1beae0454cc83a7..86563570585678e2eefe6fe48bdf79b73c6eeb3b 100644 (file)
@@ -291,13 +291,11 @@ SALOME_ModuleCatalogImpl::GetPathPrefix(const char* machinename) {
   char* _path = NULL;
   bool _find = false ;
 
-  unsigned int ind, ind1;
-
   // Parse all the path prefixes
   // looking for the wanted computer
-  for (ind = 0 ; ind < _personal_path_list.size() ; ind++)
+  for (unsigned int ind = 0 ; ind < _personal_path_list.size() ; ind++)
     {
-      for (ind1 = 0 ; ind1 < _personal_path_list[ind].listOfComputer.size() ; ind1++)    
+      for (unsigned int ind1 = 0 ; ind1 < _personal_path_list[ind].listOfComputer.size() ; ind1++)    
        {
          if (strcmp(machinename, _personal_path_list[ind].listOfComputer[ind1].c_str()) == 0)
            {
@@ -313,9 +311,9 @@ SALOME_ModuleCatalogImpl::GetPathPrefix(const char* machinename) {
 
   if (!_find)
     {
-    for (ind = 0 ; ind < _general_path_list.size() ; ind++)
+    for (unsigned int ind = 0 ; ind < _general_path_list.size() ; ind++)
       {
-        for (ind1 = 0 ; ind1 < _general_path_list[ind].listOfComputer.size() ; ind1++)    
+        for (unsigned int ind1 = 0 ; ind1 < _general_path_list[ind].listOfComputer.size() ; ind1++)    
          {
            if (strcmp(machinename, _general_path_list[ind].listOfComputer[ind1].c_str()) == 0)
              {
@@ -349,10 +347,8 @@ SALOME_ModuleCatalogImpl::GetComponentList()
 
   _list_components->length(_personal_module_list.size());
 
-  unsigned int ind;
-
   // All the components defined in the personal catalog are taken
-  for(ind=0; ind < _personal_module_list.size();ind++){
+  for(unsigned int ind=0; ind < _personal_module_list.size();ind++){
     _list_components[ind]=(_personal_module_list[ind].name).c_str();
     if(MYDEBUG) SCRUTE(_list_components[ind]) ;
   }
@@ -362,7 +358,7 @@ SALOME_ModuleCatalogImpl::GetComponentList()
   
   // The components in the general catalog are taken only if they're
   // not defined in the personal catalog
-  for(ind=0; ind < _general_module_list.size();ind++){
+  for(unsigned int ind=0; ind < _general_module_list.size();ind++){
     _find = false;
     for(unsigned int ind1=0; ind1 < _personal_module_list.size();ind1++){
       // searching if the component is already defined in 
@@ -407,10 +403,8 @@ SALOME_ModuleCatalogImpl::GetComponentIconeList()
 
   _list_components_icone->length(_personal_module_list.size());
 
-  unsigned int ind;
-
   // All the components defined in the personal catalog are taken
-  for(ind=0; ind < _personal_module_list.size();ind++){
+  for(unsigned int ind=0; ind < _personal_module_list.size();ind++){
     _list_components_icone[ind].modulename=(_personal_module_list[ind].name).c_str();
     _list_components_icone[ind].moduleusername=(_personal_module_list[ind].username).c_str();
     _list_components_icone[ind].moduleicone=(_personal_module_list[ind].icon).c_str();
@@ -425,7 +419,7 @@ SALOME_ModuleCatalogImpl::GetComponentIconeList()
   
   // The components in the general catalog are taken only if they're
   // not defined in the personal catalog
-  for(ind=0; ind < _general_module_list.size();ind++){
+  for(unsigned int ind=0; ind < _general_module_list.size();ind++){
     _find = false;
     for(unsigned int ind1=0; ind1 < _personal_module_list.size();ind1++){
       // searching if the component is aleready defined in 
@@ -499,10 +493,8 @@ SALOME_ModuleCatalogImpl::GetTypedComponentList(SALOME_ModuleCatalog::ComponentT
     break;
   }
 
-  unsigned int ind;
-
   // All the components in the personal catalog are taken
-  for (ind=0; ind < _personal_module_list.size();ind++)
+  for (unsigned int ind=0; ind < _personal_module_list.size();ind++)
     {
       if  (_personal_module_list[ind].type == _temp_component_type)
        {
@@ -518,7 +510,7 @@ SALOME_ModuleCatalogImpl::GetTypedComponentList(SALOME_ModuleCatalog::ComponentT
   
   // The components in the general catalog are taken only if they're
   // not defined in the personal catalog
-  for (ind=0; ind < _general_module_list.size();ind++)
+  for (unsigned int ind=0; ind < _general_module_list.size();ind++)
     {
       _find = false;
 
@@ -635,10 +627,8 @@ SALOME_ModuleCatalogImpl::findComponent(const string & name)
 {
   ParserComponent * C_parser = NULL;
 
-  unsigned int ind;
-
   if (!C_parser)
-    for (ind=0; ind < _personal_module_list.size();ind++)
+    for (unsigned int ind=0; ind < _personal_module_list.size();ind++)
       {
        if (name.compare(_personal_module_list[ind].name) == 0)
          {
@@ -650,7 +640,7 @@ SALOME_ModuleCatalogImpl::findComponent(const string & name)
       }
 
   if (!C_parser)
-    for (ind=0; ind < _general_module_list.size();ind++)
+    for (unsigned int ind=0; ind < _general_module_list.size();ind++)
       {
        if (name.compare(_general_module_list[ind].name) == 0)
          {
@@ -807,13 +797,13 @@ void SALOME_ModuleCatalogImpl::duplicate
 
   S_corba.TypeOfNode = S_parser.typeOfNode;
 
-  unsigned int _length, ind2;
+  unsigned int _length;
 
   // duplicate in Parameters
   _length = S_parser.inParameters.size();
   S_corba.ServiceinParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_corba.ServiceinParameter[ind2],
              S_parser.inParameters[ind2]);
   
@@ -821,7 +811,7 @@ void SALOME_ModuleCatalogImpl::duplicate
   _length = S_parser.outParameters.size();
   S_corba.ServiceoutParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_corba.ServiceoutParameter[ind2],
              S_parser.outParameters[ind2]);
   
@@ -829,7 +819,7 @@ void SALOME_ModuleCatalogImpl::duplicate
   _length = S_parser.inDataStreamParameters.size();
   S_corba.ServiceinDataStreamParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_corba.ServiceinDataStreamParameter[ind2],
              S_parser.inDataStreamParameters[ind2]);
   
@@ -838,7 +828,7 @@ void SALOME_ModuleCatalogImpl::duplicate
   //  if(MYDEBUG) SCRUTE(_length);
   S_corba.ServiceoutDataStreamParameter.length(_length);
 
-  for (ind2 = 0; ind2 < _length ; ind2 ++)
+  for (unsigned int ind2 = 0; ind2 < _length ; ind2 ++)
     duplicate(S_corba.ServiceoutDataStreamParameter[ind2],
              S_parser.outDataStreamParameters[ind2]);
 }
@@ -922,21 +912,19 @@ SALOME_ModuleCatalogImpl::_verify_path_prefix(ParserPathPrefixes & pathList)
   bool _return_value = true;
   vector<string> _machine_list;
 
-  unsigned int ind, ind1;
-
   // Fill a list of all computers indicated in the path list
-  for (ind = 0; ind < pathList.size(); ind++)
+  for (unsigned int ind = 0; ind < pathList.size(); ind++)
     { 
-      for (ind1 = 0 ; ind1 < pathList[ind].listOfComputer.size(); ind1++)
+      for (unsigned int ind1 = 0 ; ind1 < pathList[ind].listOfComputer.size(); ind1++)
        {
          _machine_list.push_back(pathList[ind].listOfComputer[ind1]);
        }
     }
 
   // Parse if a computer name is twice in the list of computers
-  for (ind = 0; ind < _machine_list.size(); ind++)
+  for (unsigned int ind = 0; ind < _machine_list.size(); ind++)
     {
-     for (ind1 = ind+1 ; ind1 < _machine_list.size(); ind1++)
+     for (unsigned int ind1 = ind+1 ; ind1 < _machine_list.size(); ind1++)
        {
         if(_machine_list[ind].compare(_machine_list[ind1]) == 0)
           {
index bbbd5f64e7c0e88f1c19e577be82e92c5adb0e42..e22678cd53dbde83da46c20b44d87004b73f1d8b 100644 (file)
@@ -80,6 +80,7 @@ class Tree:
         self.parent = None
         self.childs = []
         self.comments = []
+        self.attrs={}
         
     def addChild(self, tree):
         if tree is not None: 
@@ -114,7 +115,10 @@ class Tree:
         d = depth
         if self.name != '':
             s = string.ljust('', 4*depth)
-            s += '<' + self.name + '>'
+            s += '<' + self.name 
+            for k,v in self.attrs.items():
+              s += ' ' + k + '="' + v + '"'
+            s += '>'
             if self.content != '':
                 s +=  self.content
             else:
@@ -213,6 +217,9 @@ class Tree:
                 L_merge.addChild(i_ext)
                 
         self.replaceChild(L_merge)
+
+    def setAttrib(self, name,value):
+      self.attrs[name]=value
             
 
     
@@ -476,6 +483,7 @@ class Catalog(ContentHandler, Tree):
             parser.parse(filename)
         else:
             t = self.addNamedChild('begin-catalog')
+            t.addNamedChild('type-list')
             t.addNamedChild('component-list')
 
         n = self.getChild('begin-catalog')
@@ -484,6 +492,9 @@ class Catalog(ContentHandler, Tree):
             return
         if n.getChild('path-prefix-list') is None:
             n.insertFirstNamedChild('path-prefix-list')
+        if n.getChild('type-list') is None:
+            p=n.childs.index(n.getChild('path-prefix-list'))
+            n.childs.insert(p+1,Tree('type-list'))
         if n.getChild('component-list') is None:
             n.addNamedChild('component-list')
             
@@ -516,6 +527,16 @@ class Catalog(ContentHandler, Tree):
             e = p.addChild(parameter(mode='in'))
         elif name == 'outParameter':
             e = p.addChild(parameter(mode='out'))
+        elif name == 'sequence':
+            e = p.addChild(SeqType(attrs["name"],attrs["content"]))
+        elif name == 'objref':
+            e = p.addChild(ObjType(attrs["name"]))
+        elif name == 'struct':
+            e = p.addChild(StructType(attrs["name"]))
+        elif name == 'type':
+            e = p.addChild(Type(attrs["name"],attrs["kind"]))
+        elif name == 'member':
+            e = p.addChild(Member(attrs["name"],attrs["type"]))
         else:
             e = p.addNamedChild(name)
         self.list.append(e)
@@ -555,8 +576,66 @@ class Catalog(ContentHandler, Tree):
             print '   replace component', i_ext.getChild('component-name').content
             i_int.merge(i_ext)
             
-
-            
+    def mergeType(self, type):
+      L_int = self.getNode('type-list')
+      if L_int is None:
+        error("Catalog.mergeType : 'type-list' is not found")
+        return
+      for t in L_int.childs:
+        if t.attrs["name"] == type.attrs["name"]:
+          t.merge(type)
+          return
+
+      L_int.addChild(type)
+
+class Member(Tree):
+  def __init__(self, name,type):
+    Tree.__init__(self, 'member')
+    self.setAttrib("name",name)
+    self.setAttrib("type",type)
+
+class Type(Tree):
+  def __init__(self, name,kind):
+    Tree.__init__(self, 'type')
+    self.setAttrib("name",name)
+    self.setAttrib("kind",kind)
+
+  def merge(self,t):
+    self.setAttrib("kind",t.attrs["kind"])
+
+class SeqType(Tree):
+  def __init__(self, name,content):
+    Tree.__init__(self, 'sequence')
+    self.setAttrib("name",name)
+    self.setAttrib("content",content)
+
+  def merge(self,t):
+    self.setAttrib("content",t.attrs["content"])
+
+class StructType(Tree):
+  def __init__(self, name):
+    Tree.__init__(self, 'struct')
+    self.setAttrib("name",name)
+
+  def merge(self,t):
+    #remove childs and replace by t childs
+    self.childs=[]
+    for c in t.childs:
+      self.childs.append(c)
+
+class ObjType(Tree):
+  def __init__(self, name):
+    Tree.__init__(self, 'objref')
+    self.setAttrib("name",name)
+
+  def merge(self,t):
+    RepoId=t.attrs.get("id")
+    if RepoId:
+      self.setAttrib("id",RepoId)
+    #remove childs and replace by t childs
+    self.childs=[]
+    for c in t.childs:
+      self.childs.append(c)
 
 # IDL file reader
 
@@ -589,47 +668,61 @@ class ModuleCatalogVisitor (idlvisitor.AstVisitor):
     def __init__(self, catalog):
         self.catalog = catalog
         self.EngineType = 0
+        self.currentScope=None
         
     def visitAST(self, node):
         for n in node.declarations():
-            n.accept(self)
+            if n.mainFile():
+              n.accept(self)
             
     def visitModule(self, node):
+        self.currentScope=node
         for n in node.definitions():
             n.accept(self)
                 
     def visitInterface(self, node):
-            
         if node.mainFile():
 
             self.EngineType = 0
             
             for i in node.inherits():
                 s = i.scopedName();
-                if ((s[0] == "Engines") & (s[1] == "Component")):
+                if s[0] == "Engines":
+                  if s[1] == "Component":
                     self.EngineType = 1; break
+                  if s[1] == "Superv_Component":
+                    self.EngineType = 2; break
                 
-            Comp = Component(node.identifier())
+            if self.EngineType:
+              #This interface is a SALOME component
+              Comp = Component(node.identifier())
             
-            self.currentInterface = Comp.createInterface(node.identifier())
+              self.currentInterface = Comp.createInterface(node.identifier())
         
-            for c in node.callables():
+              for c in node.callables():
                 if isinstance(c, idlast.Operation):
                     c.accept(self)
 
-            for c in node.declarations():
+              for c in node.declarations():
                 if isinstance(c, idlast.Struct):
                     c.accept(self)
                 
-            for i in node.comments():
+              for i in node.comments():
                 self.currentInterface.comments.append(str(i))
 
-            self.currentInterface.processDataStreams()
+              if self.EngineType == 2:
+                self.currentInterface.processDataStreams()
             
-            if (self.EngineType):    
-                global nb_components
-                nb_components = nb_components + 1
-                self.catalog.mergeComponent(Comp)
+              global nb_components
+              nb_components = nb_components + 1
+              self.catalog.mergeComponent(Comp)
+
+            else:
+              #This interface is not a component : use it as a DataType
+              t=ObjType("/".join(node.scopedName()))
+              for i in node.inherits():
+                t.addNamedChild("base","/".join(i.scopedName()))
+              self.catalog.mergeType(t)
 
             self.EngineType = 0
             
@@ -652,7 +745,9 @@ class ModuleCatalogVisitor (idlvisitor.AstVisitor):
         
 
     def visitDeclaredType(self, type):
-        self.currentType = type.name()
+        name=type.name()
+        scoped_name="/".join(type.scopedName())
+        self.currentType = scoped_name
             
     def visitBaseType(self, type):
         self.currentType = ttsMap[type.kind()]
@@ -669,6 +764,58 @@ class ModuleCatalogVisitor (idlvisitor.AstVisitor):
             self.currentService.createOutParameter \
                      (node.identifier(), self.currentType)
         
+    def visitSequenceType(self,type):
+      type.seqType().accept(self)
+      if type.bound() == 0:
+          self.contentType=self.currentType
+          self.currentType = "sequence"
+      else:
+          self.currentType = None
+
+    def visitTypedef(self, node):
+      if node.constrType():
+            node.aliasType().decl().accept(self)
+
+      node.aliasType().accept(self)
+      type  = self.currentType
+      if not type:
+        return
+      decll = []
+      for d in node.declarators():
+            d.accept(self)
+            if self.__result_declarator:
+              decll.append(self.__result_declarator)
+      if type == "sequence":
+        #it's a sequence type
+        for name in decll:
+          scoped_name="/".join(self.currentScope.scopedName()+[name])
+          self.catalog.mergeType(SeqType(scoped_name,self.contentType))
+      #else:
+        #it's an alias
+      #  for name in decll:
+      #    scoped_name="/".join(self.currentScope.scopedName()+[name])
+      #    self.catalog.mergeType(Type(scoped_name,type))
+
+    def visitStruct(self, node):
+      t=StructType("/".join(node.scopedName()))
+      for m in node.members():
+            if m.constrType():
+                m.memberType().decl().accept(self)
+
+            m.memberType().accept(self)
+            type = self.currentType
+            for d in m.declarators():
+                d.accept(self)
+                t.addChild(Member(self.__result_declarator,type))
+
+      self.catalog.mergeType(t)
+
+    def visitDeclarator(self, node):
+        if node.sizes():
+          self.__result_declarator =None
+        else:
+          self.__result_declarator =node.identifier()
+
 #--------------------------------------------------
 # parse idl and store xml file
 #--------------------------------------------------
index 34c4a62da6368d612e96e5d6a809f997addcddf3..1a06d38fcc8c5899010c5729bc3ab3414f03da1c 100644 (file)
@@ -1,3 +1,26 @@
+Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+
+Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+
+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.
+
+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
+______________________________________________________________________
+
+
 Outil de generation du catalogue de module
 a partir des fichiers idl corba.
 version 0.1 (12/4/2002)
index 788210d0f31a72080bfcc3d39c671e30c12df471..26c4ef2f13fd2ed51b5c5958968acc8a07f9e13f 100755 (executable)
@@ -25,7 +25,7 @@ ROOT_SRCDIR=@ROOT_SRCDIR@
 export ROOT_SRCDIR
 ROOT_BUILDDIR=@ROOT_BUILDDIR@
 export ROOT_BUILDDIR
-SRCDIR=${ROOT_SRCDIR}/SALOME/src/ModuleGenerator
+SRCDIR=${ROOT_SRCDIR}/src/ModuleGenerator
 export SRCDIR
 
 ${SRCDIR}/tests/test$1.sh
diff --git a/src/ModuleGenerator/tests/AddComponent.idl b/src/ModuleGenerator/tests/AddComponent.idl
new file mode 100644 (file)
index 0000000..1fc5923
--- /dev/null
@@ -0,0 +1,68 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  File   : AddComponent.idl
+//  Author : Jean Rahuel
+//
+#ifndef _ADDCOMPONENT_IDL
+#define _ADDCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+  interface Adder ;
+
+  interface AddComponent : Engines::Component {
+    double Add( in double x , in double y , out double z ) ;
+    double AddWithoutSleep( in double x , in double y , out double z ) ;
+    void Setx( in double x ) ;
+    void Sety( in double y ) ;
+    double Addxy() ;
+    double AddyTox( in double y ) ;
+    long Sigma( in long n ) ;
+    double LastResult() ;
+
+    Adder Addition() ;
+    boolean AdditionObjRef1( out Adder anAdder ) ;
+    void AdditionObjRef2( out boolean FuncValue , out Adder anAdder ) ;
+    boolean AdditionObjRefs( in AddComponent AddComponent1 ,
+                             in AddComponent Adder2 ,
+                             in AddComponent Adder3 ,
+                             out AddComponent RetAddComponent1 ,
+                             out AddComponent RetAdder2 ,
+                             out AddComponent RetAdder3 ) ;
+  };
+
+  interface Adder : Engines::Component {
+    double Add( in double x , in double y , out double z ) ;
+    double AddWithoutSleep( in double x , in double y , out double z ) ;
+    double AddAndCompare( in double x , in double y , in Adder anOtherAdder,
+                          out double z ) ;
+    void SetLastResult( in double z ) ;
+    void LastResult( out double z ) ;
+    Engines::Component LccAddComponent( in string aContainer ,
+                                        in string aComponentName ) ;
+  };
+
+} ;
+
+#endif
diff --git a/src/ModuleGenerator/tests/SubComponent.idl b/src/ModuleGenerator/tests/SubComponent.idl
new file mode 100644 (file)
index 0000000..772b3f1
--- /dev/null
@@ -0,0 +1,38 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  File   : SubComponent.idl
+//  Author : Jean Rahuel
+//
+#ifndef _SUBCOMPONENT_IDL
+#define _SUBCOMPONENT_IDL
+
+#include "SALOME_Component.idl"
+
+module SuperVisionTest {
+
+  interface SubComponent : Engines::Component {
+  void Sub( in double x , in double y , out double z ) ;
+  } ;
+};
+
+
+#endif
index 76a76493a7cedc442ec8e36ab1b9e691d3965efd..bc7cadfbcc2f6008d48d622f79ee71905707aca8 100755 (executable)
@@ -31,7 +31,8 @@ echo   "test1:
 
 \rm -f my_catalog.xml*
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
                -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+               ${SRCDIR}/tests/AddComponent.idl
 
index eae12adeccefb1c111598bf7c30418f14cb92388..8cad7c9b108d94d2b503195084385002d07737c0 100755 (executable)
@@ -23,7 +23,7 @@
 #  File   : test1b.sh
 #  Module : SALOME
 #
-echo   "test6:
+echo   "test1b:
 
         test derivation Engine::Component
         "
@@ -35,7 +35,8 @@ echo  "
 --> creation d'un nouveau catalogue avec un composant
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml \
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
+    -Wbcatalog=my_catalog.xml \
                ${SRCDIR}/tests/TrucComponent.idl
 
index 92ff0eaa0858875fcfbf623b7d2cf0cd1d333943..0d238ce48541470ac6d6a8d97d016adc16f9ff3a 100755 (executable)
@@ -36,25 +36,28 @@ echo  "
 --> creation d'un nouveau catalogue avec un composant
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
                -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+               ${SRCDIR}/tests/AddComponent.idl
 
 
 echo  "
 --> ajout d'un nouveau composant dans le catalogue
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
                -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/SubComponent.idl
+               ${SRCDIR}/tests/SubComponent.idl
 
 
 echo  "
 --> remplacement du premier composant dans le catalogue
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
                -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+               ${SRCDIR}/tests/AddComponent.idl
 
index dd6d35898d6f7905d7306eb7f61e23b0d6771b90..6f9371e84d4f537584fa7da862c375fe92b15f6e 100755 (executable)
@@ -36,14 +36,17 @@ echo  "
 --> creation d'un nouveau catalogue avec un composant
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
+    -Wbcatalog=my_catalog.xml \
+    ${SRCDIR}/tests/AddComponent.idl
+
 
 echo  "
 --> remplacement du composant dans le catalogue (meme idl)
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
+    -Wbcatalog=my_catalog.xml \
+    ${SRCDIR}/tests/AddComponent.idl
index 56b96e4f150b533cfe2f46527a60a1689be32e0a..9713d7cfd8ddb131e6b38d1cd799f27e03c57beb 100755 (executable)
@@ -35,9 +35,10 @@ echo  "
 --> creation d'un nouveau catalogue avec un composant
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml \
-               ${ROOT_SRCDIR}/idl/AddComponent.idl
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
+    -Wbcatalog=my_catalog.xml \
+    ${SRCDIR}/tests/AddComponent.idl
 
 
 mv my_catalog.xml C1
@@ -52,7 +53,8 @@ mv C1 my_catalog.xml
  --> remplacement du composant dans le catalogue (autre idl)
 "
 
-${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml \
-               ${SRCDIR}/tests/Truc2Component.idl
+sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+    -I${ROOT_SRCDIR}/idl \
+    -Wbcatalog=my_catalog.xml \
+    ${SRCDIR}/tests/Truc2Component.idl
 
index c7b31f70fc57e0f6fee355870b7ea0f11a2c67be..0ada246521748bd1e42464ea7f4720b99649499e 100755 (executable)
@@ -23,7 +23,7 @@
 #  File   : test5.sh
 #  Module : SALOME
 #
-echo   "test4:
+echo   "test5:
 
         creation d'un catalogue avec tous les idl de Salome 
        (au 29/3/2002)
@@ -36,6 +36,7 @@ do
        echo
        echo "            processing " `basename $i`
        echo
-       ${ROOT_BUILDDIR}/bin/runIDLparser \
-               -Wbcatalog=my_catalog.xml $i
+  sh ${ROOT_BUILDDIR}/bin/runIDLparser -p ${SRCDIR} \
+     -I${ROOT_SRCDIR}/idl \
+                -Wbcatalog=my_catalog.xml $i
 done
index 412553cdb11dde2d188a272f15854545bee22f9b..6f2c9835c2a91e5063466a15b59ae160665665ce 100644 (file)
@@ -34,18 +34,17 @@ include $(top_srcdir)/salome_adm/unix/make_common_starter.am
 # (cf. http://www.geocities.com/foetsch/python/swig_linux.htm)
 # see also LifeCycleCORBA_SWIG 
 #
+BUILT_SOURCES = swig_wrap.cpp
 
 SWIG_FLAGS    = @SWIG_FLAGS@ -I$(srcdir) -I$(srcdir)/../Notification
 SWIG_SOURCES  = NOTIFICATION.i
 
-nodist_salomepython_PYTHON = libNOTIFICATION.py
+salomepython_PYTHON = libNOTIFICATION.py
 salomepyexec_LTLIBRARIES = _libNOTIFICATION.la
-nodist__libNOTIFICATION_la_SOURCES  = swig_wrap.cpp
-_libNOTIFICATION_la_SOURCES  = $(SWIG_SOURCES) \
+_libNOTIFICATION_la_SOURCES  = $(BUILT_SOURCES) $(SWIG_SOURCES) \
        NOTIFICATION_Swig.cxx NOTIFICATION_Swig.hxx SALOME_NOTIFICATION_SWIG.hxx
 _libNOTIFICATION_la_CPPFLAGS =\
        @PYTHON_INCLUDES@ -DHAVE_CONFIG_H \
-       -I$(srcdir) \
        -I$(srcdir)/../Notification \
        -I$(srcdir)/../Basics \
        -I$(srcdir)/../SALOMELocalTrace \
@@ -54,9 +53,9 @@ _libNOTIFICATION_la_CPPFLAGS =\
 
 
 _libNOTIFICATION_la_LDFLAGS  = -module
-_libNOTIFICATION_la_LIBADD   = @PYTHON_LIBS@ ../Notification/libSalomeNotification.la
+_libNOTIFICATION_la_LIBADD   = ../Notification/libSalomeNotification.la
 
 swig_wrap.cpp : $(SWIG_SOURCES)
        $(SWIG) $(SWIG_FLAGS) -o $@ $<
 
-CLEANFILES = swig_wrap.cpp libNOTIFICATION.py
+CLEANFILES = swig_wrap.cpp
index 26f68f66510cd1fd6ed2f29c3bc90a76b3cd626c..eee6ffbc8e2bb2e1b50cc2fee067e97b3a9cbe8c 100644 (file)
@@ -26,6 +26,7 @@
 //
 %module libNOTIFICATION
 
+%feature("autodoc", "1");
 
 %{
 //#define __declspec(a)
index e9cccf9fe6698faf9f70f405475d2ebba9c46fc9..8e8cc6aee039c82c1e4b95072d231312e63245d2 100644 (file)
@@ -27,7 +27,7 @@
 #include "SALOME_ParallelComponent_i.hxx"
 #include "SALOME_ParallelContainer_i.hxx"
 
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 #include <stdio.h>
 #ifndef WIN32
 #include <dlfcn.h>
index 68d2f24145fd88ca846bb09ad8e27fc724c52878..61f5eda5c626218d2b63ede561af0d7be70458f4 100644 (file)
@@ -45,7 +45,7 @@
 #include "Utils_ORB_INIT.hxx"
 #include "Utils_SINGLETON.hxx"
 #include "SALOMETraceCollector.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 
 using namespace std;
 
index b5c522c6d2ed17e9ccb52ed6d9de5db19d76310c..7c8f6afc86d69d5ddea64e694a259c190055e312 100644 (file)
@@ -48,7 +48,7 @@
 #include "Utils_ORB_INIT.hxx"
 #include "Utils_SINGLETON.hxx"
 #include "SALOMETraceCollector.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 
 using namespace std;
 
index 2fc7ed8b4b51fc45bd1b761960a8a43fae2c21ab..be5ee2add53943c6a59abdf885131a84fef38fef 100644 (file)
@@ -46,7 +46,7 @@
 #include "Utils_ORB_INIT.hxx"
 #include "Utils_SINGLETON.hxx"
 #include "SALOMETraceCollector.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 
 #ifdef DEBUG_PARALLEL
 #include <signal.h>
index 390efb9e1955bfd1d757099837f41b2c88cf6d8a..49bb1899f5b482f2222edaa858fbcbe2f2e13ca1 100644 (file)
@@ -47,7 +47,7 @@
 #include "Utils_ORB_INIT.hxx"
 #include "Utils_SINGLETON.hxx"
 #include "SALOMETraceCollector.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 using namespace std;
 
 #ifdef DEBUG_PARALLEL
index 56995e0f355632744e89edfe4b7b79fb590f2bb2..52f5e70704c5459bf8dd69ee1945299fb587b894 100644 (file)
@@ -36,7 +36,7 @@
 #include "SALOME_FileRef_i.hxx"
 #include "SALOME_FileTransfer_i.hxx"
 #include "SALOME_NamingService.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 
 #include <string.h>
 #include <stdio.h>
index edde03e67169e2385508c884955b2dcd012a71df..f24d8355de6e7fd92fb5818138983e9fb727abe1 100755 (executable)
@@ -72,7 +72,11 @@ COMMON_LIBS =\
 # Libraries targets
 # ===============================================================
 #
-lib_LTLIBRARIES = libResourcesManager.la libSalomeResourcesManager.la
+if WITHONLYLAUNCHER
+  lib_LTLIBRARIES = libResourcesManager.la
+else
+  lib_LTLIBRARIES = libResourcesManager.la libSalomeResourcesManager.la
+endif
 libSalomeResourcesManager_la_SOURCES =\
        SALOME_ResourcesManager.cxx
 
@@ -97,6 +101,5 @@ libResourcesManager_la_CPPFLAGS =\
 
 libResourcesManager_la_LDFLAGS = -no-undefined -version-info=0:0:0
 libResourcesManager_la_LIBADD  =\
-       ../Basics/libSALOMEBasics.la \
-       ../SALOMELocalTrace/libSALOMELocalTrace.la \
+       ../Utils/libOpUtil.la \
        @LIBXML_LIBS@
index 8f2d2a5cb291a1723ecba50ab5a8f4207ecac205..5bcf6d8437d7fb61d098b20a525053cc85241400 100644 (file)
 #include <string.h>
 #include <map>
 #include <list>
-#include <algorithm>
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <libxml/parser.h>
 
-#ifndef WIN32
-# include <unistd.h>
-#endif
+#include <algorithm>
 
 #define MAX_SIZE_FOR_HOSTNAME 256;
 
@@ -67,12 +64,14 @@ ResourcesManager_cpp(const char *xmlFilePath) :
  */ 
 //=============================================================================
 
-ResourcesManager_cpp::ResourcesManager_cpp()
+ResourcesManager_cpp::ResourcesManager_cpp() throw(ResourcesException)
 {
 #if defined(_DEBUG_) || defined(_DEBUG)
   cerr << "ResourcesManager_cpp constructor" << endl;
 #endif
   _isAppliSalomeDefined = (getenv("APPLI") != 0);
+  if(!getenv("KERNEL_ROOT_DIR"))
+    throw ResourcesException("you must define KERNEL_ROOT_DIR environment variable!!");
 
   if (_isAppliSalomeDefined)
     {
@@ -125,9 +124,6 @@ std::vector<std::string>
 ResourcesManager_cpp::GetFittingResources(const machineParams& params,
                                      const std::vector<std::string>& componentList) throw(ResourcesException)
 {
-//#if defined(_DEBUG_) || defined(_DEBUG)
-//   cerr << "ResourcesManager_cpp::GetFittingResources" << endl;
-//#endif
   vector <std::string> vec;
 
   ParseXmlFile();
@@ -138,9 +134,6 @@ ResourcesManager_cpp::GetFittingResources(const machineParams& params,
 #endif
 
   if (hostname[0] != '\0'){
-//#if defined(_DEBUG_) || defined(_DEBUG)
-//    cerr << "ResourcesManager_cpp::GetFittingResources : hostname specified" << endl;
-//#endif
 
     if ( strcmp(hostname, "localhost") == 0 ||
         strcmp(hostname, Kernel_Utils::GetHostname().c_str()) == 0 )
@@ -159,11 +152,13 @@ ResourcesManager_cpp::GetFittingResources(const machineParams& params,
        // --- params.hostname is in the list of resources so return it.
        vec.push_back(hostname);
       }
+        
     else if (_resourcesBatchList.find(hostname) != _resourcesBatchList.end())
     {
       // --- params.hostname is in the list of resources so return it.
       vec.push_back(hostname);
     }
+
     else
       {
        // Cas d'un cluster: nombre de noeuds > 1
@@ -172,10 +167,6 @@ ResourcesManager_cpp::GetFittingResources(const machineParams& params,
          if( (*iter).second.DataForSort._nbOfNodes > 1 ){
            if( strncmp(hostname,(*iter).first.c_str(),strlen(hostname)) == 0 ){
              vec.push_back((*iter).first.c_str());
-//#if defined(_DEBUG_) || defined(_DEBUG)
-//           cerr << "SALOME_ResourcesManager_cpp::GetFittingResources vector["
-//           << cpt << "] = " << (*iter).first.c_str() << endl ;
-//#endif
              cpt++;
            }
          }
index 0f82ccf2c9dfcb710f4fb1520fdae48fb7523f94..cc065929c26f611bbba1691a19cb6055e31bdf1e 100644 (file)
@@ -60,7 +60,7 @@ class RESOURCESMANAGER_EXPORT ResourcesManager_cpp
   public:
 
     ResourcesManager_cpp(const char *xmlFilePath);
-    ResourcesManager_cpp();
+    ResourcesManager_cpp() throw(ResourcesException);
 
     ~ResourcesManager_cpp();
 
index 7fde2ca3ae820d197e3bcc4b7453b4091d307bc9..1602fcce938363c22fbd8cff10caddecc16e1055 100755 (executable)
 //$Header$
 //
 #include "SALOME_ResourcesCatalog_Handler.hxx"
+#include "Basics_Utils.hxx"
 #include <iostream>
 #include <map>
-#include "utilities.h"
 
 using namespace std;
 
-#ifdef _DEBUG_
-static int MYDEBUG = 1;
-#else
-static int MYDEBUG = 0;
-#endif
-
 //=============================================================================
 /*!
  *  Constructor
@@ -70,6 +64,8 @@ SALOME_ResourcesCatalog_Handler(MapOfParserResourcesType& resources_list,
   test_cpu_freq_mhz = "CPUFreqMHz";
   test_nb_of_nodes = "nbOfNodes";
   test_nb_of_proc_per_node = "nbOfProcPerNode";
+  test_batch_queue = "batchQueue";
+  test_user_commands = "userCommands";
 }
 
 //=============================================================================
@@ -103,8 +99,6 @@ SALOME_ResourcesCatalog_Handler::GetResourcesAfterParsing() const
 
 void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
 {
-//   if (MYDEBUG) cout << "Begin parse document" << endl;
-
   // Empty private elements
   _resources_list.clear();
 
@@ -138,10 +132,28 @@ void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
          else
            _resource.Alias = "";
 
-         if (xmlHasProp(aCurNode, (const xmlChar*)test_protocol))
+          if (xmlHasProp(aCurNode, (const xmlChar*)test_batch_queue))
+            {
+              xmlChar* batch_queue = xmlGetProp(aCurNode, (const xmlChar*)test_batch_queue);
+              _resource.batchQueue = (const char*)batch_queue;
+              xmlFree(batch_queue);
+            }
+          else
+            _resource.batchQueue = "";
+
+          if (xmlHasProp(aCurNode, (const xmlChar*)test_user_commands))
+            {
+              xmlChar* user_commands= xmlGetProp(aCurNode, (const xmlChar*)test_user_commands);
+              _resource.userCommands = (const char*)user_commands;
+              xmlFree(user_commands);
+            }
+          else
+            _resource.userCommands = "";
+          
+          if (xmlHasProp(aCurNode, (const xmlChar*)test_protocol))
             {
-             xmlChar* protocol= xmlGetProp(aCurNode, (const xmlChar*)test_protocol);
-             switch ( protocol[0])
+              xmlChar* protocol= xmlGetProp(aCurNode, (const xmlChar*)test_protocol);
+              switch ( protocol[0])
                {
                case 'r':
                  _resource.Protocol = rsh;
@@ -189,6 +201,8 @@ void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                 _resource.Batch = pbs;
               else if  (aBatch == "lsf")
                 _resource.Batch = lsf;
+              else if  (aBatch == "sge")
+                _resource.Batch = sge;
               else
                 _resource.Batch = none;
             }
@@ -208,8 +222,10 @@ void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                 _resource.mpi = openmpi;
               else if  (anMpi == "slurm")
                 _resource.mpi = slurm;
+              else if  (anMpi == "prun")
+                _resource.mpi = prun;
               else
-                _resource.mpi = indif;
+                _resource.mpi = nompi;
             }
 
          if (xmlHasProp(aCurNode, (const xmlChar*)test_user_name))
@@ -296,36 +312,36 @@ void SALOME_ResourcesCatalog_Handler::ProcessXmlDocument(xmlDocPtr theDoc)
                _resource.HostName = nodeName ;
                _resources_list[nodeName] = _resource;
              }
-           }
-           else
-             _resources_list[_resource.HostName] = _resource;
-         }
-         else
-           _resources_batch_list[_resource.HostName] = _resource;
-       }
+            }
+            else
+              {
+                _resources_list[_resource.HostName] = _resource;
+                if(_resource.HostName == "localhost")
+                  _resources_list[Kernel_Utils::GetHostname()] = _resource;
+              }
+          }
+          else
+            _resources_batch_list[_resource.HostName] = _resource;
+        }
       aCurNode = aCurNode->next;
     }
 
-  // For debug only
-  if (MYDEBUG)
-    {
-      for (map<string, ParserResourcesType>::const_iterator iter =
-            _resources_list.begin();
-          iter != _resources_list.end();
-          iter++)
-       {
-         SCRUTE((*iter).second.HostName);
-         SCRUTE((*iter).second.Alias);
-         SCRUTE((*iter).second.UserName);
-         SCRUTE((*iter).second.AppliPath);
-         SCRUTE((*iter).second.OS);
-         SCRUTE((*iter).second.Protocol);
-         SCRUTE((*iter).second.Mode);
-       }
-      
-//       cout << "This is the end of document" << endl;
-//     }
-    }
+#ifdef _DEBUG_
+    for (map<string, ParserResourcesType>::const_iterator iter =
+          _resources_list.begin();
+        iter != _resources_list.end();
+        iter++)
+      {
+       std::cerr << (*iter).second.HostName << std::endl;
+       std::cerr << (*iter).second.Alias << std::endl;
+       std::cerr << (*iter).second.UserName << std::endl;
+       std::cerr << (*iter).second.AppliPath << std::endl;
+       std::cerr << (*iter).second.OS << std::endl;
+       std::cerr << (*iter).second.Protocol << std::endl;
+       std::cerr << (*iter).second.Mode << std::endl;
+      }
+#endif
+
 }
 
 
@@ -353,7 +369,9 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
       node = xmlNewChild(root_node, NULL, BAD_CAST test_machine, NULL);
       xmlNewProp(node, BAD_CAST test_hostname, BAD_CAST (*iter).second.HostName.c_str());
       xmlNewProp(node, BAD_CAST test_alias, BAD_CAST (*iter).second.Alias.c_str());
-      
+      xmlNewProp(node, BAD_CAST test_batch_queue, BAD_CAST (*iter).second.batchQueue.c_str());
+      xmlNewProp(node, BAD_CAST test_user_commands, BAD_CAST (*iter).second.userCommands.c_str());
+  
       switch ((*iter).second.Protocol)
         {
         case rsh:
@@ -386,8 +404,8 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
        case lsf:
          xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "lsf");
           break;
-       case slurm:
-         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "slurm");
+       case sge:
+         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "sge");
           break;
         default:
          xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "");
@@ -407,6 +425,12 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
        case openmpi:
          xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "openmpi");
           break;
+       case slurm:
+         xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "slurm");
+          break;
+       case prun:
+         xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "prun");
+          break;
         default:
          xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "");
         }
@@ -469,8 +493,8 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
        case lsf:
          xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "lsf");
           break;
-       case slurm:
-         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "slurm");
+       case sge:
+         xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "sge");
           break;
         default:
          xmlNewProp(node, BAD_CAST test_batch, BAD_CAST "");
@@ -490,6 +514,12 @@ void SALOME_ResourcesCatalog_Handler::PrepareDocToXmlFile(xmlDocPtr theDoc)
        case openmpi:
          xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "openmpi");
           break;
+       case slurm:
+         xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "slurm");
+          break;
+       case prun:
+         xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "prun");
+          break;
         default:
          xmlNewProp(node, BAD_CAST test_mpi, BAD_CAST "");
         }
index b9a48e5972b37a22d1f778e1620f6a1dca0d792b..35cd212969c57a42006dd493d7115b226c9c66e1 100755 (executable)
@@ -78,6 +78,8 @@ class RESOURCESMANAGER_EXPORT SALOME_ResourcesCatalog_Handler
     const char *test_cpu_freq_mhz;
     const char *test_nb_of_nodes;
     const char *test_nb_of_proc_per_node;
+    const char *test_batch_queue;
+    const char *test_user_commands;
 
   };
 
index dc72aeb0cec3bb6ed7dba456824874183bcfbeb9..fff95034a72b9a01535ececd4e13ee34eab0cad9 100644 (file)
@@ -131,6 +131,8 @@ void ParserResourcesType::Print() const
     "UserName : " << UserName << endl <<
     "AppliPath : " << AppliPath << endl <<
     "OS : " << OS << endl <<
+    "batchQueue : " << batchQueue << endl <<
+    "userCommands : " << userCommands << endl <<
     "Modules : " << endl;
 
   for(int i=0;i<ModulesList.size();i++)
@@ -152,9 +154,11 @@ void ParserResourcesType::Clear()
   Protocol = rsh;
   Mode = interactive;
   Batch = none;
-  mpi = indif;
+  mpi = nompi;
   UserName = "";
   AppliPath = "";
+  batchQueue = "";
+  userCommands = "";
   ModulesList.clear();
   OS = "";
 }
index e91ebcdc17e519174cc47ce125eaf41113cdcae8..2d723b5800b01545316fdb0eaa5d29c712d889c9 100755 (executable)
@@ -39,9 +39,9 @@ enum AccessProtocolType {rsh, ssh};
 
 enum AccessModeType {interactive, batch};
 
-enum BatchType {none, pbs, lsf};
+enum BatchType {none, pbs, lsf, sge};
 
-enum MpiImplType {indif, lam, mpich1, mpich2, openmpi, slurm};
+enum MpiImplType {nompi, lam, mpich1, mpich2, openmpi, slurm, prun};
 
 class RESOURCESMANAGER_EXPORT ResourceDataToSort
   {
@@ -84,6 +84,8 @@ struct RESOURCESMANAGER_EXPORT ParserResourcesType
     std::string AppliPath;
     std::vector<std::string> ModulesList;
     std::string OS;
+    std::string batchQueue;
+    std::string userCommands;
 
     void Print() const;
     void Clear();
index 02930d5c5a4b3c72a9f33539cbab952e4e381fb7..408c2250a420a4092205845910e11b76c6a0a56d 100644 (file)
@@ -210,9 +210,8 @@ Engines::MachineParameters* SALOME_ResourcesManager::GetMachineParameters(const
   p_ptr->cpu_clock = resource.DataForSort._CPUFreqMHz;
   p_ptr->nb_proc_per_node = resource.DataForSort._nbOfProcPerNode;
   p_ptr->nb_node = resource.DataForSort._nbOfNodes;
-  if( resource.mpi == indif )
-    p_ptr->mpiImpl = "indif";
-  else if( resource.mpi == lam )
+
+  if( resource.mpi == lam )
     p_ptr->mpiImpl = "lam";
   else if( resource.mpi == mpich1 )
     p_ptr->mpiImpl = "mpich1";
@@ -222,10 +221,17 @@ Engines::MachineParameters* SALOME_ResourcesManager::GetMachineParameters(const
     p_ptr->mpiImpl = "openmpi";
   else if( resource.mpi == slurm )
     p_ptr->mpiImpl = "slurm";
+  else if( resource.mpi == prun )
+    p_ptr->mpiImpl = "prun";
+
   if( resource.Batch == pbs )
     p_ptr->batch = "pbs";
   else if( resource.Batch == lsf )
     p_ptr->batch = "lsf";
+  else if( resource.Batch == sge )
+    p_ptr->batch = "sge";
+
+  p_ptr->nb_component_nodes=1;
 
   return p_ptr;
 }
index 53a6db474999f4ff56bba5f6bf40e24c26728e8b..c56b7455311024e34f44a5c160914a62b9caf2b4 100644 (file)
@@ -182,6 +182,8 @@ libSalomeDS_la_SOURCES =    \
        SALOMEDS_AttributeParameter.cxx \
        SALOMEDS_AttributeString.cxx \
        SALOMEDS_IParameters.cxx \
+       SALOMEDS_AttLong_i.hxx \
+       SALOMEDS_AttReal_i.hxx \
        SALOMEDS_AttributeComment.hxx \
        SALOMEDS_AttributeComment_i.hxx \
        SALOMEDS_AttributeDrawable.hxx \
@@ -239,6 +241,8 @@ libSalomeDS_la_SOURCES =    \
        SALOMEDS_AttributeTreeNode_i.hxx \
        SALOMEDS_AttributeUserID.hxx \
        SALOMEDS_AttributeUserID_i.hxx \
+       SALOMEDS_BasicAttributeFactory.hxx \
+       SALOMEDS_BasicAttribute_i.hxx \
        SALOMEDS_Callback_i.hxx \
        SALOMEDS_ChildIterator.hxx \
        SALOMEDS_ChildIterator_i.hxx \
index b0c4ff789c0dce9c1eb0af156e0cf56b18701e53..51c13174b32c1970d159ac416c0983ac4696fa23 100644 (file)
@@ -1,5 +1,24 @@
+Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
 
-$Header$
+Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+
+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.
+
+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
+-----------------------------------------
 
 How to add a new attribute (without WOK): 
 -----------------------------------------
index b126fe4930ab4303b5158b62971cfa727c23757e..7aaeb5337bd07121ee3b838938443dce2a93694d 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_AttLong_i.cxx
 //  Author : Estelle Deville
 //  Module : SALOME
 //  $Header$
-
+//
 #include "SALOMEDS_AttLong_i.hxx"
 #include "utilities.h"
 #include <stdio.h>
index adb6acb0cbd6bfa65f6841903f38045b5c29a1ce..ad7084b202f0e0b8acf4dc93cf3f977fd3e2f2af 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_AttLong_i.hxx
 //  Author : Estelle Deville
 //  Module : SALOME
 //  $Header$
-
+//
 #ifndef __SALOMEDS_ATTLONG_I_H__
 #define __SALOMEDS_ATTLONG_I_H__
 
index 30740a8107742d5ec2c7f931c95c30909279916b..d0475f24618ce0c6f003c752f54bb2f4a6288428 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_AttReal_i.cxx
 //  Author : Estelle Deville
 //  Module : SALOME
 //  $Header$
-
+//
 #include "SALOMEDS_AttReal_i.hxx"
 #include "utilities.h"
 #include <stdio.h>
index 65fda690af5ba06332ebb1a46718673a048a1448..4eeb13ed8e7d80b6dba07d6eb7d46f874da0878f 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_AttReal_i.hxx
 //  Author : Estelle Deville
 //  Module : SALOME
 //  $Header$
-
+//
 #ifndef __SALOMEDS_ATTREAL_I_H__
 #define __SALOMEDS_ATTREAL_I_H__
 
index e5f27882a319f33be0c84ec87b7efa788e059949..58ee4137c3ee8499cc306663171afca0ebe0166c 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_BasicAttributeFactory.cxx
 //  Author : Estelle Deville, CEA
 //  Module : SALOME
 //  $Header$
-
+//
 #include "SALOMEDS_BasicAttributeFactory.hxx"
 #include "utilities.h"
 using namespace std;
index 8ad0c9c9e05e6e206a11ef6c8f0d985b2fcc7e2a..1034a2304d8116d43b08a128d8de64ec8ecfdaf0 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_BasicAttributeFactory.hxx
 //  Author : Estelle Deville, CEA
 //  Module : SALOME
 //  $Header$
-
+//
 #ifndef _BASIC_ATTRIBUTEFACTORY_HXX_
 #define _BASIC_ATTRIBUTEFACTORY_HXX_
 #include "SALOMEDS_BasicAttribute_i.hxx"
index 74dd4e85dfa7c22e65d5c6795aaceefc8b88e7a7..ba425bb2eec727aaf6fd51446160620960df8ef4 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_BasicAttribute_i.cxx
 //  Author : Estelle Deville, CEA
 //  Module : SALOME
 //  $Header$
-
+//
 #include "SALOMEDS_BasicAttribute_i.hxx"
 using namespace std;
 
index b8902a902084f48e17eb9a0a29c33eb8465e7126..237cd1123bd61745838501c35f58b8ab2604a93c 100644 (file)
@@ -1,31 +1,30 @@
-//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
 //
-//  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
-// 
-//  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. 
-// 
-//  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
+//  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
 //
+//  SALOME SALOMEDS : data structure of SALOME and sources of Salome data server 
 //  File   : SALOMEDS_BasicAttribute_i.hxx
 //  Author : Estelle Deville, CEA
 //  Module : SALOME
 //  $Header$
-
+//
 #ifndef _BASIC_ATTRIBUTE_I_HXX_
 #define _BASIC_ATTRIBUTE_I_HXX_
 
index 0c64eabafceef329c4a7252eb01b33ac3c37d4ab..ae248dca8183983c800e035d4ac5b310160fce8a 100644 (file)
@@ -220,5 +220,4 @@ bin_PROGRAMS = testDS
 testDS_SOURCES  = testDS.cxx
 testDS_CPPFLAGS = $(COMMON_CPPFLAGS)
 testDS_LDADD    = libSalomeDSImpl.la \
-       ../HDFPersist/libSalomeHDFPersist.la \
        $(HDF5_LIBS)
index 61c51cacb575d778fbf2b86ea96090a37b5a7503..da906393ca33cea158fb7de9103858e8edd5a0e8 100644 (file)
@@ -460,7 +460,7 @@ string SALOMEDSImpl_AttributeTableOfInteger::Save()
       aString += myRows[i][j];
       aString += '\n';
     }
-  }
+  }  
 
   //Nb columns
   sprintf(buffer, "%d\n", myNbColumns);
index 15cf6de0b954b6dc45798cf66e775f16df4fcc2c..1b9dd68c608bac945778a75ac2982f7a048ba75d 100644 (file)
@@ -446,7 +446,7 @@ string SALOMEDSImpl_AttributeTableOfReal::Save()
     aString += myTitle[i];
     aString +='\n';
   }
-
+  
   //Nb rows
   sprintf(buffer, "%d\n", myNbRows);
   aString+=buffer;
@@ -460,7 +460,7 @@ string SALOMEDSImpl_AttributeTableOfReal::Save()
       aString += myRows[i][j];
       aString += '\n';
     }
-  }
+  }  
 
   //Nb columns
   sprintf(buffer, "%d\n", myNbColumns);
@@ -485,7 +485,7 @@ string SALOMEDSImpl_AttributeTableOfReal::Save()
     sprintf(buffer, "%d\n%.64e\n", p->first, p->second);
     aString += buffer;
   }
-  
+
   delete []buffer;
   return aString;
 }
index c92177c7d4c9e64459a544c06ff3d136164b798f..f5872c4ad0570488885c81548dc0faf3dbdbbb2a 100644 (file)
@@ -461,7 +461,7 @@ string SALOMEDSImpl_AttributeTableOfString::Save()
       aString += myRows[i][j];
       aString += '\n';
     }
-  }
+  }  
 
   //Nb columns
   sprintf(buffer, "%d\n", myNbColumns);
index 2e98daec67ffd70f6b6012f700f291ae0b908f59..4bf7c33567856bebaa290716f1cd613f178f44a9 100644 (file)
@@ -29,8 +29,6 @@
 #include <fstream>
 #include <cstdlib>
 
-#include "utilities.h"
-
 using namespace std;
 
 //#define _DEVDEBUG_
@@ -108,7 +106,7 @@ void* FileTraceCollector::run(void *bid)
   traceFile.open(theFileName, ios::out | ios::app);
   if (!traceFile)
     {
-      MESSAGE ( "impossible to open trace file "<< theFileName );
+      cerr << "impossible to open trace file "<< theFileName << endl;
       exit (1);
     }
 
@@ -137,11 +135,11 @@ void* FileTraceCollector::run(void *bid)
          traceFile.close();
          cout << flush ;
 #ifndef WIN32
-         MESSAGE ( "INTERRUPTION from thread " << myTrace.threadId
-              << " : " <<  myTrace.trace );
+         cerr << "INTERRUPTION from thread " << myTrace.threadId
+              << " : " <<  myTrace.trace;
 #else
-         MESSAGE ( "INTERRUPTION from thread " << (void*)(&myTrace.threadId)
-              << " : " <<  myTrace.trace );
+         cerr << "INTERRUPTION from thread " << (void*)(&myTrace.threadId)
+              << " : " <<  myTrace.trace;
 #endif
          cerr << flush ; 
          exit(1);     
index c3d65485aa047a7a5d249d08947850d34b3d8687..1b384dc37425196ef6f58ea203ca03aa1f348371 100644 (file)
@@ -40,7 +40,6 @@
 #include "BaseTraceCollector.hxx"
 #include "LocalTraceCollector.hxx"
 #include "FileTraceCollector.hxx"
-#include "BasicsGenericDestructor.hxx"
 #include "utilities.h"
 
 using namespace std;
@@ -133,9 +132,9 @@ LocalTraceBufferPool* LocalTraceBufferPool::instance()
 #endif
                  if ( !TraceCollectorFactory )
                  {
-                     MESSAGE ( "Can't resolve symbol: SingletonInstance" );
+                     cerr << "Can't resolve symbol: SingletonInstance" <<endl;
 #ifndef WIN32
-                     MESSAGE ( "dlerror: " << dlerror() );
+                     cerr << "dlerror: " << dlerror() << endl;
 #endif
                      exit( 1 );
                    }
@@ -143,7 +142,7 @@ LocalTraceBufferPool* LocalTraceBufferPool::instance()
                }
              else
                {
-                 MESSAGE ( "library: " << impl_name << " not found !" );
+                 cerr << "library: " << impl_name << " not found !" << endl;
                  assert(handle); // to give file and line
                  exit(1);        // in case assert is deactivated
                }             
index 4c61b59a21427b24511ea4552b00158f0b960905..b537c620f318b1cf8829505ff16bad574924fe2b 100644 (file)
@@ -28,7 +28,6 @@
 #include <sstream>
 #include <fstream>
 #include <cstdlib>
-#include "utilities.h"
 
 using namespace std;
 
@@ -104,10 +103,10 @@ void* LocalTraceCollector::run(void *bid)
          cout << flush ;
 #ifndef WIN32
          cerr << "INTERRUPTION from thread " << myTrace.threadId
-                 << " : " <<  myTrace.trace;
+              << " : " <<  myTrace.trace;
 #else
          cerr << "INTERRUPTION from thread " << (void*)(&myTrace.threadId)
-                << " : " <<  myTrace.trace;
+              << " : " <<  myTrace.trace;
 #endif
          cerr << flush ; 
          exit(1);     
@@ -118,7 +117,8 @@ void* LocalTraceCollector::run(void *bid)
 #ifndef WIN32
          cerr << "th. " << myTrace.threadId << " " << myTrace.trace;
 #else
-         cerr << "th. " << (void*)(&myTrace.threadId) << " " << myTrace.trace;
+         cerr << "th. " << (void*)(&myTrace.threadId)
+              << " " << myTrace.trace;
 #endif
          cerr << flush ; 
        }
@@ -146,7 +146,7 @@ LocalTraceCollector:: ~LocalTraceCollector()
       if (_threadId)
        {
          int ret = pthread_join(*_threadId, NULL);
-         if (ret) { MESSAGE ( "error close LocalTraceCollector : " << ret ); }
+         if (ret) cerr << "error close LocalTraceCollector : "<< ret << endl;
          else DEVTRACE("LocalTraceCollector destruction OK");
           delete _threadId;
          _threadId = 0;
index c6f0160f5e89471337e4a7e2d7aceceab2fd1f05..4cfd00b2c9e247fb6fd5533ee0cab5ac29eadf4c 100644 (file)
@@ -29,7 +29,6 @@
 
 #include "SALOME_LocalTrace.hxx"
 
-#include <string>
 #include "LocalTraceBufferPool.hxx"
 #include "BaseTraceCollector.hxx"
 
index 19ec2ef2039011a2355814ff5e5ff14eefacd7fe..e3e8c27e43a5d6727439ab2bd7e66e19ecb379a7 100644 (file)
 #include CORBA_CLIENT_HEADER(SALOME_MPIContainer)
 #include CORBA_CLIENT_HEADER(SALOME_TestMPIComponent)
 
+#include "Basics_Utils.hxx"
 # include "Utils_ORB_INIT.hxx"
 # include "Utils_SINGLETON.hxx"
 #include "SALOME_NamingService.hxx"
-#include "Basics_Utils.hxx"
+#include "OpUtil.hxx"
 using namespace std;
 
 int main (int argc, char * argv[])
index 60aa17df256b5339ebe2636657c541c38dc9c668..3e64bf5650716696b835650114d1370261317670 100644 (file)
@@ -68,9 +68,7 @@ endif
 UnitTests_LDADD    =\
        @CPPUNIT_LIBS@ \
        ../Basics/libSALOMEBasics.la \
-       ../SALOMELocalTrace/libSALOMELocalTrace.la \
-       ../SALOMELocalTrace/Test/libSALOMELocalTraceTest.la \
-       ../HDFPersist/libSalomeHDFPersist.la
+       ../SALOMELocalTrace/libSALOMELocalTrace.la ../SALOMELocalTrace/Test/libSALOMELocalTraceTest.la
 
 if CORBA_GEN
   UnitTests_LDADD    +=\
diff --git a/src/Utils/OpUtil.cxx b/src/Utils/OpUtil.cxx
new file mode 100644 (file)
index 0000000..3d50327
--- /dev/null
@@ -0,0 +1,77 @@
+//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+//
+//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+//  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.
+//
+//  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
+//
+//  SALOME Utils : general SALOME's definitions and tools
+//  File   : OpUtil.cxx
+//  Module : SALOME
+//
+#include "utilities.h" 
+#include "OpUtil.hxx"
+#include <errno.h>
+#include <string.h>
+
+#ifndef WNT
+#include <unistd.h>
+#else
+#include <winsock2.h>
+#endif
+using namespace std;
+//int gethostname(char *name, size_t len);
+
+std::string GetHostname()
+{
+  int ls = 100, r = 1;
+  char *s;
+
+  while (ls < 10000 && r) {
+    ls *= 2;
+    s = new char[ls];
+    r = gethostname(s, ls-1);
+    switch (r) 
+      {
+      case 0:
+         break;
+      default:
+#ifdef EINVAL
+      case EINVAL:
+#endif
+#ifdef ENAMETOOLONG
+      case ENAMETOOLONG:
+#endif
+        delete [] s;
+       continue;
+      }
+  }
+
+  if (r != 0) {
+    s = new char[50];
+    strcpy(s, "localhost");
+  }
+
+  // remove all after '.'
+  char *aDot = (strchr(s,'.'));
+  if (aDot) aDot[0] = '\0';
+
+  string p = s;
+  delete [] s;
+  return p;
+}
+