From a3c6d051d0c35a69994dd0bf035d865311a7791d Mon Sep 17 00:00:00 2001 From: mzn Date: Wed, 6 Dec 2006 14:40:44 +0000 Subject: [PATCH] Additional fix for bug PAL13701(EDF 319 SMESH : Export UNV failed with not enough space disk --> No user information). --- src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx | 6 ++++++ src/DriverUNV/UNV_Utilities.hxx | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx index f0c2203f3..b9554e306 100644 --- a/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx +++ b/src/DriverUNV/DriverUNV_W_SMDS_Mesh.cxx @@ -35,6 +35,7 @@ #include "UNV_Utilities.hxx" using namespace std; +using namespace UNV; namespace{ typedef std::vector TConnect; @@ -292,6 +293,11 @@ Driver_Mesh::Status DriverUNV_W_SMDS_Mesh::Perform() } UNV2417::Write(out_stream,aDataSet2417); }*/ + + out_stream.flush(); + out_stream.close(); + if (!check_file(myFile)) + EXCEPTION(runtime_error,"ERROR: Output file not good."); } catch(const std::exception& exc){ INFOS("Follow exception was cought:\n\t"< #include +#include #include #include #include @@ -87,6 +88,24 @@ namespace UNV{ } return atof (number.c_str()); } + + /** + * @returns \p false when file is incorrect, \p true otherwise. + * Check file with name \p theFileName for correct terminate + * string, i.e. the next to the last line is equal to " -1", + */ + inline bool check_file(const std::string theFileName) + { + std::ifstream in_stream(theFileName.c_str()); + if (!in_stream) + return false; + std::string olds, news; + while (!in_stream.eof()){ + olds = news; + std::getline(in_stream, news, '\n'); + } + return (olds == " -1"); + } };