-// Copyright (C) 2007-2012 CEA/DEN, EDF R&D
+// Copyright (C) 2007-2013 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
using namespace ParaMEDMEM;
-MEDFileData *MEDFileData::New(const char *fileName) throw(INTERP_KERNEL::Exception)
+MEDFileData *MEDFileData::New(const char *fileName)
{
return new MEDFileData(fileName);
}
return new MEDFileData;
}
+MEDFileData *MEDFileData::deepCpy() const
+{
+ MEDCouplingAutoRefCountObjectPtr<MEDFileFields> fields;
+ if((const MEDFileFields *)_fields)
+ fields=_fields->deepCpy();
+ MEDCouplingAutoRefCountObjectPtr<MEDFileMeshes> meshes;
+ if((const MEDFileMeshes *)_meshes)
+ meshes=_meshes->deepCpy();
+ MEDCouplingAutoRefCountObjectPtr<MEDFileParameters> params;
+ if((const MEDFileParameters *)_params)
+ params=_params->deepCpy();
+ MEDCouplingAutoRefCountObjectPtr<MEDFileData> ret=MEDFileData::New();
+ ret->_fields=fields; ret->_meshes=meshes; ret->_params=params;
+ return ret.retn();
+}
+
+std::size_t MEDFileData::getHeapMemorySizeWithoutChildren() const
+{
+ return 0;
+}
+
+std::vector<const BigMemoryObject *> MEDFileData::getDirectChildren() const
+{
+ std::vector<const BigMemoryObject *> 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);
+ return ret;
+
+}
+
MEDFileFields *MEDFileData::getFields() const
{
return const_cast<MEDFileFields *>(static_cast<const MEDFileFields *>(_fields));
return const_cast<MEDFileMeshes *>(static_cast<const MEDFileMeshes *>(_meshes));
}
-void MEDFileData::setFields(MEDFileFields *fields) throw(INTERP_KERNEL::Exception)
+MEDFileParameters *MEDFileData::getParams() const
+{
+ return const_cast<MEDFileParameters *>(static_cast<const MEDFileParameters *>(_params));
+}
+
+void MEDFileData::setFields(MEDFileFields *fields)
{
- if(!fields)
- throw INTERP_KERNEL::Exception("MEDFileData::setFields : input pointer is null !");
- fields->incrRef();
+ if(fields)
+ fields->incrRef();
_fields=fields;
}
-void MEDFileData::setMeshes(MEDFileMeshes *meshes) throw(INTERP_KERNEL::Exception)
+void MEDFileData::setMeshes(MEDFileMeshes *meshes)
{
- if(!meshes)
- throw INTERP_KERNEL::Exception("MEDFileData::setMeshes : input pointer is null !");
- meshes->incrRef();
+ if(meshes)
+ meshes->incrRef();
_meshes=meshes;
}
-int MEDFileData::getNumberOfFields() const throw(INTERP_KERNEL::Exception)
+void MEDFileData::setParams(MEDFileParameters *params)
+{
+ if(params)
+ params->incrRef();
+ _params=params;
+}
+
+int MEDFileData::getNumberOfFields() const
{
const MEDFileFields *f=_fields;
if(!f)
return f->getNumberOfFields();
}
-int MEDFileData::getNumberOfMeshes() const throw(INTERP_KERNEL::Exception)
+int MEDFileData::getNumberOfMeshes() const
{
const MEDFileMeshes *m=_meshes;
if(!m)
return m->getNumberOfMeshes();
}
+int MEDFileData::getNumberOfParams() const
+{
+ const MEDFileParameters *p=_params;
+ if(!p)
+ throw INTERP_KERNEL::Exception("MEDFileData::getNumberOfParams : no params set !");
+ return p->getNumberOfParams();
+}
+
std::string MEDFileData::simpleRepr() const
{
std::ostringstream oss;
tmp2->simpleReprWithoutHeader(oss);
}
else
- oss << "No meshes set !!!\n";
+ oss << "No meshes set !!!\n\n";
+ oss << "Params part :\n*************\n\n";
+ const MEDFileParameters *tmp3=_params;
+ if(tmp3)
+ {
+ tmp3->simpleReprWithoutHeader(oss);
+ }
+ else
+ oss << "No params set !!!\n";
return oss.str();
}
-bool MEDFileData::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab) throw(INTERP_KERNEL::Exception)
+bool MEDFileData::changeMeshNames(const std::vector< std::pair<std::string,std::string> >& modifTab)
{
bool ret=false;
MEDFileFields *fields=_fields;
return ret;
}
-bool MEDFileData::changeMeshName(const char *oldMeshName, const char *newMeshName) throw(INTERP_KERNEL::Exception)
+bool MEDFileData::changeMeshName(const char *oldMeshName, const char *newMeshName)
{
std::string oldName(oldMeshName);
std::vector< std::pair<std::string,std::string> > v(1);
* \return If true is returned it means that some meshes in \a this has been modified and eventually fields have been renumbered.
* \n If false \a this remains unchanged.
*/
-bool MEDFileData::unPolyzeMeshes() throw(INTERP_KERNEL::Exception)
+bool MEDFileData::unPolyzeMeshes()
{
MEDFileMeshes *ms=_meshes;
if(!ms)
return false;
- bool ret=false;
std::vector< MEDFileMesh * > meshesImpacted;
std::vector< DataArrayInt * > renumParamsOfMeshImpacted;//same size as meshesImpacted
std::vector< std::vector<int> > oldCodeOfMeshImpacted,newCodeOfMeshImpacted;//same size as meshesImpacted
MEDFileFields *fs=_fields;
if(fs)
for(std::size_t i=0;i<meshesImpacted.size();i++)
- fs->renumberEntitiesLyingOnMesh(meshesImpacted[i]->getName(),oldCodeOfMeshImpacted[i],newCodeOfMeshImpacted[i],renumParamsOfMeshImpacted[i]);
+ fs->renumberEntitiesLyingOnMesh(meshesImpacted[i]->getName().c_str(),oldCodeOfMeshImpacted[i],newCodeOfMeshImpacted[i],renumParamsOfMeshImpacted[i]);
}
return !meshesImpacted.empty();
}
{
}
-MEDFileData::MEDFileData(const char *fileName) throw(INTERP_KERNEL::Exception)
+MEDFileData::MEDFileData(const char *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 throw(INTERP_KERNEL::Exception)
+void MEDFileData::write(const char *fileName, int mode) const
{
med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode);
MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName,medmod);
const MEDFileFields *fs=_fields;
if(fs)
fs->writeLL(fid);
+ const MEDFileParameters *ps=_params;
+ if(ps)
+ ps->writeLL(fid);
}