X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FTools%2Fpadder%2Fmeshjob%2Fimpl%2FMeshJobManager_i.cxx;h=379e593d5a892dc2976b8eee896afaf9b292ff28;hp=76c71870eb64e1e853c46dea32b8606c7886e8de;hb=0db2de9312288bf324e739a20a7fbfa8f004c21c;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef diff --git a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx index 76c71870e..379e593d5 100644 --- a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx +++ b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2011-2012 EDF R&D +// Copyright (C) 2011-2015 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 @@ -16,6 +16,7 @@ // // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // Authors : Guillaume Boulant (EDF) - 01/03/2011 #ifdef WIN32 @@ -123,7 +124,7 @@ MeshJobManager_i::~MeshJobManager_i() { // ==================================================================== // #include // to get the file streams -#ifdef WNT +#ifdef WIN32 #include // to get _splitpath #include // to get _mkdir #else @@ -139,7 +140,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); @@ -409,7 +415,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) @@ -569,18 +575,28 @@ MESHJOB::MeshJobResults * MeshJobManager_i::finalize(CORBA::Long jobId) { rename((local_resultdir+"/"+OUTPUTFILE).c_str(), (local_resultdir+"/"+outputFileName).c_str()); result->outputmesh_filename = outputFileName.c_str(); - result->status = "OK"; + + 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."); + result->status = false; + } + else { + result->status = true; + } } catch (const SALOME::SALOME_Exception & ex) { - LOG("SALOME Exception in getResults !"); - result->status = "SALOME Exception in getResults !"; _lastErrorMessage = ex.details.text.in(); + LOG(_lastErrorMessage); + result->status = false; } catch (const CORBA::SystemException& ex) { - LOG("Receive CORBA System Exception: " << ex); - result->status = "Receive CORBA System Exception: see log"; + _lastErrorMessage = "The SALOME launcher can not retrieve the result data"; + LOG(_lastErrorMessage); + result->status = false; } endService("MeshJobManager_i::getResults"); return result; @@ -674,6 +690,7 @@ char* MeshJobManager_i::getLastErrorMessage() { // extern "C" { + MESHJOBMANAGERENGINE_EXPORT PortableServer::ObjectId * MeshJobManagerEngine_factory( CORBA::ORB_ptr orb, PortableServer::POA_ptr poa, PortableServer::ObjectId * contId,