Salome HOME
Patch modules/smesh.git for Doxygen typos/grammar + misc. typos
[modules/smesh.git] / src / Tools / padder / meshjob / impl / MeshJobManager_i.cxx
index c968033504043b3f1d59239be4edf79e265b1da7..35f162be9ff29cfa4bfe38c69213f11469d60260 100644 (file)
@@ -1,9 +1,9 @@
-// Copyright (C) 2011-2013  EDF R&D
+// Copyright (C) 2011-2016  EDF R&D
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -124,11 +124,12 @@ MeshJobManager_i::~MeshJobManager_i() {
 // ====================================================================
 //
 #include <fstream>     // to get the file streams
-#ifdef WNT             
+#ifdef WIN32
 #include <stdlib.h>    // to get _splitpath
 #include <direct.h>    // to get _mkdir
 #else
 #include <unistd.h>    // to get basename
+#include <libgen.h>    // to get basename - as per posix
 #include <sys/stat.h>  // to get mkdir
 #include <sys/types.h> // to get mkdir options
 #endif
@@ -140,7 +141,12 @@ static std::string DATAFILE("data.txt");
 static std::string SCRIPTFILE("padder.sh");
 static std::string SEPARATOR(" ");
 
+#ifdef WIN32
+static std::string USER(getenv("USERNAME"));
+#else
 static std::string USER(getenv("USER"));
+#endif
+
 static std::string LOCAL_INPUTDIR("/tmp/spadder.local.inputdir."+USER);
 static std::string LOCAL_RESULTDIR("/tmp/spadder.local.resultdir."+USER);
 static std::string REMOTE_WORKDIR("/tmp/spadder.remote.workdir."+USER);
@@ -214,7 +220,7 @@ const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobParame
 }
 
 /*!
- * This function creates a shell script that runs padder whith the
+ * This function creates a shell script that runs padder with the
  * specified data file, and returns the path of the created script
  * file. The config id is used to retrieve the path to the binary file
  * and other required files.
@@ -237,7 +243,7 @@ const char* MeshJobManager_i::_writeScriptFile(const char * dataFileName, const
         _splitpath( dataFileName, NULL, NULL, fname, NULL );
         const char* bname = &fname[0];
 #else
-        const char* bname = basename(dataFileName);
+        const char* bname = basename(const_cast<char *>(dataFileName));
 #endif
 
 
@@ -295,9 +301,9 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m
       break;
     default:
       _lastErrorMessage =
-       std::string("The type of the file ")+
-       std::string(currentMesh.file_name)+
-       std::string(" is not recognized");
+        std::string("The type of the file ")+
+        std::string(currentMesh.file_name)+
+        std::string(" is not recognized");
       LOG(_lastErrorMessage);
       return JOBID_UNDEFINED;
     }
@@ -402,7 +408,7 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m
     }
   }
 
-  // Then, we have to specify the existance of an output filename. The
+  // Then, we have to specify the existence of an output filename. The
   // path is supposed to be a path on the remote resource, i.e. where
   // the job is executed.
   jobParameters->out_files.length(1);
@@ -410,7 +416,7 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m
   jobParameters->out_files[0] = CORBA::string_dup(outputfile_name.c_str());
 
   // CAUTION: the maximum duration has to be set with a format like "hh:mm"
-  jobParameters->maximum_duration = CORBA::string_dup("01:00");
+  //jobParameters->maximum_duration = CORBA::string_dup("01:00");
   jobParameters->queue = CORBA::string_dup("");
 
   // Setting resource and additionnal properties (if needed)
@@ -456,14 +462,14 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobParameterList & m
   // account not only the data that could be loaded by the batch
   // process but also the linked dynamic library.
   //
-  // A possible problem, for exemple in the case where you use the ssh
+  // A possible problem, for example in the case where you use the ssh
   // emulation of a batch system, is to get an error message as below
   // when libBatch try to run the ssh command:
   //
   // ## /usr/bin/ssh: error while loading shared libraries: libcrypto.so.0.9.8: failed
   // ## to map segment from shared object: Cannot allocate memory
   //
-  // In this exemple, the mem_mb was set to 1MB, value that is not
+  // In this example, the mem_mb was set to 1MB, value that is not
   // sufficient to load the dynamic libraries linked to the ssh
   // executable (libcrypto.so in the error message).
   //
@@ -573,8 +579,8 @@ MESHJOB::MeshJobResults * MeshJobManager_i::finalize(CORBA::Long jobId) {
     
     if ( fexists( (local_resultdir+"/"+outputFileName).c_str()  ) != true ) {
       _lastErrorMessage = std::string("The result file ")+
-       std::string((local_resultdir+"/"+outputFileName).c_str())+
-       std::string(" has not been created.");
+        std::string((local_resultdir+"/"+outputFileName).c_str())+
+        std::string(" has not been created.");
       result->status = false;
     }
     else {
@@ -651,7 +657,7 @@ std::vector<std::string> * MeshJobManager_i::_getResourceNames() {
   LOG("### resource list:");
   std::vector<std::string>* resourceNames = new std::vector<std::string>();
   if (resourceList) {
-    for (int i = 0; i < resourceList->length(); i++) {
+    for ( size_t i = 0; i < resourceList->length(); i++) {
       const char* aResourceName = (*resourceList)[i];
       resourceNames->push_back(std::string(aResourceName));
       LOG("resource["<<i<<"] = "<<aResourceName);
@@ -685,6 +691,7 @@ char* MeshJobManager_i::getLastErrorMessage() {
 //
 extern "C"
 {
+  MESHJOBMANAGERENGINE_EXPORT
   PortableServer::ObjectId * MeshJobManagerEngine_factory( CORBA::ORB_ptr orb,
                                                            PortableServer::POA_ptr poa,
                                                            PortableServer::ObjectId * contId,