mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-14 10:40:34 +05:00
to remove tmp file
This commit is contained in:
parent
b099bfe29f
commit
abe3e0bbe9
@ -37,6 +37,17 @@
|
|||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <boost/filesystem.hpp>
|
#include <boost/filesystem.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
static std::string removeFile(std::string fileName, int& notOk)
|
||||||
|
{
|
||||||
|
std::string errStr;
|
||||||
|
notOk = std::remove(fileName.c_str());
|
||||||
|
if (notOk) errStr = ToComment(" \n error while removing file : ")
|
||||||
|
<< fileName;
|
||||||
|
else errStr= ToComment("\n file : ")<< fileName << " succesfully deleted! \n ";
|
||||||
|
|
||||||
|
return errStr;
|
||||||
|
}
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
struct GET_DEFAULT // struct used to get default value from GetOptionValue()
|
struct GET_DEFAULT // struct used to get default value from GetOptionValue()
|
||||||
@ -484,7 +495,9 @@ throw (std::invalid_argument)
|
|||||||
|
|
||||||
if (op_val->second != optionValue)
|
if (op_val->second != optionValue)
|
||||||
{
|
{
|
||||||
const char* ptr = optionValue.c_str();
|
|
||||||
|
std::string lowerOptionValue = toLowerStr(optionValue);
|
||||||
|
const char* ptr = lowerOptionValue.c_str();
|
||||||
// strip white spaces
|
// strip white spaces
|
||||||
while (ptr[0] == ' ')
|
while (ptr[0] == ' ')
|
||||||
ptr++;
|
ptr++;
|
||||||
@ -581,6 +594,18 @@ throw (std::invalid_argument)
|
|||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
//================================================================================
|
//================================================================================
|
||||||
|
/*!
|
||||||
|
* \brief Converts a string to a lower
|
||||||
|
*/
|
||||||
|
//================================================================================
|
||||||
|
std::string MgAdapt::toLowerStr(const std::string& str)
|
||||||
|
{
|
||||||
|
std::string s = str;
|
||||||
|
for ( size_t i = 0; i <= s.size(); ++i )
|
||||||
|
s[i] = tolower( s[i] );
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Converts a string to a bool
|
* \brief Converts a string to a bool
|
||||||
*/
|
*/
|
||||||
@ -675,6 +700,7 @@ int MgAdapt::compute(std::string& errStr)
|
|||||||
{
|
{
|
||||||
convertMeshFile(meshFormatOutputMesh, solFormatOutput);
|
convertMeshFile(meshFormatOutputMesh, solFormatOutput);
|
||||||
}
|
}
|
||||||
|
//~if (!err) cleanUp();
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -682,8 +708,19 @@ void MgAdapt::execCmd( const char* cmd, int& err)
|
|||||||
{
|
{
|
||||||
err = 1;
|
err = 1;
|
||||||
std::array <char, 128> buffer;
|
std::array <char, 128> buffer;
|
||||||
std:: ofstream logStream;
|
std::streambuf* buf;
|
||||||
logStream.open(logFile);
|
outFileStream fileStream;
|
||||||
|
if (printLogInFile)
|
||||||
|
{
|
||||||
|
fileStream.open(logFile);
|
||||||
|
buf = fileStream.rdbuf();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buf = std::cout.rdbuf();
|
||||||
|
}
|
||||||
|
std::ostream logStream(buf);
|
||||||
|
|
||||||
std::unique_ptr <FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose );
|
std::unique_ptr <FILE, decltype(&pclose)> pipe(popen(cmd, "r"), pclose );
|
||||||
if(!pipe)
|
if(!pipe)
|
||||||
{
|
{
|
||||||
@ -693,9 +730,34 @@ void MgAdapt::execCmd( const char* cmd, int& err)
|
|||||||
{
|
{
|
||||||
logStream<<buffer.data() ;
|
logStream<<buffer.data() ;
|
||||||
}
|
}
|
||||||
logStream.close();
|
|
||||||
err = 0;
|
err = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MgAdapt::cleanUp()
|
||||||
|
{
|
||||||
|
int notOk;
|
||||||
|
std::string errStr;
|
||||||
|
if(removeOnSuccess) tmpFilesToBeDeleted.push_back(logFile);
|
||||||
|
|
||||||
|
std::vector< std::string>::iterator it = tmpFilesToBeDeleted.begin();
|
||||||
|
for (; it!=tmpFilesToBeDeleted.end(); ++it)
|
||||||
|
{
|
||||||
|
errStr=removeFile(*it, notOk);
|
||||||
|
if (notOk)
|
||||||
|
{
|
||||||
|
appendMsgToLogFile(errStr);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MgAdapt::appendMsgToLogFile(std::string& msg)
|
||||||
|
{
|
||||||
|
std::ofstream logStream;
|
||||||
|
logStream.open(logFile, std::ofstream::out | std::ofstream::app);
|
||||||
|
logStream<< msg;
|
||||||
|
logStream.close();
|
||||||
|
}
|
||||||
//================================================================================
|
//================================================================================
|
||||||
/*!
|
/*!
|
||||||
* \brief Return command to run MG-Tetra mesher excluding file prefix (-f)
|
* \brief Return command to run MG-Tetra mesher excluding file prefix (-f)
|
||||||
@ -717,6 +779,8 @@ std::string MgAdapt::getCommandToRun()
|
|||||||
errStr = ToComment(" failed to find .mesh or .sol file from converter ")<< strerror( errno );
|
errStr = ToComment(" failed to find .mesh or .sol file from converter ")<< strerror( errno );
|
||||||
return errStr;
|
return errStr;
|
||||||
}
|
}
|
||||||
|
tmpFilesToBeDeleted.push_back(meshIn);
|
||||||
|
tmpFilesToBeDeleted.push_back(solFileIn);
|
||||||
if(useBackgroundMap && !isFileExist(sizeMapIn))
|
if(useBackgroundMap && !isFileExist(sizeMapIn))
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -724,8 +788,7 @@ std::string MgAdapt::getCommandToRun()
|
|||||||
return errStr;
|
return errStr;
|
||||||
|
|
||||||
}
|
}
|
||||||
meshFormatOutputMesh = meshIn;
|
|
||||||
solFormatOutput.push_back(solFileIn);
|
|
||||||
|
|
||||||
cmd+= " --in "+ meshIn;
|
cmd+= " --in "+ meshIn;
|
||||||
meshFormatOutputMesh = getFileName()+".mesh";
|
meshFormatOutputMesh = getFileName()+".mesh";
|
||||||
@ -735,12 +798,22 @@ std::string MgAdapt::getCommandToRun()
|
|||||||
{
|
{
|
||||||
cmd+= " --background_mesh "+ sizeMapIn ;
|
cmd+= " --background_mesh "+ sizeMapIn ;
|
||||||
cmd+= " --background_sizemap "+ solFileIn;
|
cmd+= " --background_sizemap "+ solFileIn;
|
||||||
|
tmpFilesToBeDeleted.push_back(sizeMapIn);
|
||||||
}
|
}
|
||||||
//~else
|
//~else
|
||||||
//~{
|
//~{
|
||||||
//~// constant value TODO
|
//~// constant value TODO
|
||||||
//~}
|
//~}
|
||||||
|
/* sizemap file is not adapted in case of only surface adaptation see MeshGems docs */
|
||||||
|
std::string adapOp = "adaptation";
|
||||||
|
std::string adpOpVal = getOptionValue(adapOp);
|
||||||
|
std::string surfaceAdapt = "surface";
|
||||||
|
if(surfaceAdapt != adpOpVal )
|
||||||
|
{
|
||||||
|
std::string solFileOut = getFileName()+".sol";
|
||||||
|
cmd+= " --write_sizemap "+ solFileOut;
|
||||||
|
solFormatOutput.push_back(solFileOut);
|
||||||
|
}
|
||||||
if (verbosityLevel != defaultVerboseLevel())
|
if (verbosityLevel != defaultVerboseLevel())
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -1298,7 +1371,8 @@ void MgAdapt::getTimeStepInfos(std::string aFile, med_int& numdt, med_int& numit
|
|||||||
if ( erreur < 0 )
|
if ( erreur < 0 )
|
||||||
{
|
{
|
||||||
|
|
||||||
//~addMessage( ToComment(" error: error while reading field last time step ") << nomcha << " in file " << aFile , /*fatal=*/true );
|
//~addMessage( ToComment(" error: error while reading field ") << nomcha << "step (numdt, numit) = " <<"("<< numdt<< ", " \
|
||||||
|
numit<< ")" <<" in file " << aFile , /*fatal=*/true );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,7 +60,10 @@ struct MgAdaptHypothesisData
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class outFileStream : public std::ofstream{
|
||||||
|
public:
|
||||||
|
~outFileStream(){close();} //to close file at dtor
|
||||||
|
};
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Class to generate string from any type
|
* \brief Class to generate string from any type
|
||||||
@ -211,6 +214,7 @@ public:
|
|||||||
static double toDbl(const std::string&, bool* isOk = 0) throw (std::invalid_argument);
|
static double toDbl(const std::string&, bool* isOk = 0) throw (std::invalid_argument);
|
||||||
static bool toBool(const std::string&, bool* isOk = 0) throw (std::invalid_argument);
|
static bool toBool(const std::string&, bool* isOk = 0) throw (std::invalid_argument);
|
||||||
static int toInt(const std::string&, bool* isOk = 0 ) throw (std::invalid_argument);
|
static int toInt(const std::string&, bool* isOk = 0 ) throw (std::invalid_argument);
|
||||||
|
static std::string toLowerStr(const std::string& str);
|
||||||
|
|
||||||
|
|
||||||
/* default values */
|
/* default values */
|
||||||
@ -308,6 +312,7 @@ private :
|
|||||||
std::vector< std::string> solFormatOutput;
|
std::vector< std::string> solFormatOutput;
|
||||||
std::vector <group> groupVec;
|
std::vector <group> groupVec;
|
||||||
std::vector <family> famVec;
|
std::vector <family> famVec;
|
||||||
|
std::vector< std::string> tmpFilesToBeDeleted;
|
||||||
|
|
||||||
/* convert MED-->.mesh format */
|
/* convert MED-->.mesh format */
|
||||||
void convertMedFile(std::string& meshIn,std::string& solFileIn, std::string& sizeMapIn) ;
|
void convertMedFile(std::string& meshIn,std::string& solFileIn, std::string& sizeMapIn) ;
|
||||||
@ -325,6 +330,8 @@ private :
|
|||||||
med_idt openMedFile(const std::string aFile) ;
|
med_idt openMedFile(const std::string aFile) ;
|
||||||
bool isFileExist(std::string& fName) const;
|
bool isFileExist(std::string& fName) const;
|
||||||
void execCmd( const char* cmd, int& err);
|
void execCmd( const char* cmd, int& err);
|
||||||
|
void cleanUp();
|
||||||
|
void appendMsgToLogFile(std::string& msg);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -947,6 +947,7 @@ MgAdaptAdvWidget::MgAdaptAdvWidget( QWidget* parent, std::vector <std::string>*
|
|||||||
|
|
||||||
connect( myOptionTable, SIGNAL( itemChanged(QTreeWidgetItem *, int)), SLOT( itemChanged(QTreeWidgetItem *, int )));
|
connect( myOptionTable, SIGNAL( itemChanged(QTreeWidgetItem *, int)), SLOT( itemChanged(QTreeWidgetItem *, int )));
|
||||||
connect( addBtn, SIGNAL( clicked() ), this, SLOT( onAddOption() ) );
|
connect( addBtn, SIGNAL( clicked() ), this, SLOT( onAddOption() ) );
|
||||||
|
connect(workingDirectoryPushButton, SIGNAL(pressed()), this, SLOT(_onWorkingDirectoryPushButton()));
|
||||||
}
|
}
|
||||||
|
|
||||||
MgAdaptAdvWidget::~MgAdaptAdvWidget()
|
MgAdaptAdvWidget::~MgAdaptAdvWidget()
|
||||||
@ -1120,6 +1121,11 @@ void MgAdaptAdvWidget::setupWidget()
|
|||||||
// QMetaObject::connectSlotsByName(this);
|
// QMetaObject::connectSlotsByName(this);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
void MgAdaptAdvWidget::_onWorkingDirectoryPushButton()
|
||||||
|
{
|
||||||
|
QString aDirName=QFileDialog::getExistingDirectory ();
|
||||||
|
if (!(aDirName.isEmpty()))workingDirectoryLineEdit->setText(aDirName);
|
||||||
|
}
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
@ -280,6 +280,8 @@ public slots:
|
|||||||
|
|
||||||
void onAddOption();
|
void onAddOption();
|
||||||
void itemChanged(QTreeWidgetItem * tblRow, int column);
|
void itemChanged(QTreeWidgetItem * tblRow, int column);
|
||||||
|
private slots:
|
||||||
|
void _onWorkingDirectoryPushButton();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user