X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileParameter.cxx;h=e978b51afb6992c6d8811486b9379d6b517f86e5;hb=02a3cbbd9da2e5de320574b7ed541ff75baafca1;hp=4838bbba2bf3b05c4a5f7bc09d265eff32d0ddf9;hpb=659f8c67d0348350e12fde38fe8c4de1ff95dffe;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileParameter.cxx b/src/MEDLoader/MEDFileParameter.cxx index 4838bbba2..e978b51af 100644 --- a/src/MEDLoader/MEDFileParameter.cxx +++ b/src/MEDLoader/MEDFileParameter.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2014 CEA/DEN, EDF R&D +// Copyright (C) 2007-2019 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 @@ -19,14 +19,14 @@ // Author : Anthony Geay (CEA/DEN) #include "MEDFileParameter.hxx" -#include "MEDFileUtilities.hxx" +#include "MEDFileSafeCaller.txx" #include "MEDLoaderBase.hxx" #include "InterpKernelAutoPtr.hxx" #include -using namespace ParaMEDMEM; +using namespace MEDCoupling; MEDFileParameter1TS::MEDFileParameter1TS(int iteration, int order, double time):_iteration(iteration),_order(order),_time(time) { @@ -50,7 +50,7 @@ bool MEDFileParameter1TS::isEqual(const MEDFileParameter1TS *other, double eps, return true; } -MEDFileParameter1TS *MEDFileParameterDouble1TSWTI::deepCpy() const +MEDFileParameter1TS *MEDFileParameterDouble1TSWTI::deepCopy() const { return new MEDFileParameterDouble1TSWTI(*this); } @@ -72,7 +72,7 @@ std::size_t MEDFileParameterDouble1TSWTI::getHeapMemorySizeWithoutChildren() con return sizeof(MEDFileParameterDouble1TSWTI); } -std::vector MEDFileParameterDouble1TSWTI::getDirectChildren() const +std::vector MEDFileParameterDouble1TSWTI::getDirectChildrenWithNull() const { return std::vector(); } @@ -112,11 +112,11 @@ void MEDFileParameterDouble1TSWTI::finishLoading(med_idt fid, const std::string& { int locDt,locIt; double tim; - MEDparameterComputationStepInfo(fid,name.c_str(),i+1,&locDt,&locIt,&tim); + MEDFILESAFECALLERRD0(MEDparameterComputationStepInfo,(fid,name.c_str(),i+1,&locDt,&locIt,&tim)); if(dt==locDt && it==locIt) { _iteration=locDt; _order=locIt; _time=tim; - MEDparameterValueRd(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr)); + MEDFILESAFECALLERRD0(MEDparameterValueRd,(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr))); return ; } else @@ -131,23 +131,23 @@ void MEDFileParameterDouble1TSWTI::finishLoading(med_idt fid, const std::string& void MEDFileParameterDouble1TSWTI::readValue(med_idt fid, const std::string& name) { - MEDparameterValueRd(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr)); + MEDFILESAFECALLERRD0(MEDparameterValueRd,(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr))); } void MEDFileParameterDouble1TSWTI::finishLoading(med_idt fid, const std::string& name, int timeStepId) { int locDt,locIt; double dt; - MEDparameterComputationStepInfo(fid,name.c_str(),timeStepId+1,&locDt,&locIt,&dt); + MEDFILESAFECALLERRD0(MEDparameterComputationStepInfo,(fid,name.c_str(),timeStepId+1,&locDt,&locIt,&dt)); _iteration=locDt; _order=locIt; _time=dt; - MEDparameterValueRd(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr)); + MEDFILESAFECALLERRD0(MEDparameterValueRd,(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr))); } -void MEDFileParameterDouble1TSWTI::writeLL(med_idt fid, const std::string& name, const MEDFileWritable& mw) const +void MEDFileParameterDouble1TSWTI::writeAdvanced(med_idt fid, const std::string& name, const MEDFileWritable& mw) const { char nameW[MED_NAME_SIZE+1]; MEDLoaderBase::safeStrCpy(name.c_str(),MED_NAME_SIZE,nameW,mw.getTooLongStrPolicy()); - MEDparameterValueWr(fid,nameW,_iteration,_order,_time,reinterpret_cast(&_arr)); + MEDFILESAFECALLERWR0(MEDparameterValueWr,(fid,nameW,_iteration,_order,_time,reinterpret_cast(&_arr))); } std::size_t MEDFileParameterTinyInfo::getHeapMemSizeOfStrings() const @@ -173,7 +173,7 @@ void MEDFileParameterTinyInfo::writeLLHeader(med_idt fid, med_parameter_type typ MEDLoaderBase::safeStrCpy(_name.c_str(),MED_NAME_SIZE,nameW,getTooLongStrPolicy()); MEDLoaderBase::safeStrCpy(_desc_name.c_str(),MED_COMMENT_SIZE,descW,getTooLongStrPolicy()); MEDLoaderBase::safeStrCpy(_dt_unit.c_str(),MED_SNAME_SIZE,dtunitW,getTooLongStrPolicy()); - MEDparameterCr(fid,nameW,typ,descW,dtunitW); + MEDFILESAFECALLERWR0(MEDparameterCr,(fid,nameW,typ,descW,dtunitW)); } void MEDFileParameterTinyInfo::mainRepr(int bkOffset, std::ostream& oss) const @@ -221,7 +221,7 @@ MEDFileParameterDouble1TS::MEDFileParameterDouble1TS(const std::string& fileName for(int i=0;i unitName=MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE); med_parameter_type paramType; int nbOfSteps; - MEDparameterInfo(fid,1,pName,¶mType,descName,unitName,&nbOfSteps); + MEDFILESAFECALLERRD0(MEDparameterInfo,(fid,1,pName,¶mType,descName,unitName,&nbOfSteps)); std::string paramNameCpp=MEDLoaderBase::buildStringFromFortran(pName,MED_NAME_SIZE); if(paramType==MED_FLOAT64) { @@ -332,7 +332,7 @@ bool MEDFileParameterDouble1TS::isEqual(const MEDFileParameter1TS *other, double return true; } -MEDFileParameter1TS *MEDFileParameterDouble1TS::deepCpy() const +MEDFileParameter1TS *MEDFileParameterDouble1TS::deepCopy() const { return new MEDFileParameterDouble1TS(*this); } @@ -350,7 +350,7 @@ std::size_t MEDFileParameterDouble1TS::getHeapMemorySizeWithoutChildren() const return getHeapMemSizeOfStrings()+sizeof(MEDFileParameterDouble1TS); } -std::vector MEDFileParameterDouble1TS::getDirectChildren() const +std::vector MEDFileParameterDouble1TS::getDirectChildrenWithNull() const { return std::vector(); } @@ -360,7 +360,7 @@ void MEDFileParameterDouble1TS::write(const std::string& fileName, int mode) con med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); MEDFileParameterTinyInfo::writeLLHeader(fid,MED_FLOAT64); - MEDFileParameterDouble1TSWTI::writeLL(fid,_name,*this); + MEDFileParameterDouble1TSWTI::writeAdvanced(fid,_name,*this); } MEDFileParameterMultiTS *MEDFileParameterMultiTS::New() @@ -370,12 +370,24 @@ MEDFileParameterMultiTS *MEDFileParameterMultiTS::New() MEDFileParameterMultiTS *MEDFileParameterMultiTS::New(const std::string& fileName) { - return new MEDFileParameterMultiTS(fileName); + MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName)); + return New(fid); +} + +MEDFileParameterMultiTS *MEDFileParameterMultiTS::New(med_idt fid) +{ + return new MEDFileParameterMultiTS(fid); } MEDFileParameterMultiTS *MEDFileParameterMultiTS::New(const std::string& fileName, const std::string& paramName) { - return new MEDFileParameterMultiTS(fileName,paramName); + MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName)); + return New(fid,paramName); +} + +MEDFileParameterMultiTS *MEDFileParameterMultiTS::New(med_idt fid, const std::string& paramName) +{ + return new MEDFileParameterMultiTS(fid,paramName); } MEDFileParameterMultiTS::MEDFileParameterMultiTS() @@ -389,48 +401,44 @@ MEDFileParameterMultiTS::MEDFileParameterMultiTS(const MEDFileParameterMultiTS& { const MEDFileParameter1TS *elt=_param_per_ts[i]; if(elt) - _param_per_ts[i]=elt->deepCpy(); + _param_per_ts[i]=elt->deepCopy(); } } -MEDFileParameterMultiTS::MEDFileParameterMultiTS(const std::string& fileName) +MEDFileParameterMultiTS::MEDFileParameterMultiTS(med_idt fid) { - MEDFileUtilities::CheckFileForRead(fileName); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); - int nbPar=MEDnParameter(fid); + int nbPar(MEDnParameter(fid)); if(nbPar<1) { - std::ostringstream oss; oss << "MEDFileParameterMultiTS : no parameter in file \"" << fileName << "\" !" ; + std::ostringstream oss; oss << "MEDFileParameterMultiTS : no parameter in file \"" << FileNameFromFID(fid) << "\" !" ; throw INTERP_KERNEL::Exception(oss.str().c_str()); } - INTERP_KERNEL::AutoPtr pName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE); - INTERP_KERNEL::AutoPtr descName=MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE); - INTERP_KERNEL::AutoPtr unitName=MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE); + INTERP_KERNEL::AutoPtr pName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); + INTERP_KERNEL::AutoPtr descName(MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE)); + INTERP_KERNEL::AutoPtr unitName(MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE)); med_parameter_type paramType; int nbOfSteps; - MEDparameterInfo(fid,1,pName,¶mType,descName,unitName,&nbOfSteps); - std::string paramNameCpp=MEDLoaderBase::buildStringFromFortran(pName,MED_NAME_SIZE); + MEDFILESAFECALLERRD0(MEDparameterInfo,(fid,1,pName,¶mType,descName,unitName,&nbOfSteps)); + std::string paramNameCpp(MEDLoaderBase::buildStringFromFortran(pName,MED_NAME_SIZE)); _dt_unit=MEDLoaderBase::buildStringFromFortran(unitName,MED_SNAME_SIZE); _name=paramNameCpp; _desc_name=MEDLoaderBase::buildStringFromFortran(descName,MED_COMMENT_SIZE); finishLoading(fid,paramType,nbOfSteps); } -MEDFileParameterMultiTS::MEDFileParameterMultiTS(const std::string& fileName, const std::string& paramName) +MEDFileParameterMultiTS::MEDFileParameterMultiTS(med_idt fid, const std::string& paramName) { - MEDFileUtilities::CheckFileForRead(fileName); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); - int nbPar=MEDnParameter(fid); + int nbPar(MEDnParameter(fid)); std::ostringstream oss; oss << "MEDFileParameterDouble1TS : no double param name \"" << paramName << "\" ! Double Parameters available are : "; - INTERP_KERNEL::AutoPtr pName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE); - INTERP_KERNEL::AutoPtr descName=MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE); - INTERP_KERNEL::AutoPtr unitName=MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE); + INTERP_KERNEL::AutoPtr pName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); + INTERP_KERNEL::AutoPtr descName(MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE)); + INTERP_KERNEL::AutoPtr unitName(MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE)); med_parameter_type paramType; for(int i=0;i0) @@ -463,9 +471,9 @@ void MEDFileParameterMultiTS::finishLoading(med_idt fid, med_parameter_type typ, { int dt,it; double tim; - MEDparameterComputationStepInfo(fid,_name.c_str(),i+1,&dt,&it,&tim); + MEDFILESAFECALLERRD0(MEDparameterComputationStepInfo,(fid,_name.c_str(),i+1,&dt,&it,&tim)); switch(typ) - { + { case MED_FLOAT64: _param_per_ts[i]=MEDFileParameterDouble1TSWTI::New(dt,it,tim); _param_per_ts[i]->readValue(fid,_name.c_str()); @@ -475,30 +483,26 @@ void MEDFileParameterMultiTS::finishLoading(med_idt fid, med_parameter_type typ, break;*/ default: throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::finishLoading : supporting only FLOAT64 !"); - } + } } } std::size_t MEDFileParameterMultiTS::getHeapMemorySizeWithoutChildren() const { std::size_t ret(sizeof(MEDFileParameterMultiTS)); - ret+=sizeof(MEDCouplingAutoRefCountObjectPtr)*_param_per_ts.capacity(); + ret+=sizeof(MCAuto)*_param_per_ts.capacity(); return ret; } -std::vector MEDFileParameterMultiTS::getDirectChildren() const +std::vector MEDFileParameterMultiTS::getDirectChildrenWithNull() const { std::vector ret; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) - { - const MEDFileParameter1TS *elt(*it); - if(elt) - ret.push_back(elt); - } + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + ret.push_back((const MEDFileParameter1TS *)*it); return ret; } -MEDFileParameterMultiTS *MEDFileParameterMultiTS::deepCpy() const +MEDFileParameterMultiTS *MEDFileParameterMultiTS::deepCopy() const { return new MEDFileParameterMultiTS(*this,true); } @@ -526,29 +530,29 @@ void MEDFileParameterMultiTS::write(const std::string& fileName, int mode) const { med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); - writeLL(fid,*this); + writeAdvanced(fid,*this); } -void MEDFileParameterMultiTS::writeLL(med_idt fid, const MEDFileWritable& mw) const +void MEDFileParameterMultiTS::writeAdvanced(med_idt fid, const MEDFileWritable& mw) const { std::set diffType; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) { const MEDFileParameter1TS *elt(*it); if(dynamic_cast(elt)) diffType.insert(MED_FLOAT64); } if(diffType.size()>1) - throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::writeLL : impossible to mix type of data in parameters in MED file ! Only float64 or only int32 ..."); + throw INTERP_KERNEL::Exception("MEDFileParameterMultiTS::writeAdvanced : impossible to mix type of data in parameters in MED file ! Only float64 or only int32 ..."); if(diffType.empty()) return; - med_parameter_type typ=*diffType.begin(); + med_parameter_type typ(*diffType.begin()); MEDFileParameterTinyInfo::writeLLHeader(fid,typ); - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) { const MEDFileParameter1TS *elt(*it); if(elt) - elt->writeLL(fid,_name,mw); + elt->writeAdvanced(fid,_name,mw); } } @@ -562,7 +566,7 @@ std::string MEDFileParameterMultiTS::simpleRepr() const void MEDFileParameterMultiTS::simpleRepr2(int bkOffset, std::ostream& oss) const { MEDFileParameterTinyInfo::mainRepr(bkOffset,oss); - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) { const MEDFileParameter1TS *elt(*it); if(elt) @@ -572,9 +576,9 @@ void MEDFileParameterMultiTS::simpleRepr2(int bkOffset, std::ostream& oss) const void MEDFileParameterMultiTS::appendValue(int dt, int it, double time, double val) { - MEDCouplingAutoRefCountObjectPtr elt=MEDFileParameterDouble1TSWTI::New(dt,it,time); + MCAuto elt=MEDFileParameterDouble1TSWTI::New(dt,it,time); elt->setValue(val); - MEDCouplingAutoRefCountObjectPtr elt2((MEDFileParameterDouble1TSWTI*)elt); elt2->incrRef(); + MCAuto elt2((MEDFileParameterDouble1TSWTI*)elt); elt2->incrRef(); _param_per_ts.push_back(elt2); } @@ -601,12 +605,12 @@ int MEDFileParameterMultiTS::getPosOfTimeStep(int iteration, int order) const { int ret=0; std::ostringstream oss; oss << "MEDFileParameterMultiTS::getPosOfTimeStep : no such iteration=" << iteration << " order=" << order << " ! Possibilities are :"; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++,ret++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++,ret++) { const MEDFileParameter1TS *elt(*it); if(elt) { - if(elt->getIteration()==iteration && elt->getOrder()) + if(elt->getIteration()==iteration && elt->getOrder()==order) return ret; else oss << "(" << elt->getIteration() << "," << elt->getOrder() << "), "; @@ -619,7 +623,7 @@ int MEDFileParameterMultiTS::getPosGivenTime(double time, double eps) const { int ret=0; std::ostringstream oss; oss << "MEDFileParameterMultiTS::getPosGivenTime : no such time=" << time << " ! Possibilities are :"; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++,ret++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++,ret++) { const MEDFileParameter1TS *elt(*it); if(elt) @@ -658,7 +662,7 @@ void MEDFileParameterMultiTS::eraseTimeStepIds(const int *startIds, const int *e std::ostringstream oss; oss << "MEDFileParameterMultiTS::eraseTimeStepIds : At pos #" << std::distance(startIds,w) << " value is " << *w << " should be in [0," << len << ") !"; throw INTERP_KERNEL::Exception(oss.str().c_str()); } std::size_t newNb=std::count(b.begin(),b.end(),true); - std::vector< MEDCouplingAutoRefCountObjectPtr > paramPerTs(newNb); + std::vector< MCAuto > paramPerTs(newNb); std::size_t j=0; for(std::size_t i=0;i<_param_per_ts.size();i++) if(b[i]) @@ -666,10 +670,15 @@ void MEDFileParameterMultiTS::eraseTimeStepIds(const int *startIds, const int *e _param_per_ts=paramPerTs; } +int MEDFileParameterMultiTS::getNumberOfTS() const +{ + return (int) getIterations().size(); +} + std::vector< std::pair > MEDFileParameterMultiTS::getIterations() const { std::vector< std::pair > ret; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) { const MEDFileParameter1TS *elt(*it); if(elt) @@ -685,7 +694,7 @@ std::vector< std::pair > MEDFileParameterMultiTS::getTimeSteps(std::vec { std::vector< std::pair > ret0; ret1.clear(); - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) + for(std::vector< MCAuto >::const_iterator it=_param_per_ts.begin();it!=_param_per_ts.end();it++) { const MEDFileParameter1TS *elt(*it); if(elt) @@ -704,25 +713,29 @@ MEDFileParameters *MEDFileParameters::New() MEDFileParameters *MEDFileParameters::New(const std::string& fileName) { - return new MEDFileParameters(fileName); + MEDFileUtilities::AutoFid fid(OpenMEDFileForRead(fileName)); + return New(fid); } -MEDFileParameters::MEDFileParameters(const std::string& fileName) +MEDFileParameters *MEDFileParameters::New(med_idt fid) +{ + return new MEDFileParameters(fid); +} + +MEDFileParameters::MEDFileParameters(med_idt fid) { - MEDFileUtilities::CheckFileForRead(fileName); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); int nbPar=MEDnParameter(fid); _params.resize(nbPar); - INTERP_KERNEL::AutoPtr pName=MEDLoaderBase::buildEmptyString(MED_NAME_SIZE); - INTERP_KERNEL::AutoPtr descName=MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE); - INTERP_KERNEL::AutoPtr unitName=MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE); + INTERP_KERNEL::AutoPtr pName(MEDLoaderBase::buildEmptyString(MED_NAME_SIZE)); + INTERP_KERNEL::AutoPtr descName(MEDLoaderBase::buildEmptyString(MED_COMMENT_SIZE)); + INTERP_KERNEL::AutoPtr unitName(MEDLoaderBase::buildEmptyString(MED_SNAME_SIZE)); med_parameter_type paramType; for(int i=0;i)*_params.capacity(); + ret+=sizeof(MCAuto)*_params.capacity(); return ret; } -std::vector MEDFileParameters::getDirectChildren() const +std::vector MEDFileParameters::getDirectChildrenWithNull() const { std::vector ret; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_params.begin();it!=_params.end();it++) - { - const MEDFileParameterMultiTS *elt(*it); - if(elt) - ret.push_back(elt); - } + for(std::vector< MCAuto >::const_iterator it=_params.begin();it!=_params.end();it++) + ret.push_back((const MEDFileParameterMultiTS *)*it); return ret; } -MEDFileParameters *MEDFileParameters::deepCpy() const +MEDFileParameters *MEDFileParameters::deepCopy() const { return new MEDFileParameters(*this,true); } @@ -773,31 +782,24 @@ bool MEDFileParameters::isEqual(const MEDFileParameters *other, double eps, std: return true; } -MEDFileParameters::MEDFileParameters(const MEDFileParameters& other, bool deepCopy):MEDFileWritable(other),_params(other._params) +MEDFileParameters::MEDFileParameters(const MEDFileParameters& other, bool deepCopy):MEDFileWritableStandAlone(other),_params(other._params) { if(deepCopy) for(std::size_t i=0;i<_params.size();i++) { const MEDFileParameterMultiTS *elt=_params[i]; if(elt) - _params[i]=elt->deepCpy(); + _params[i]=elt->deepCopy(); } } -void MEDFileParameters::write(const std::string& fileName, int mode) const -{ - med_access_mode medmod=MEDFileUtilities::TraduceWriteMode(mode); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),medmod); - writeLL(fid); -} - void MEDFileParameters::writeLL(med_idt fid) const { - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_params.begin();it!=_params.end();it++) + for(std::vector< MCAuto >::const_iterator it=_params.begin();it!=_params.end();it++) { const MEDFileParameterMultiTS *elt(*it); if(elt) - elt->writeLL(fid,*this); + elt->writeAdvanced(fid,*this); } } @@ -805,7 +807,7 @@ std::vector MEDFileParameters::getParamsNames() const { std::vector ret(_params.size()); int i=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_params.begin();it!=_params.end();it++,i++) + for(std::vector< MCAuto >::const_iterator it=_params.begin();it!=_params.end();it++,i++) { const MEDFileParameterMultiTS *p=(*it); if(p) @@ -830,7 +832,7 @@ std::string MEDFileParameters::simpleRepr() const void MEDFileParameters::simpleReprWithoutHeader(std::ostream& oss) const { - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_params.begin();it!=_params.end();it++) + for(std::vector< MCAuto >::const_iterator it=_params.begin();it!=_params.end();it++) { const MEDFileParameterMultiTS *elt(*it); if(elt) @@ -849,7 +851,7 @@ void MEDFileParameters::pushParam(MEDFileParameterMultiTS *param) { if(param) param->incrRef(); - MEDCouplingAutoRefCountObjectPtr elt(param); + MCAuto elt(param); _params.push_back(elt); } @@ -861,7 +863,7 @@ void MEDFileParameters::setParamAtPos(int i, MEDFileParameterMultiTS *param) _params.resize(i+1); if(param) param->incrRef(); - MEDCouplingAutoRefCountObjectPtr elt(param); + MCAuto elt(param); _params[i]=elt; } @@ -895,14 +897,14 @@ void MEDFileParameters::destroyParamAtPos(int i) std::ostringstream oss; oss << "MEDFileParameters::destroyParamAtPos : should be in [0," << _params.size() << ") !"; throw INTERP_KERNEL::Exception(oss.str().c_str()); } - _params[i]=MEDCouplingAutoRefCountObjectPtr(0); + _params[i]=MCAuto(0); } int MEDFileParameters::getPosFromParamName(const std::string& paramName) const { std::ostringstream oss; oss << "MEDFileParameters::getPosFromParamName : no such name=" << paramName << " ! Possibilities are :"; int ret=0; - for(std::vector< MEDCouplingAutoRefCountObjectPtr >::const_iterator it=_params.begin();it!=_params.end();it++,ret++) + for(std::vector< MCAuto >::const_iterator it=_params.begin();it!=_params.end();it++,ret++) { const MEDFileParameterMultiTS *elt(*it); if(elt)