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=95c35adbab41ff187aed8baa5e475b9c58bbf01a;hp=76c71870eb64e1e853c46dea32b8606c7886e8de;hb=21af9b3a2c317f5693f228cd8ed55c2bb44b0a07;hpb=9a54694a0ab1e5cbc558a35c4606ceea4f7af2ef;ds=sidebyside diff --git a/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx b/src/Tools/padder/meshjob/impl/MeshJobManager_i.cxx index 76c71870e..95c35adba 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-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 @@ -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,11 +124,12 @@ MeshJobManager_i::~MeshJobManager_i() { // ==================================================================== // #include // to get the file streams -#ifdef WNT +#ifdef WIN32 #include // to get _splitpath #include // to get _mkdir #else #include // to get basename +#include // to get basename - as per posix #include // to get mkdir #include // to get mkdir options #endif @@ -139,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); @@ -236,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(dataFileName)); #endif @@ -409,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) @@ -569,18 +576,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; @@ -640,7 +657,7 @@ std::vector * MeshJobManager_i::_getResourceNames() { LOG("### resource list:"); std::vector* resourceNames = new std::vector(); 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["<