Padder : write new parameters in DataFile

This commit is contained in:
uhz 2017-03-09 16:46:31 +01:00
parent 55290963c7
commit d8428a892b
4 changed files with 36 additions and 6 deletions

View File

@ -72,6 +72,16 @@ module MESHJOB
// This defines a set of parameters for the job initialization // This defines a set of parameters for the job initialization
typedef sequence<MESHJOB::MeshJobFile> MeshJobFileList; typedef sequence<MESHJOB::MeshJobFile> MeshJobFileList;
// This defines a single parameter for the job initialization
struct MeshJobParameter
{
string name;
string value;
};
// This defines a set of parameters for the job initialization
typedef sequence<MESHJOB::MeshJobParameter> MeshJobParameterList;
// This defines the result data of a job // This defines the result data of a job
struct MeshJobResults struct MeshJobResults
{ {
@ -97,7 +107,9 @@ module MESHJOB
raises (SALOME::SALOME_Exception); raises (SALOME::SALOME_Exception);
/*! Initialize a smesh computation job and return the job identifier */ /*! Initialize a smesh computation job and return the job identifier */
long initialize(in MESHJOB::MeshJobFileList meshJobFileList, in string configId) long initialize(in MESHJOB::MeshJobFileList meshJobFileList,
in MESHJOB::MeshJobParameterList MeshJobParameterList,
in string configId)
raises (SALOME::SALOME_Exception); raises (SALOME::SALOME_Exception);
/*! Submit the job execution and return true if submission is OK */ /*! Submit the job execution and return true if submission is OK */

View File

@ -168,7 +168,8 @@ static std::string REMOTE_WORKDIR("/tmp/spadder.remote.workdir."+USER);
* <outputMedFile> * <outputMedFile>
*/ */
const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobFile> listConcreteMesh, const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobFile> listConcreteMesh,
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh) { std::vector<MESHJOB::MeshJobFile> listSteelBarMesh,
const MESHJOB::MeshJobParameterList & meshJobParameterList) {
#ifdef WIN32 #ifdef WIN32
_mkdir(LOCAL_INPUTDIR.c_str()); _mkdir(LOCAL_INPUTDIR.c_str());
#else #else
@ -212,9 +213,17 @@ const char * MeshJobManager_i::_writeDataFile(std::vector<MESHJOB::MeshJobFile>
dataFile << line.c_str() << std::endl; dataFile << line.c_str() << std::endl;
} }
// Finally, we conclude with the name of the output file // We conclude the list of files with the name of the output file
line = OUTPUTFILE; line = OUTPUTFILE;
dataFile << line.c_str() << std::endl; dataFile << line.c_str() << std::endl;
// We put the numerical parameters at the end of the data file
for(CORBA::ULong i=0; i<meshJobParameterList.length(); i++) {
MESHJOB::MeshJobParameter param = meshJobParameterList[i];
line = std::string(param.name) + " " + std::string(param.value);
dataFile << line.c_str() << std::endl;
}
dataFile.close(); dataFile.close();
return dataFilename->c_str(); return dataFilename->c_str();
} }
@ -282,6 +291,7 @@ long MeshJobManager_i::JOBID_UNDEFINED = -1;
/*! Initialize a smesh computation job and return the job identifier */ /*! Initialize a smesh computation job and return the job identifier */
CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobFileList & meshJobFileList, CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobFileList & meshJobFileList,
const MESHJOB::MeshJobParameterList & meshJobParameterList,
const char * configId) const char * configId)
{ {
beginService("MeshJobManager_i::initialize"); beginService("MeshJobManager_i::initialize");
@ -340,7 +350,7 @@ CORBA::Long MeshJobManager_i::initialize(const MESHJOB::MeshJobFileList & meshJo
// data is a text file containing the list of file names and group // data is a text file containing the list of file names and group
// names. // names.
// //
const char * dataFilename = this->_writeDataFile(listConcreteMesh, listSteelBarMesh); const char * dataFilename = this->_writeDataFile(listConcreteMesh, listSteelBarMesh, meshJobParameterList);
LOG("dataFilename = " << dataFilename); LOG("dataFilename = " << dataFilename);
const char * scriptFilename = this->_writeScriptFile(dataFilename, configId); const char * scriptFilename = this->_writeScriptFile(dataFilename, configId);
LOG("scriptFilename = " << scriptFilename); LOG("scriptFilename = " << scriptFilename);

View File

@ -56,6 +56,7 @@ public:
bool configure (const char *configId, bool configure (const char *configId,
const MESHJOB::ConfigParameter & configParameter); const MESHJOB::ConfigParameter & configParameter);
CORBA::Long initialize (const MESHJOB::MeshJobFileList & meshJobFileList, CORBA::Long initialize (const MESHJOB::MeshJobFileList & meshJobFileList,
const MESHJOB::MeshJobParameterList & meshJobParameterList,
const char *configId); const char *configId);
bool start (CORBA::Long jobId); bool start (CORBA::Long jobId);
char* getState (CORBA::Long jobId); char* getState (CORBA::Long jobId);
@ -84,7 +85,8 @@ private:
std::map<long, MESHJOB::MeshJobPaths*> _jobPathsMap; std::map<long, MESHJOB::MeshJobPaths*> _jobPathsMap;
const char* _writeDataFile (std::vector<MESHJOB::MeshJobFile> listConcreteMesh, const char* _writeDataFile (std::vector<MESHJOB::MeshJobFile> listConcreteMesh,
std::vector<MESHJOB::MeshJobFile> listSteelBarMesh); std::vector<MESHJOB::MeshJobFile> listSteelBarMesh,
const MESHJOB::MeshJobParameterList & meshJobParameterList);
const char* _writeScriptFile (const char * dataFileName, const char * configId); const char* _writeScriptFile (const char * dataFileName, const char * configId);
std::vector<std::string> * _getResourceNames(); std::vector<std::string> * _getResourceNames();

View File

@ -160,10 +160,16 @@ def test03_parameters():
#meshJobFileList = test02_parameters() #meshJobFileList = test02_parameters()
meshJobFileList = test03_parameters() meshJobFileList = test03_parameters()
meshJobParameterList = []
param = MESHJOB.MeshJobParameter(name="RminRmax",value="1.5")
meshJobParameterList.append(param)
param = MESHJOB.MeshJobParameter(name="NbIteration",value="3")
meshJobParameterList.append(param)
# #
# Prepare, start and follow-up the job # Prepare, start and follow-up the job
# #
jobid = component.initialize(meshJobFileList, configId) jobid = component.initialize(meshJobFileList, meshJobParameterList, configId)
if jobid<0: if jobid<0:
msg = component.getLastErrorMessage() msg = component.getLastErrorMessage()
print "ERR: %s"%msg print "ERR: %s"%msg