X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileData.cxx;h=a979b38f503a22e2f763c2a1dddf60db46b5f6cc;hb=1ca2b215a1ae474745fabc87dd9c5c98e9af6354;hp=ba72ae4648e58412161b9493c022e78af30e8171;hpb=ba46d95e15064cd3768d78ec9ffff33bb72fcec5;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileData.cxx b/src/MEDLoader/MEDFileData.cxx index ba72ae464..a979b38f5 100644 --- a/src/MEDLoader/MEDFileData.cxx +++ b/src/MEDLoader/MEDFileData.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2015 CEA/DEN, 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 @@ -22,7 +22,7 @@ using namespace ParaMEDMEM; -MEDFileData *MEDFileData::New(const char *fileName) +MEDFileData *MEDFileData::New(const std::string& fileName) { return new MEDFileData(fileName); } @@ -43,6 +43,7 @@ MEDFileData *MEDFileData::deepCpy() const MEDCouplingAutoRefCountObjectPtr params; if((const MEDFileParameters *)_params) params=_params->deepCpy(); + MEDCouplingAutoRefCountObjectPtr joints; MEDCouplingAutoRefCountObjectPtr ret=MEDFileData::New(); ret->_fields=fields; ret->_meshes=meshes; ret->_params=params; return ret.retn(); @@ -53,29 +54,29 @@ std::size_t MEDFileData::getHeapMemorySizeWithoutChildren() const return 0; } -std::vector MEDFileData::getDirectChildren() const +std::vector MEDFileData::getDirectChildrenWithNull() const { std::vector ret; - if((const MEDFileFields *)_fields) - ret.push_back((const MEDFileFields *)_fields); - if((const MEDFileMeshes *)_meshes) - ret.push_back((const MEDFileMeshes *)_meshes); - if((const MEDFileParameters *)_params) - ret.push_back((const MEDFileParameters *)_params); + ret.push_back((const MEDFileFields *)_fields); + ret.push_back((const MEDFileMeshes *)_meshes); + ret.push_back((const MEDFileParameters *)_params); return ret; - + } +/** Return a borrowed reference (caller is not responsible for object destruction) */ MEDFileFields *MEDFileData::getFields() const { return const_cast(static_cast(_fields)); } +/** Return a borrowed reference (caller is not responsible for object destruction) */ MEDFileMeshes *MEDFileData::getMeshes() const { return const_cast(static_cast(_meshes)); } +/** Return a borrowed reference (caller is not responsible for object destruction) */ MEDFileParameters *MEDFileData::getParams() const { return const_cast(static_cast(_params)); @@ -169,7 +170,7 @@ bool MEDFileData::changeMeshNames(const std::vector< std::pair > v(1); @@ -214,7 +215,7 @@ bool MEDFileData::unPolyzeMeshes() MEDFileFields *fs=_fields; if(fs) for(std::size_t i=0;irenumberEntitiesLyingOnMesh(meshesImpacted[i]->getName().c_str(),oldCodeOfMeshImpacted[i],newCodeOfMeshImpacted[i],renumParamsOfMeshImpacted[i]); + fs->renumberEntitiesLyingOnMesh(meshesImpacted[i]->getName(),oldCodeOfMeshImpacted[i],newCodeOfMeshImpacted[i],renumParamsOfMeshImpacted[i]); } return !meshesImpacted.empty(); } @@ -223,22 +224,22 @@ MEDFileData::MEDFileData() { } -MEDFileData::MEDFileData(const char *fileName) +MEDFileData::MEDFileData(const std::string& fileName) try - { +{ _fields=MEDFileFields::New(fileName); _meshes=MEDFileMeshes::New(fileName); _params=MEDFileParameters::New(fileName); - } +} catch(INTERP_KERNEL::Exception& e) - { +{ throw e; - } +} -void MEDFileData::write(const char *fileName, int mode) const +void MEDFileData::write(const std::string& fileName, int mode) const { med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName,medmod); + MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); const MEDFileMeshes *ms=_meshes; if(ms) ms->write(fid);