X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Mesh_i.cxx;h=499c3b75163daf0c32fdbacf4b3cc5e2136f780a;hb=1ae00d609a8f5c72ba6d2d5beb7bb4d5d04a1d67;hp=e844e24aeee6baca5fc006e891fd400331dd2626;hpb=239fc6cc6a6957fd8a778dd5c45c1c468634ef34;p=modules%2Fsmesh.git diff --git a/src/SMESH_I/SMESH_Mesh_i.cxx b/src/SMESH_I/SMESH_Mesh_i.cxx index e844e24ae..499c3b751 100644 --- a/src/SMESH_I/SMESH_Mesh_i.cxx +++ b/src/SMESH_I/SMESH_Mesh_i.cxx @@ -1,6 +1,6 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses +// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE // -// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // // This library is free software; you can redistribute it and/or @@ -17,15 +17,14 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// -// +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // +// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses // File : SMESH_Mesh_i.cxx // Author : Paul RASCLE, EDF // Module : SMESH // $Header$ - +// #include "SMESH_Mesh_i.hxx" #include "SMESH_Filter_i.hxx" @@ -72,6 +71,7 @@ #include #include #include +#include #ifdef _DEBUG_ static int MYDEBUG = 0; @@ -258,9 +258,26 @@ SMESH_Mesh_i::ImportMEDFile( const char* theFileName, const char* theMeshName ) THROW_SALOME_CORBA_EXCEPTION("ImportMEDFile(): unknown exception", SALOME::BAD_PARAM); } - myFile = theFileName; CreateGroupServants(); + int major, minor, release; + if( !MED::getMEDVersion( theFileName, major, minor, release ) ) + major = minor = release = -1; + myFileInfo = new SALOME_MED::MedFileInfo(); + myFileInfo->fileName = theFileName; + myFileInfo->fileSize = 0; +#ifdef WIN32 + struct _stati64 d; + if ( ::_stati64( theFileName, &d ) != -1 ) +#else + struct stat64 d; + if ( ::stat64( theFileName, &d ) != -1 ) +#endif + myFileInfo->fileSize = d.st_size; + myFileInfo->major = major; + myFileInfo->minor = minor; + myFileInfo->release = release; + return ConvertDriverMEDReadStatus(status); } @@ -354,6 +371,7 @@ SMESH::Hypothesis_Status SMESH_Mesh_i::ConvertHypothesisStatus RETURNCASE( HYP_BAD_DIM ); RETURNCASE( HYP_BAD_SUBSHAPE ); RETURNCASE( HYP_BAD_GEOMETRY ); + RETURNCASE( HYP_NEED_SHAPE ); default:; } return SMESH::HYP_UNKNOWN_FATAL; @@ -1775,7 +1793,7 @@ CORBA::Long SMESH_Mesh_i::NbPrismsOfOrder(SMESH::ElementOrder order) CORBA::Long SMESH_Mesh_i::NbSubMesh()throw(SALOME::SALOME_Exception) { Unexpect aCatch(SALOME_SalomeException); - return _impl->NbSubMesh(); + return _mapSubMesh_i.size(); } //============================================================================= @@ -2027,7 +2045,8 @@ SMESH::ElementType SMESH_Mesh_i::GetSubMeshElementType(const CORBA::Long ShapeID CORBA::LongLong SMESH_Mesh_i::GetMeshPtr() { CORBA::LongLong pointeur = CORBA::LongLong(_impl); - cerr << "CORBA::LongLong SMESH_Mesh_i::GetMeshPtr() " << pointeur << endl; + if ( MYDEBUG ) + MESSAGE("CORBA::LongLong SMESH_Mesh_i::GetMeshPtr() "<& groupIDs) const * \brief Return information about imported file */ //============================================================================= + SALOME_MED::MedFileInfo* SMESH_Mesh_i::GetMEDFileInfo() { - SALOME_MED::MedFileInfo_var res = new SALOME_MED::MedFileInfo(); - - const char* name = myFile.c_str(); - res->fileName = name; - res->fileSize = 0;//myFileInfo.size(); - int major, minor, release; - if( !MED::getMEDVersion( name, major, minor, release ) ) - { - major = -1; - minor = -1; - release = -1; + SALOME_MED::MedFileInfo_var res( myFileInfo ); + if ( !res.operator->() ) { + res = new SALOME_MED::MedFileInfo; + res->fileName = ""; + res->fileSize = res->major = res->minor = res->release = -1; } - res->major = major; - res->minor = minor; - res->release = release; return res._retn(); }