-// Copyright (C) 2007-2019 CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
if (!CheckCompatibility(fileName)) {
EXCEPTION(std::runtime_error, "Cannot open file '"<<fileName<<"'.");
}
- return new MED::TWrapper(fileName, false);
+ return new MED::TWrapper(fileName, false, nullptr);
}
- PWrapper CrWrapperW(const std::string& fileName, int theVersion)
+ PWrapper CrWrapperW(const std::string& fileName, int theVersion, TFileInternal *tfileInst)
{
bool isCreated = false;
if (!CheckCompatibility(fileName, true))
}
med_int wantedMajor = MED_MAJOR_NUM;
med_int wantedMinor = MED_MINOR_NUM;
- if (isCreated)
+ // when non managed version of file is requested : ignore it and take the latest version
+ std::vector<int> versionsOK(GetMEDVersionsAppendCompatible());
+ bool isVersionRequestedOK(std::find(versionsOK.begin(),versionsOK.end(),theVersion)!=versionsOK.end());
+ if (isCreated && isVersionRequestedOK)
{
- if (theVersion > 0)
- {
- wantedMajor = theVersion/10;
- wantedMinor = theVersion%10;
- }
+ wantedMajor = theVersion/10;
+ wantedMinor = theVersion%10;
}
- return new MED::TWrapper(fileName, true, wantedMajor, wantedMinor);
+ return new MED::TWrapper(fileName, true, tfileInst, wantedMajor, wantedMinor);
}
}