This commit is contained in:
Anthony Geay 2020-04-03 10:29:14 +02:00
parent 431f7c964a
commit 009bbb825c
3 changed files with 14 additions and 15 deletions

View File

@ -194,22 +194,16 @@ namespace MED
remove(fileName.c_str());
isCreated = true;
}
int minor = -1;
med_int wantedMajor = MED_MAJOR_NUM;
med_int wantedMinor = MED_MINOR_NUM;
if (isCreated)
{
med_int wantedMajor = MED_MAJOR_NUM;
med_int wantedMinor = MED_MINOR_NUM;
if (theVersion > 0)
{
wantedMajor = theVersion/10;
wantedMinor = theVersion%10;
}
if (wantedMajor == MED_MAJOR_NUM) // the med file will be actually created
{
if (wantedMinor < MED_MINOR_NUM)
minor = wantedMinor;
}
}
return new MED::TWrapper(fileName, true, minor);
return new MED::TWrapper(fileName, true, wantedMajor, wantedMinor);
}
}

View File

@ -78,13 +78,15 @@ namespace MED
TFile(const TFile&);
public:
TFile(const std::string& theFileName, TInt theMinor=-1):
TFile(const std::string& theFileName, TInt theMajor=-1, TInt theMinor=-1):
myCount(0),
myFid(0),
myFileName(theFileName),
myMajor(theMajor),
myMinor(theMinor)
{
if ((myMinor < 0) || (myMinor > MED_MINOR_NUM)) myMinor = MED_MINOR_NUM;
if ((myMajor < 0) || (myMajor > MED_MAJOR_NUM)) myMajor = MED_MAJOR_NUM;
if ((myMinor < 0) || (myMajor == MED_MAJOR_NUM && myMinor > MED_MINOR_NUM)) myMinor = MED_MINOR_NUM;
}
~TFile()
@ -98,7 +100,7 @@ namespace MED
{
if (myCount++ == 0) {
const char* aFileName = myFileName.c_str();
myFid = MEDfileVersionOpen(aFileName,med_access_mode(theMode), MED_MAJOR_NUM, myMinor, MED_RELEASE_NUM);
myFid = MEDfileVersionOpen(aFileName,med_access_mode(theMode), myMajor, myMinor, MED_RELEASE_NUM);
}
if (theErr)
*theErr = TErr(myFid);
@ -125,6 +127,7 @@ namespace MED
TInt myCount;
TIdt myFid;
std::string myFileName;
TInt myMajor;
TInt myMinor;
};
@ -187,8 +190,9 @@ namespace MED
//---------------------------------------------------------------
TWrapper
::TWrapper(const std::string& theFileName, bool write, TInt theMinor):
myFile(new TFile(theFileName, theMinor)),
::TWrapper(const std::string& theFileName, bool write, TInt theMajor, TInt theMinor):
myFile(new TFile(theFileName, theMajor, theMinor)),
myMajor(theMajor),
myMinor(theMinor)
{
TErr aRet;

View File

@ -52,7 +52,7 @@ namespace MED
TWrapper& operator=(const TWrapper&);
public:
TWrapper(const std::string& theFileName, bool write, TInt theVersion=-1);
TWrapper(const std::string& theFileName, bool write, TInt theMajor=-1, TInt theVersion=-1);
virtual
~TWrapper();
@ -939,6 +939,7 @@ namespace MED
protected:
PFile myFile;
TInt myMajor;
TInt myMinor;
};