X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMEDLoader%2FMEDFileParameter.cxx;h=ceb98f8efa2202159feffffe8ce71c0e0e8281b2;hb=662a2a2393a25baef77e42f74204b11b70a9646c;hp=e50d32600846f862de7ea89cd14ae161e67e6022;hpb=30e370a928f879a1c9be2bd685cda6cabec223cf;p=tools%2Fmedcoupling.git diff --git a/src/MEDLoader/MEDFileParameter.cxx b/src/MEDLoader/MEDFileParameter.cxx index e50d32600..ceb98f8ef 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-2023 CEA, EDF // // 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,15 @@ // Author : Anthony Geay (CEA/DEN) #include "MEDFileParameter.hxx" -#include "MEDFileUtilities.hxx" +#include "MEDFileSafeCaller.txx" #include "MEDLoaderBase.hxx" +#include "MEDFileBasis.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 +51,7 @@ bool MEDFileParameter1TS::isEqual(const MEDFileParameter1TS *other, double eps, return true; } -MEDFileParameter1TS *MEDFileParameterDouble1TSWTI::deepCpy() const +MEDFileParameter1TS *MEDFileParameterDouble1TSWTI::deepCopy() const { return new MEDFileParameterDouble1TSWTI(*this); } @@ -110,13 +111,13 @@ void MEDFileParameterDouble1TSWTI::finishLoading(med_idt fid, const std::string& std::ostringstream oss; oss << "MEDFileParameterDouble1TS::finishLoading : no specified time step (" << dt << "," << it << ") ! Time steps available : "; for(int i=0;i(&_arr)); + _iteration=FromMedInt(locDt); _order=FromMedInt(locIt); _time=tim; + MEDFILESAFECALLERRD0(MEDparameterValueRd,(fid,name.c_str(),_iteration,_order,reinterpret_cast(&_arr))); return ; } else @@ -131,23 +132,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; + med_int locDt,locIt; double dt; - 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(MEDparameterComputationStepInfo,(fid,name.c_str(),timeStepId+1,&locDt,&locIt,&dt)); + _iteration=FromMedInt(locDt); _order=FromMedInt(locIt); _time=dt; + 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 +174,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 @@ -212,7 +213,7 @@ MEDFileParameterDouble1TS::MEDFileParameterDouble1TS(const std::string& fileName { MEDFileUtilities::CheckFileForRead(fileName); MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); - int nbPar=MEDnParameter(fid); + med_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); @@ -220,15 +221,15 @@ MEDFileParameterDouble1TS::MEDFileParameterDouble1TS(const std::string& fileName med_parameter_type paramType; for(int i=0;i(nbOfSteps)); return ; } else @@ -244,7 +245,7 @@ MEDFileParameterDouble1TS::MEDFileParameterDouble1TS(const std::string& fileName { MEDFileUtilities::CheckFileForRead(fileName); MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); - int nbPar=MEDnParameter(fid); + med_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); @@ -252,8 +253,8 @@ MEDFileParameterDouble1TS::MEDFileParameterDouble1TS(const std::string& fileName med_parameter_type paramType; for(int i=0;i 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); + med_int 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 +333,7 @@ bool MEDFileParameterDouble1TS::isEqual(const MEDFileParameter1TS *other, double return true; } -MEDFileParameter1TS *MEDFileParameterDouble1TS::deepCpy() const +MEDFileParameter1TS *MEDFileParameterDouble1TS::deepCopy() const { return new MEDFileParameterDouble1TS(*this); } @@ -360,7 +361,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 +371,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 +402,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); + med_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); + med_int nbOfSteps; + 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); + finishLoading(fid,paramType,FromMedInt(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); + med_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) @@ -438,7 +447,7 @@ MEDFileParameterMultiTS::MEDFileParameterMultiTS(const std::string& fileName, co _dt_unit=MEDLoaderBase::buildStringFromFortran(unitName,MED_SNAME_SIZE); _name=paramNameCpp; _desc_name=MEDLoaderBase::buildStringFromFortran(descName,MED_COMMENT_SIZE); - finishLoading(fid,paramType,nbOfSteps); + finishLoading(fid,paramType,FromMedInt(nbOfSteps)); return ; } else @@ -461,13 +470,13 @@ void MEDFileParameterMultiTS::finishLoading(med_idt fid, med_parameter_type typ, _param_per_ts.resize(nbOfSteps); for(int i=0;i(dt),FromMedInt(it),tim); _param_per_ts[i]->readValue(fid,_name.c_str()); break; /*case MED_INT32; @@ -482,19 +491,19 @@ void MEDFileParameterMultiTS::finishLoading(med_idt fid, med_parameter_type typ, 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::getDirectChildrenWithNull() const { std::vector 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++) ret.push_back((const MEDFileParameter1TS *)*it); return ret; } -MEDFileParameterMultiTS *MEDFileParameterMultiTS::deepCpy() const +MEDFileParameterMultiTS *MEDFileParameterMultiTS::deepCopy() const { return new MEDFileParameterMultiTS(*this,true); } @@ -522,29 +531,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); } } @@ -558,7 +567,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) @@ -568,9 +577,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); } @@ -597,7 +606,7 @@ 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) @@ -615,7 +624,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) @@ -654,7 +663,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]) @@ -670,7 +679,7 @@ int MEDFileParameterMultiTS::getNumberOfTS() const 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) @@ -680,13 +689,13 @@ std::vector< std::pair > MEDFileParameterMultiTS::getIterations() const } /*! - * \param [out] ret1 + * \param [out] ret1 - list of available timesteps */ std::vector< std::pair > MEDFileParameterMultiTS::getTimeSteps(std::vector& ret1) const { 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) @@ -705,25 +714,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) { - MEDFileUtilities::CheckFileForRead(fileName); - MEDFileUtilities::AutoFid fid=MEDfileOpen(fileName.c_str(),MED_ACC_RDONLY); - int nbPar=MEDnParameter(fid); + return new MEDFileParameters(fid); +} + +MEDFileParameters::MEDFileParameters(med_idt fid) +{ + med_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::getDirectChildrenWithNull() const { std::vector ret; - 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++) ret.push_back((const MEDFileParameterMultiTS *)*it); return ret; } -MEDFileParameters *MEDFileParameters::deepCpy() const +MEDFileParameters *MEDFileParameters::deepCopy() const { return new MEDFileParameters(*this,true); } @@ -770,31 +783,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); } } @@ -802,7 +808,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) @@ -827,7 +833,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) @@ -846,7 +852,7 @@ void MEDFileParameters::pushParam(MEDFileParameterMultiTS *param) { if(param) param->incrRef(); - MEDCouplingAutoRefCountObjectPtr elt(param); + MCAuto elt(param); _params.push_back(elt); } @@ -858,7 +864,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; } @@ -892,14 +898,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)