diff --git a/alien/inc/TAlienFile.h b/alien/inc/TAlienFile.h index f3e643a5b6697c51862af12f4dc667a1c69a6489..f0c177ed87fb844272377bcab77364d86d855814 100644 --- a/alien/inc/TAlienFile.h +++ b/alien/inc/TAlienFile.h @@ -1,4 +1,4 @@ -// @(#)root/alien:$Name: $:$Id: TAlienFile.h,v 1.0 2003/09/11 10:00:00 peters Exp $ +// @(#)root/alien:$Name: $:$Id: TAlienFile.h,v 1.1 2003/11/13 15:15:11 rdm Exp $ // Author: Andreas Peters 11/09/2003 /************************************************************************* @@ -41,21 +41,21 @@ class TAlienFile : public TFile { private: - TUrl fUrl; //URL of file - Seek_t fOffset; //seek offet - TFile *fSubFile; //sub file (PFN) + TUrl fUrl; //URL of file + Long64_t fOffset; //seek offet + TFile *fSubFile; //sub file (PFN) TAlienFile() : fUrl("dummy") { } // Interface to basic system I/O routines - Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - Int_t SysClose(Int_t fd); - Int_t SysRead(Int_t fd, void *buf, Int_t len); - Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, - Long_t *modtime); - Int_t SysSync(Int_t); + Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + Int_t SysClose(Int_t fd); + Int_t SysRead(Int_t fd, void *buf, Int_t len); + Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, + Long_t *modtime); + Int_t SysSync(Int_t); public: TAlienFile(const char *url, Option_t * option = "", diff --git a/alien/src/TAlienFile.cxx b/alien/src/TAlienFile.cxx index 8e9f3ff8333674687e823862c779d8055d770f65..a390aa47b1f41979eea8a494d8f97b45539c0592 100644 --- a/alien/src/TAlienFile.cxx +++ b/alien/src/TAlienFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/alien:$Name: $:$Id: TAlienFile.cxx,v 1.0 2003/11/11 10:00:00 peters Exp $ +// @(#)root/alien:$Name: $:$Id: TAlienFile.cxx,v 1.1 2003/11/13 15:15:11 rdm Exp $ // Author: Andreas Peters 11/09/2003 /************************************************************************* @@ -379,7 +379,7 @@ Int_t TAlienFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TAlienFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TAlienFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { // Interface to system lseek. All arguments like in "man 2 lseek" // except that the offset and return value are Long_t to be able to diff --git a/base/inc/TDirectory.h b/base/inc/TDirectory.h index 0f20e62f3b6d2a449116640d15f5573e41068962..2bb95418a10eb714b595216b3ada5f87693df711 100644 --- a/base/inc/TDirectory.h +++ b/base/inc/TDirectory.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TDirectory.h,v 1.14 2003/01/02 22:36:30 brun Exp $ +// @(#)root/base:$Name: $:$Id: TDirectory.h,v 1.15 2003/01/17 13:58:37 brun Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -47,9 +47,9 @@ protected: TDatime fDatimeM; //Date and time of last modification Int_t fNbytesKeys; //Number of bytes for the keys Int_t fNbytesName; //Number of bytes in TNamed at creation time - Seek_t fSeekDir; //Location of directory on file - Seek_t fSeekParent; //Location of parent directory on file - Seek_t fSeekKeys; //Location of Keys record on file + Long64_t fSeekDir; //Location of directory on file + Long64_t fSeekParent; //Location of parent directory on file + Long64_t fSeekKeys; //Location of Keys record on file TFile *fFile; //pointer to current file in memory TObject *fMother; //pointer to mother of the directory TList *fList; //Pointer to objects list in memory @@ -98,9 +98,9 @@ public: TObject *GetMother() const { return fMother; } virtual Int_t GetNbytesKeys() const {return fNbytesKeys;} virtual Int_t GetNkeys() const {return fKeys->GetSize();} - virtual Seek_t GetSeekDir() const { return fSeekDir; } - virtual Seek_t GetSeekParent() const { return fSeekParent; } - virtual Seek_t GetSeekKeys() const { return fSeekKeys; } + virtual Long64_t GetSeekDir() const { return fSeekDir; } + virtual Long64_t GetSeekParent() const { return fSeekParent; } + virtual Long64_t GetSeekKeys() const { return fSeekKeys; } virtual const char *GetPath() const; TUUID GetUUID() const {return fUUID;} Bool_t IsFolder() const { return kTRUE; } @@ -129,7 +129,7 @@ public: static void DecodeNameCycle(const char *namecycle, char *name, Short_t &cycle); static void EncodeNameCycle(char *buffer, const char *name, Short_t cycle); - ClassDef(TDirectory,3) //Describe directory structure in memory + ClassDef(TDirectory,4) //Describe directory structure in memory }; R__EXTERN TDirectory *gDirectory; diff --git a/base/inc/TFile.h b/base/inc/TFile.h index df222b969052417c840e47b539f6e893acf9f5f1..e3ee0485e10081daa687c0f793f3024ab679db57 100644 --- a/base/inc/TFile.h +++ b/base/inc/TFile.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.h,v 1.28 2003/02/26 10:11:50 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFile.h,v 1.29 2003/04/28 10:18:38 rdm Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -39,10 +39,10 @@ protected: Double_t fSum2Buffer; //Sum of squares of buffer sizes of objects written so far Double_t fBytesWrite; //Number of bytes written to this file Double_t fBytesRead; //Number of bytes read from this file - Seek_t fBEGIN; //First used byte in file - Seek_t fEND; //Last used byte in file - Seek_t fSeekFree; //Location on disk of free segments structure - Seek_t fSeekInfo; //Location on disk of StreamerInfo record + Long64_t fBEGIN; //First used byte in file + Long64_t fEND; //Last used byte in file + Long64_t fSeekFree; //Location on disk of free segments structure + Long64_t fSeekInfo; //Location on disk of StreamerInfo record Int_t fD; //File descriptor Int_t fVersion; //File format version Int_t fCompress; //Compression level from 0(not compressed) to 9 (max compression) @@ -64,13 +64,13 @@ protected: void Init(Bool_t create); // Interface to basic system I/O routines - virtual Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - virtual Int_t SysClose(Int_t fd); - virtual Int_t SysRead(Int_t fd, void *buf, Int_t len); - virtual Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - virtual Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - virtual Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); - virtual Int_t SysSync(Int_t fd); + virtual Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + virtual Int_t SysClose(Int_t fd); + virtual Int_t SysRead(Int_t fd, void *buf, Int_t len); + virtual Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + virtual Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + virtual Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); + virtual Int_t SysSync(Int_t fd); private: TFile(const TFile &); //Files cannot be copied @@ -101,7 +101,7 @@ public: TArrayC *GetClassIndex() const { return fClassIndex; } Int_t GetCompressionLevel() const { return fCompress; } Float_t GetCompressionFactor(); - virtual Seek_t GetEND() const { return fEND; } + virtual Long64_t GetEND() const { return fEND; } virtual Int_t GetErrno() const; virtual void ResetErrno() const; Int_t GetFd() const { return fD; } @@ -113,17 +113,17 @@ public: Double_t GetBytesRead() const { return fBytesRead; } Double_t GetBytesWritten() const { return fBytesWrite; } Int_t GetVersion() const { return fVersion; } - Int_t GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); + Int_t GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); virtual Int_t GetNbytesInfo() const {return fNbytesInfo;} virtual Int_t GetNbytesFree() const {return fNbytesFree;} - virtual Seek_t GetSeekFree() const {return fSeekFree;} - virtual Seek_t GetSeekInfo() const {return fSeekInfo;} - virtual Seek_t GetSize() const; + virtual Long64_t GetSeekFree() const {return fSeekFree;} + virtual Long64_t GetSeekInfo() const {return fSeekInfo;} + virtual Long64_t GetSize() const; TList *GetStreamerInfoList(); virtual void IncrementProcessIDs() {fNProcessIDs++;} virtual Bool_t IsOpen() const; virtual void ls(Option_t *option="") const; - virtual void MakeFree(Seek_t first, Seek_t last); + virtual void MakeFree(Long64_t first, Long64_t last); virtual void MakeProject(const char *dirname, const char *classes="*", Option_t *option="new"); // *MENU* virtual void Map(); // *MENU* virtual void Paint(Option_t *option=""); @@ -133,9 +133,9 @@ public: virtual void ReadStreamerInfo(); virtual Int_t Recover(); virtual Int_t ReOpen(Option_t *mode); - virtual void Seek(Seek_t offset, ERelativeTo pos = kBeg); + virtual void Seek(Long64_t offset, ERelativeTo pos = kBeg); virtual void SetCompressionLevel(Int_t level=1); - virtual void SetEND(Seek_t last) { fEND = last; } + virtual void SetEND(Long64_t last) { fEND = last; } virtual void SetOption(Option_t *option=">") { fOption = option; } virtual void ShowStreamerInfo(); virtual Int_t Sizeof() const; @@ -157,7 +157,7 @@ public: static void SetFileBytesRead(Double_t bytes=0); static void SetFileBytesWritten(Double_t bytes=0); - ClassDef(TFile,4) //ROOT file + ClassDef(TFile,5) //ROOT file }; R__EXTERN TFile *gFile; diff --git a/base/inc/TFree.h b/base/inc/TFree.h index 57b57685b3a635bb0f3b3aab0af811c1a186dc78..99a8349f5fc6d7004908600501393fa3664da05c 100644 --- a/base/inc/TFree.h +++ b/base/inc/TFree.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFree.h,v 1.3 2000/12/13 15:13:45 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFree.h,v 1.4 2003/02/26 10:11:50 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -29,21 +29,21 @@ class TFree : public TObject { protected: - Seek_t fFirst; //First free word of segment - Seek_t fLast; //Last free word of segment + Long64_t fFirst; //First free word of segment + Long64_t fLast; //Last free word of segment public: TFree(); - TFree(TList *lfree, Seek_t first, Seek_t last); + TFree(TList *lfree, Long64_t first, Long64_t last); virtual ~TFree(); - TFree *AddFree(TList *lfree, Seek_t first, Seek_t last); + TFree *AddFree(TList *lfree, Long64_t first, Long64_t last); virtual void FillBuffer(char *&buffer); - TFree *GetBestFree(TList *lfree, Int_t nbytes); - Seek_t GetFirst() const {return fFirst;} - Seek_t GetLast() const {return fLast;} + TFree *GetBestFree(TList *lfree, Int_t nbytes); + Long64_t GetFirst() const {return fFirst;} + Long64_t GetLast() const {return fLast;} virtual void ReadBuffer(char *&buffer); - void SetFirst(Seek_t first) {fFirst=first;} - void SetLast(Seek_t last) {fLast=last;} + void SetFirst(Long64_t first) {fFirst=first;} + void SetLast(Long64_t last) {fLast=last;} Int_t Sizeof() const; ClassDef(TFree,1) //Description of free segments on a file diff --git a/base/inc/TKey.h b/base/inc/TKey.h index 823c7ba88ab8650f0f2e91b41c678c0382ad8e46..4b0e0e1ff5e6eae690a1e9bd6b9e20a52ebe1afd 100644 --- a/base/inc/TKey.h +++ b/base/inc/TKey.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TKey.h,v 1.6 2002/02/02 11:54:34 brun Exp $ +// @(#)root/base:$Name: $:$Id: TKey.h,v 1.7 2002/04/04 08:58:49 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -43,12 +43,12 @@ protected: TDatime fDatime; //Date/Time of insertion in file Short_t fKeylen; //Number of bytes for the key itself Short_t fCycle; //Cycle number - Seek_t fSeekKey; //Location of object on file - Seek_t fSeekPdir; //Location of parent directory on file + Long64_t fSeekKey; //Location of object on file + Long64_t fSeekPdir; //Location of parent directory on file TString fClassName; //Object Class name Int_t fLeft; //Number of bytes left in current segment - char *fBuffer; //Object buffer - TBuffer *fBufferRef; //Pointer to the TBuffer object + char *fBuffer; //Object buffer + TBuffer *fBufferRef; //Pointer to the TBuffer object virtual void Create(Int_t nbytes); virtual Int_t Read(const char *name) { return TObject::Read(name); } @@ -58,7 +58,7 @@ public: TKey(const char *name, const char *title, TClass *cl, Int_t nbytes); TKey(const TString &name, const TString &title, TClass *cl, Int_t nbytes); TKey(TObject *obj, const char *name, Int_t bufsize); - TKey(Seek_t pointer, Int_t nbytes); + TKey(Long64_t pointer, Int_t nbytes); virtual ~TKey(); virtual void Browse(TBrowser *b); virtual void Delete(Option_t *option=""); @@ -69,12 +69,12 @@ public: TBuffer *GetBufferRef() const {return fBufferRef;} Short_t GetCycle() const ; Short_t GetKeep() const; - Int_t GetKeylen() const {return fKeylen;} - Int_t GetNbytes() const {return fNbytes;} - Int_t GetObjlen() const {return fObjlen;} - Int_t GetVersion() const {return fVersion;} - virtual Seek_t GetSeekKey() const {return fSeekKey;} - virtual Seek_t GetSeekPdir() const {return fSeekPdir;} + Int_t GetKeylen() const {return fKeylen;} + Int_t GetNbytes() const {return fNbytes;} + Int_t GetObjlen() const {return fObjlen;} + Int_t GetVersion() const {return fVersion;} + virtual Long64_t GetSeekKey() const {return fSeekKey;} + virtual Long64_t GetSeekPdir() const {return fSeekPdir;} virtual ULong_t Hash() const; Bool_t IsFolder() const; virtual void Keep(); @@ -89,7 +89,7 @@ public: virtual Int_t Sizeof() const; virtual Int_t WriteFile(Int_t cycle=1); - ClassDef(TKey,2) //Header description of a logical record on file + ClassDef(TKey,3) //Header description of a logical record on file }; #endif diff --git a/base/inc/TSystem.h b/base/inc/TSystem.h index d8e49df65270452fbb6296c9e291a1e89e7eb757..387b08d37d33c14751b69c077b83d1aa8fb8b811 100644 --- a/base/inc/TSystem.h +++ b/base/inc/TSystem.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TSystem.h,v 1.31 2003/09/23 22:06:16 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TSystem.h,v 1.32 2003/12/01 07:15:26 rdm Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -295,7 +295,7 @@ public: virtual int Link(const char *from, const char *to); virtual int Symlink(const char *from, const char *to); virtual int Unlink(const char *name); - virtual int GetPathInfo(const char *path, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); + virtual int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); virtual int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree); virtual int Umask(Int_t mask); virtual int Utime(const char *file, Long_t modtime, Long_t actime); diff --git a/base/src/TApplication.cxx b/base/src/TApplication.cxx index 173cb16d66873378842caa8be4e72a7b29fb1e79..5b907c262930c38a5171d575e2404c05eb544d3c 100644 --- a/base/src/TApplication.cxx +++ b/base/src/TApplication.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TApplication.cxx,v 1.48 2003/10/22 17:20:50 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TApplication.cxx,v 1.49 2003/11/24 19:54:54 brun Exp $ // Author: Fons Rademakers 22/12/95 /************************************************************************* @@ -304,7 +304,8 @@ void TApplication::GetOptions(int *argc, char **argv) // splash screen can be popped down (TRint::PrintLogo()) argv[i] = 0; } else if (argv[i][0] != '-' && argv[i][0] != '+') { - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; char *arg = strchr(argv[i], '('); if (arg) *arg = '\0'; char *dir = gSystem->ExpandPathName(argv[i]); diff --git a/base/src/TDirectory.cxx b/base/src/TDirectory.cxx index 045185de12066464f08deb049f34bbb038ef1294..3ba939d69e830b7b6376bd903e8f0254df04cbce 100644 --- a/base/src/TDirectory.cxx +++ b/base/src/TDirectory.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TDirectory.cxx,v 1.37 2003/06/02 09:53:15 brun Exp $ +// @(#)root/base:$Name: $:$Id: TDirectory.cxx,v 1.38 2003/06/30 12:12:05 brun Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -108,7 +108,6 @@ TDirectory::TDirectory(const char *name, const char *title, Option_t *classname) } fWritable = kTRUE; fSeekParent = gFile->GetSeekDir(); - if (gFile && gFile->GetEND() > TFile::kStartBigFile) SetBit(kIsBigFile); Int_t nbytes = TDirectory::Sizeof(); TKey *key = new TKey(fName,fTitle,cl,nbytes); fNbytesName = key->GetKeylen(); @@ -679,16 +678,16 @@ void TDirectory::FillBuffer(char *&buffer) //*-*-*-*-*-*-*-*-*-*-*-*Encode directory header into output buffer*-*-*-*-*-* //*-* ========================================= Version_t version = TDirectory::Class_Version(); - if (TestBit(kIsBigFile)) version += 1000; + if (fSeekKeys > TFile::kStartBigFile) version += 1000; tobuf(buffer, version); fDatimeC.FillBuffer(buffer); fDatimeM.FillBuffer(buffer); tobuf(buffer, fNbytesKeys); tobuf(buffer, fNbytesName); if (version > 1000) { - tobuf(buffer, (Long_t)fSeekDir); - tobuf(buffer, (Long_t)fSeekParent); - tobuf(buffer, (Long_t)fSeekKeys); + tobuf(buffer, fSeekDir); + tobuf(buffer, fSeekParent); + tobuf(buffer, fSeekKeys); } else { tobuf(buffer, (Int_t)fSeekDir); tobuf(buffer, (Int_t)fSeekParent); @@ -1151,20 +1150,19 @@ Int_t TDirectory::ReadKeys() frombuf(buffer, &fNbytesKeys); frombuf(buffer, &fNbytesName); if (versiondir > 1000) { - Long_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &fSeekDir); + frombuf(buffer, &fSeekParent); + frombuf(buffer, &fSeekKeys); } else { Int_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &sdir); fSeekDir = (Long64_t)sdir; + frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent; + frombuf(buffer, &skeys); fSeekKeys = (Long64_t)skeys; } delete [] header; Int_t nkeys = 0; - Long_t fsize = fFile->GetSize(); + Long64_t fsize = fFile->GetSize(); if ( fSeekKeys > 0) { TKey *headerkey = new TKey(fSeekKeys,fNbytesKeys); headerkey->ReadFile(); @@ -1302,7 +1300,7 @@ Int_t TDirectory::Sizeof() const nbytes += fDatimeC.Sizeof(); nbytes += fDatimeM.Sizeof(); nbytes += fUUID.Sizeof(); - if (TestBit(kIsBigFile)) nbytes += 12; + nbytes += 12; //always assume that the file may be above 2 Gbytes return nbytes; } @@ -1323,15 +1321,14 @@ void TDirectory::Streamer(TBuffer &b) b >> fNbytesName; if (version > 1000) { SetBit(kIsBigFile); - Long_t sdir,sparent,skeys; - b >> sdir; fSeekDir = (Seek_t)sdir; - b >> sparent; fSeekParent = (Seek_t)sparent; - b >> skeys; fSeekKeys = (Seek_t)skeys; + b >> fSeekDir; + b >> fSeekParent; + b >> fSeekKeys; } else { Int_t sdir,sparent,skeys; - b >> sdir; fSeekDir = (Seek_t)sdir; - b >> sparent; fSeekParent = (Seek_t)sparent; - b >> skeys; fSeekKeys = (Seek_t)skeys; + b >> sdir; fSeekDir = (Long64_t)sdir; + b >> sparent; fSeekParent = (Long64_t)sparent; + b >> skeys; fSeekKeys = (Long64_t)skeys; } v = version%1000; if (v == 2) { @@ -1343,16 +1340,16 @@ void TDirectory::Streamer(TBuffer &b) if (fSeekKeys) ReadKeys(); } else { version = TDirectory::Class_Version(); - if (TestBit(kIsBigFile)) version += 1000; + if (fFile && fFile->GetEND() > TFile::kStartBigFile) version += 1000; b << version; fDatimeC.Streamer(b); fDatimeM.Streamer(b); b << fNbytesKeys; b << fNbytesName; if (version > 1000) { - b << (Long_t)fSeekDir; - b << (Long_t)fSeekParent; - b << (Long_t)fSeekKeys; + b << fSeekDir; + b << fSeekParent; + b << fSeekKeys; } else { b << (Int_t)fSeekDir; b << (Int_t)fSeekParent; @@ -1398,7 +1395,7 @@ void TDirectory::WriteDirHeader() char * buffer = header; fDatimeM.Set(); TDirectory::FillBuffer(buffer); - Seek_t pointer= fSeekDir + fNbytesName; // do not overwrite the name/title part + Long64_t pointer= fSeekDir + fNbytesName; // do not overwrite the name/title part fModified = kFALSE; gFile->Seek(pointer); gFile->WriteBuffer(header, nbytes); @@ -1423,6 +1420,7 @@ void TDirectory::WriteKeys() TKey *key; Int_t nkeys = fKeys->GetSize(); Int_t nbytes = sizeof nkeys; //*-* Compute size of all keys + if (gFile && gFile->GetEND() > TFile::kStartBigFile) nbytes += 8; while ((key = (TKey*)next())) { nbytes += key->Sizeof(); } diff --git a/base/src/TFile.cxx b/base/src/TFile.cxx index fa1da2b5096beabd2ac4abf8b23716e5f76dee4b..51954183e1f2070c23210f98b08721a530f39d92 100644 --- a/base/src/TFile.cxx +++ b/base/src/TFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.102 2003/09/27 18:45:45 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.103 2003/11/07 03:29:41 rdm Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -8,7 +8,6 @@ * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ - #include <fcntl.h> #include <errno.h> #include <sys/stat.h> @@ -349,10 +348,8 @@ void TFile::Init(Bool_t create) { // Initialize a TFile object. - Seek_t max_file_size = kStartBigFile; - if (sizeof(Seek_t) > 4) max_file_size *= 500; Int_t nfree; - fBEGIN = (Seek_t)kBEGIN; //First used word in file following the file header + fBEGIN = (Long64_t)kBEGIN; //First used word in file following the file header // make newly opened file the current file and directory cd(); @@ -361,7 +358,7 @@ void TFile::Init(Bool_t create) if (create) { fFree = new TList; fEND = fBEGIN; //Pointer to end of file - new TFree(fFree, fBEGIN, max_file_size); //Create new free list + new TFree(fFree, fBEGIN, Long64_t(kStartBigFile)); //Create new free list //*-* Write Directory info Int_t namelen= TNamed::Sizeof(); @@ -395,28 +392,27 @@ void TFile::Init(Bool_t create) frombuf(buffer, &fVersion); Int_t headerLength; frombuf(buffer, &headerLength); - fBEGIN = (Seek_t)headerLength; + fBEGIN = (Long64_t)headerLength; if (fVersion < 1000000) { //small file Int_t send,sfree,sinfo; - frombuf(buffer, &send); fEND = (Seek_t)send; - frombuf(buffer, &sfree); fSeekFree= (Seek_t)sfree; + frombuf(buffer, &send); fEND = (Long64_t)send; + frombuf(buffer, &sfree); fSeekFree= (Long64_t)sfree; frombuf(buffer, &fNbytesFree); frombuf(buffer, &nfree); frombuf(buffer, &fNbytesName); frombuf(buffer, &fUnits ); frombuf(buffer, &fCompress); - frombuf(buffer, &sinfo); fSeekInfo = (Seek_t)sinfo; + frombuf(buffer, &sinfo); fSeekInfo = (Long64_t)sinfo; frombuf(buffer, &fNbytesInfo); } else { // new format to support large files - Long_t send,sfree,sinfo; - frombuf(buffer, &send); fEND = (Seek_t)send; - frombuf(buffer, &sfree); fSeekFree= (Seek_t)sfree; + frombuf(buffer, &fEND); + frombuf(buffer, &fSeekFree); frombuf(buffer, &fNbytesFree); frombuf(buffer, &nfree); frombuf(buffer, &fNbytesName); frombuf(buffer, &fUnits ); frombuf(buffer, &fCompress); - frombuf(buffer, &sinfo); fSeekInfo = (Seek_t)sinfo; + frombuf(buffer, &fSeekInfo); frombuf(buffer, &fNbytesInfo); } fSeekDir = fBEGIN; @@ -444,18 +440,17 @@ void TFile::Init(Bool_t create) frombuf(buffer, &fNbytesKeys); frombuf(buffer, &fNbytesName); Int_t nk = sizeof(Int_t) +sizeof(Version_t) +2*sizeof(Int_t)+2*sizeof(Short_t) - +2*sizeof(Seek_t); + +2*sizeof(Int_t); if (version > 1000) { nk += 12; - Long_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &fSeekDir); + frombuf(buffer, &fSeekParent); + frombuf(buffer, &fSeekKeys); } else { Int_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &sdir); fSeekDir = (Long64_t)sdir; + frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent; + frombuf(buffer, &skeys); fSeekKeys = (Long64_t)skeys; } if (versiondir > 1) fUUID.ReadBuffer(buffer); @@ -471,7 +466,7 @@ void TFile::Init(Bool_t create) goto zombie; } //*-* -------------Check if file is truncated - Long_t size; + Long64_t size; if ((size = GetSize()) == -1) { Error("Init", "cannot stat the file %s", GetName()); goto zombie; @@ -723,7 +718,7 @@ Float_t TFile::GetCompressionFactor() Int_t nbytes, objlen, nwh = 64; char *header = new char[fBEGIN]; char *buffer; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; Float_t comp,uncomp; comp = uncomp = fBEGIN; @@ -769,7 +764,7 @@ void TFile::ResetErrno() const } //______________________________________________________________________________ -Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) +Int_t TFile::GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) { //*-*-*-*-*-*-*-*-*Read the logical record header starting at position first //*-* ========================================================= @@ -818,12 +813,13 @@ Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nby } //______________________________________________________________________________ -Seek_t TFile::GetSize() const +Long64_t TFile::GetSize() const { // Returns the current file size. Returns -1 in case the file could not // be stat'ed. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; if (const_cast<TFile*>(this)->SysStat(fD, &id, &size, &flags, &modtime)) { Error("GetSize", "cannot stat the file %s", GetName()); @@ -902,7 +898,7 @@ Bool_t TFile::IsOpen() const } //______________________________________________________________________________ -void TFile::MakeFree(Seek_t first, Seek_t last) +void TFile::MakeFree(Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*-*-*Mark unused bytes on the file*-*-*-*-*-*-*-*-*-*-* //*-* ============================= @@ -918,12 +914,14 @@ void TFile::MakeFree(Seek_t first, Seek_t last) if (!f1) return; TFree *newfree = f1->AddFree(fFree,first,last); if(!newfree) return; - Seek_t nfirst = newfree->GetFirst(); - Seek_t nlast = newfree->GetLast(); - Int_t nbytes = Int_t (nfirst - nlast -1); - Int_t nb = sizeof(Int_t); - char * buffer = new char[nb]; - char * psave = buffer; + Long64_t nfirst = newfree->GetFirst(); + Long64_t nlast = newfree->GetLast(); + Long64_t nbytesl= nlast-nfirst+1; + if (nbytesl > 2000000000) nbytesl = 2000000000; + Int_t nbytes = -Int_t (nbytesl); + Int_t nb = sizeof(Int_t); + char * buffer = new char[nb]; + char * psave = buffer; tobuf(buffer, nbytes); if (nlast == fEND-1) fEND = nfirst; Seek(nfirst); @@ -971,10 +969,10 @@ void TFile::Map() Short_t keylen,cycle; UInt_t datime; Int_t nbytes,date,time,objlen,nwheader; - Seek_t seekkey,seekpdir; + Long64_t seekkey,seekpdir; char *buffer; char nwhc; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; nwheader = 64; Int_t nread = nwheader; @@ -989,11 +987,11 @@ void TFile::Map() buffer=header; frombuf(buffer, &nbytes); if (!nbytes) { - Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); break; } if (nbytes < 0) { - Printf("Address = %d\tNbytes = %d\t=====G A P===========", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====G A P===========", idcur, nbytes); idcur -= nbytes; Seek(idcur); continue; @@ -1005,13 +1003,12 @@ void TFile::Map() frombuf(buffer, &keylen); frombuf(buffer, &cycle); if (versionkey > 1000) { - Long_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &seekkey); + frombuf(buffer, &seekpdir); } else { Int_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &skey); seekkey = (Long64_t)skey; + frombuf(buffer, &sdir); seekpdir = (Long64_t)sdir; } frombuf(buffer, &nwhc); int i; @@ -1023,13 +1020,16 @@ void TFile::Map() TDatime::GetDateTime(datime, date, time); if (objlen != nbytes-keylen) { Float_t cx = Float_t(objlen+keylen)/Float_t(nbytes); - Printf("%d/%06d At:%-8d N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); + //Printf("%d/%06d At:%-8d N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); + Printf("%d/%06d At:%lld N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); } else { - Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,nbytes,classname); + //Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,nbytes,classname); + Printf("%d/%06d At:%lld N=%-8d %-14s",date,time,idcur,nbytes,classname); } idcur += nbytes; } - Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,1,"END"); + //Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,1,"END"); + Printf("%d/%06d At:%lld N=%-8d %-14s",date,time,idcur,1,"END"); } //______________________________________________________________________________ @@ -1117,19 +1117,19 @@ Int_t TFile::Recover() Short_t keylen,cycle; UInt_t datime; Int_t nbytes,date,time,objlen,nwheader; - Seek_t seekkey,seekpdir; + Long64_t seekkey,seekpdir; char header[1024]; char *buffer, *bufread; char nwhc; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; - Long_t size; + Long64_t size; if ((size = GetSize()) == -1) { Error("Recover", "cannot stat the file %s", GetName()); return 0; } - fEND = Seek_t(size); + fEND = Long64_t(size); if (fWritable && !fFree) fFree = new TList; @@ -1146,7 +1146,7 @@ Int_t TFile::Recover() bufread = header; frombuf(buffer, &nbytes); if (!nbytes) { - Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); break; } if (nbytes < 0) { @@ -1162,16 +1162,17 @@ Int_t TFile::Recover() frombuf(buffer, &keylen); frombuf(buffer, &cycle); if (versionkey > 1000) { - Long_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &seekkey); + frombuf(buffer, &seekpdir); } else { Int_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &skey); seekkey = (Long64_t)skey; + frombuf(buffer, &sdir); seekpdir = (Long64_t)sdir; } frombuf(buffer, &nwhc); - char *classname = new char[nwhc+1]; + char *classname = 0; + if (nwhc <= 0 || nwhc > 100) break; + classname = new char[nwhc+1]; int i; for (i = 0;i < nwhc; i++) frombuf(buffer, &classname[i]); classname[nwhc] = '\0'; @@ -1186,15 +1187,15 @@ Int_t TFile::Recover() AppendKey(key); nrecov++; SetBit(kRecovered); - Info("Recover", "%s, recovered key %s:%s at address %d",GetName(),key->GetClassName(),key->GetName(),idcur); + Info("Recover", "%s, recovered key %s:%s at address %lld",GetName(),key->GetClassName(),key->GetName(),idcur); } } delete [] classname; idcur += nbytes; } if (fWritable) { - Seek_t max_file_size = kStartBigFile; - if (sizeof(Seek_t) > 4) max_file_size *= 500; + Long64_t max_file_size = Long64_t(kStartBigFile); + if (max_file_size < fEND) max_file_size = fEND+1000000000; new TFree(fFree,fEND,max_file_size); if (nrecov) Write(); } @@ -1300,7 +1301,7 @@ Int_t TFile::ReOpen(Option_t *mode) } //______________________________________________________________________________ -void TFile::Seek(Seek_t offset, ERelativeTo pos) +void TFile::Seek(Long64_t offset, ERelativeTo pos) { // Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd. @@ -1316,8 +1317,8 @@ void TFile::Seek(Seek_t offset, ERelativeTo pos) whence = SEEK_END; break; } - if (SysSeek(fD, offset, whence) < 0) - SysError("Seek", "cannot seek to position %d in file %s", offset, GetName()); + if (Long64_t retpos = SysSeek(fD, offset, whence) < 0) + SysError("Seek", "cannot seek to position %lld in file %s, retpos=%lld", offset, GetName(),retpos); } //______________________________________________________________________________ @@ -1552,14 +1553,14 @@ void TFile::WriteHeader() tobuf(buffer, (Int_t)fSeekInfo); tobuf(buffer, fNbytesInfo); } else { - tobuf(buffer, (Long_t)fEND); - tobuf(buffer, (Long_t)fSeekFree); + tobuf(buffer, fEND); + tobuf(buffer, fSeekFree); tobuf(buffer, fNbytesFree); tobuf(buffer, nfree); tobuf(buffer, fNbytesName); tobuf(buffer, fUnits); tobuf(buffer, fCompress); - tobuf(buffer, (Long_t)fSeekInfo); + tobuf(buffer, fSeekInfo); tobuf(buffer, fNbytesInfo); } fUUID.FillBuffer(buffer); @@ -1991,7 +1992,7 @@ Int_t TFile::SysOpen(const char *pathname, Int_t flags, UInt_t mode) // although this is posix default it has to be set explicitly return ::open(pathname, flags | O_BINARY, mode); #else - return ::open(pathname, flags, mode); + return ::open(pathname, flags | O_LARGEFILE, mode); #endif } @@ -2020,17 +2021,21 @@ Int_t TFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { // Interface to system lseek. All arguments like in POSIX lseek() // except that the offset and return value are of a type which will // be able to handle 64 bit file systems in the future. +#if defined (R__LINUX) + return ::lseek64(fd, offset, whence); +#else return ::lseek(fd, offset, whence); +#endif } //______________________________________________________________________________ -Int_t TFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, +Int_t TFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Return file stat information. The interface and return value is diff --git a/base/src/TFree.cxx b/base/src/TFree.cxx index dd5537b8c57550199be38c148ae0ab035ffa0ee3..3c3cff08aabd456d2266c310a048be5a4bbcd8cc 100644 --- a/base/src/TFree.cxx +++ b/base/src/TFree.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFree.cxx,v 1.3 2003/02/26 10:11:51 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFree.cxx,v 1.4 2003/02/26 14:59:28 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -40,7 +40,7 @@ TFree::TFree() } //______________________________________________________________________________ -TFree::TFree(TList *lfree, Seek_t first, Seek_t last) +TFree::TFree(TList *lfree, Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*-*Constructor for a FREE segment*-*-*-*-*-*-*-*-*-*-*-*-* //*-* ============================== @@ -50,7 +50,7 @@ TFree::TFree(TList *lfree, Seek_t first, Seek_t last) } //______________________________________________________________________________ -TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last) +TFree *TFree::AddFree(TList *lfree, Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*Add a new free segment to the list of free segments*-*-* //*-* =================================================== @@ -64,8 +64,8 @@ TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last) // TFree *idcur = this; while (idcur) { - Seek_t curfirst = idcur->GetFirst(); - Seek_t curlast = idcur->GetLast(); + Long64_t curfirst = idcur->GetFirst(); + Long64_t curlast = idcur->GetLast(); if (curlast == first-1) { idcur->SetLast(last); TFree *idnext = (TFree*)lfree->After(idcur); @@ -107,9 +107,10 @@ void TFree::FillBuffer(char *&buffer) Version_t version = TFree::Class_Version(); if (fLast > TFile::kStartBigFile) version += 1000; tobuf(buffer, version); +//printf("TFree::fillBuffer, fFirst=%lld, fLast=%lld, version=%d\n",fFirst,fLast,version); if (version > 1000) { - tobuf(buffer, (Long_t)fFirst); - tobuf(buffer, (Long_t)fLast); + tobuf(buffer, fFirst); + tobuf(buffer, fLast); } else { tobuf(buffer, (Int_t)fFirst); tobuf(buffer, (Int_t)fLast); @@ -125,13 +126,18 @@ TFree *TFree::GetBestFree(TList *lfree, Int_t nbytes) if (idcur == 0) return 0; TFree *idcur1 = 0; do { - Seek_t nleft = Seek_t(idcur->fLast - idcur->fFirst +1); + Long64_t nleft = Long64_t(idcur->fLast - idcur->fFirst +1); if (nleft == nbytes) return idcur; //*-* found an exact match - if(nleft > nbytes+3) if (idcur1 == 0) idcur1=idcur; + if(nleft > (Long64_t)(nbytes+3)) if (idcur1 == 0) idcur1=idcur; idcur = (TFree*)lfree->After(idcur); } while (idcur !=0); - return idcur1; //*-* return first segment >nbytes -} + if (idcur1) return idcur1; //*-* return first segment >nbytes + //try big file + idcur = (TFree*)lfree->Last(); + Long64_t last = idcur->fLast+1000000000; + idcur->SetLast(last); + return idcur; + } //______________________________________________________________________________ void TFree::ReadBuffer(char *&buffer) @@ -141,13 +147,12 @@ void TFree::ReadBuffer(char *&buffer) Version_t version; frombuf(buffer, &version); if (version > 1000) { - Long_t first,last; - frombuf(buffer, &first); fFirst = (Seek_t)first; - frombuf(buffer, &last); fLast = (Seek_t)last; + frombuf(buffer, &fFirst); + frombuf(buffer, &fLast); } else { Int_t first,last; - frombuf(buffer, &first); fFirst = (Seek_t)first; - frombuf(buffer, &last); fLast = (Seek_t)last; + frombuf(buffer, &first); fFirst = (Long64_t)first; + frombuf(buffer, &last); fLast = (Long64_t)last; } } diff --git a/base/src/TKey.cxx b/base/src/TKey.cxx index 2fe8d42bc29b91c6365001c09b677c8992cbab05..20c6ddab0a3ba2ede547f1146a952c7021be12c2 100644 --- a/base/src/TKey.cxx +++ b/base/src/TKey.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TKey.cxx,v 1.35 2003/12/10 20:36:34 brun Exp $ +// @(#)root/base:$Name: $:$Id: TKey.cxx,v 1.36 2003/12/10 20:40:45 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -83,7 +83,7 @@ TKey::TKey() : TNamed(), fDatime((UInt_t)0) } //______________________________________________________________________________ -TKey::TKey(Seek_t pointer, Int_t nbytes) : TNamed() +TKey::TKey(Long64_t pointer, Int_t nbytes) : TNamed() { //*-*-*-*-*-*-*-*-*-*-*-*-*Create a TKey object to read keys*-*-*-*-*-*-*-* //*-* ================================= @@ -314,9 +314,9 @@ void TKey::Delete(Option_t *option) // This is different from the behaviour of TObject::Delete()! - if (option && option[0] == 'v') printf("Deleting key: %s at address %d, nbytes = %d\n",GetName(),fSeekKey,fNbytes); - Seek_t first = fSeekKey; - Seek_t last = fSeekKey + fNbytes -1; + if (option && option[0] == 'v') printf("Deleting key: %s at address %lld, nbytes = %d\n",GetName(),fSeekKey,fNbytes); + Long64_t first = fSeekKey; + Long64_t last = fSeekKey + fNbytes -1; gFile->MakeFree(first, last); // release space used by this key gDirectory->GetListOfKeys()->Remove(this); } @@ -365,8 +365,8 @@ void TKey::FillBuffer(char *&buffer) tobuf(buffer, fKeylen); tobuf(buffer, fCycle); if (fVersion > 1000) { - tobuf(buffer, (Long_t)fSeekKey); - tobuf(buffer, (Long_t)fSeekPdir); + tobuf(buffer, fSeekKey); + tobuf(buffer, fSeekPdir); } else { tobuf(buffer, (Int_t)fSeekKey); tobuf(buffer, (Int_t)fSeekPdir); @@ -621,13 +621,12 @@ void TKey::ReadBuffer(char *&buffer) frombuf(buffer, &fKeylen); frombuf(buffer, &fCycle); if (fVersion > 1000) { - Long_t seekkey,seekdir; - frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey; - frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir; + frombuf(buffer, &fSeekKey); + frombuf(buffer, &fSeekPdir); } else { Int_t seekkey,seekdir; - frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey; - frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir; + frombuf(buffer, &seekkey); fSeekKey = (Long64_t)seekkey; + frombuf(buffer, &seekdir); fSeekPdir= (Long64_t)seekdir; } fClassName.ReadBuffer(buffer); fName.ReadBuffer(buffer); @@ -702,13 +701,12 @@ void TKey::Streamer(TBuffer &b) b >> fKeylen; b >> fCycle; if (fVersion > 1000) { - Long_t seekkey, seekdir; - b >> seekkey; fSeekKey = (Seek_t)seekkey; - b >> seekdir; fSeekPdir= (Seek_t)seekdir; + b >> fSeekKey; + b >> fSeekPdir; } else { Int_t seekkey, seekdir; - b >> seekkey; fSeekKey = (Seek_t)seekkey; - b >> seekdir; fSeekPdir= (Seek_t)seekdir; + b >> seekkey; fSeekKey = (Long64_t)seekkey; + b >> seekdir; fSeekPdir= (Long64_t)seekdir; } fClassName.Streamer(b); fName.Streamer(b); @@ -723,8 +721,8 @@ void TKey::Streamer(TBuffer &b) b << fKeylen; b << fCycle; if (fVersion > 1000) { - b << (Long_t)fSeekKey; - b << (Long_t)fSeekPdir; + b << fSeekKey; + b << fSeekPdir; } else { b << (Int_t)fSeekKey; b << (Int_t)fSeekPdir; diff --git a/base/src/TMD5.cxx b/base/src/TMD5.cxx index a88822b66de022ded5a7fb1fbbb0d6937bf7cbb3..772c738811ac8b4c86e4e7cab68e2674bde0174b 100644 --- a/base/src/TMD5.cxx +++ b/base/src/TMD5.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TMD5.cxx,v 1.11 2002/12/02 18:50:01 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TMD5.cxx,v 1.12 2003/03/06 17:09:42 rdm Exp $ // Author: Fons Rademakers 29/9/2001 /************************************************************************* @@ -456,7 +456,8 @@ TMD5 *TMD5::FileChecksum(const char *file) // so it can be safely used in conjunction with methods that keep track // of the file's modtime. Static utility function. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 0) { if (flags > 1) { Error("TMD5::FileChecksum", "%s not a regular file (%ld)", file, flags); @@ -479,12 +480,12 @@ TMD5 *TMD5::FileChecksum(const char *file) TMD5 *md5 = new TMD5; - Seek_t pos = 0; + Long64_t pos = 0; const Int_t bufSize = 8192; UChar_t buf[bufSize]; while (pos < size) { - Seek_t left = Seek_t(size - pos); + Long64_t left = Long64_t(size - pos); if (left > bufSize) left = bufSize; Int_t siz; diff --git a/base/src/TSystem.cxx b/base/src/TSystem.cxx index b3add6d4d764a6e85b77a3af93497e4742e16a02..04770a30e36cecac7fc9ef2a44d2a698caea426f 100644 --- a/base/src/TSystem.cxx +++ b/base/src/TSystem.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TSystem.cxx,v 1.75 2003/11/18 19:04:17 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TSystem.cxx,v 1.76 2003/12/01 07:15:26 rdm Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -918,7 +918,7 @@ int TSystem::Unlink(const char *) } //______________________________________________________________________________ -int TSystem::GetPathInfo(const char*, Long_t*, Long_t*, Long_t*, Long_t*) +int TSystem::GetPathInfo(const char*, Long_t*, Long64_t*, Long_t*, Long_t*) { // Get info about a file: id, size, flags, modification time. diff --git a/base/src/TSystemDirectory.cxx b/base/src/TSystemDirectory.cxx index e514eeb380f2425791870195e44b64e72063f448..55b02daf1247632ac6a78b07559f9a73d9186a17 100644 --- a/base/src/TSystemDirectory.cxx +++ b/base/src/TSystemDirectory.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TSystemDirectory.cxx,v 1.3 2002/07/31 21:59:16 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TSystemDirectory.cxx,v 1.4 2003/07/01 11:39:45 rdm Exp $ // Author: Christian Bormann 13/10/97 /************************************************************************* @@ -106,7 +106,8 @@ Bool_t TSystemDirectory::IsDirectory(const char *name) const { // Check if name is a directory. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; const char *dirfile = GetTitle(); gSystem->ChangeDirectory(dirfile); diff --git a/base/src/TSystemFile.cxx b/base/src/TSystemFile.cxx index 71589d3e488fa608060ce10f35027e828745ef39..506ab3a8ed3c6696ceb49a43b82a87e7e06e04bc 100644 --- a/base/src/TSystemFile.cxx +++ b/base/src/TSystemFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TSystemFile.cxx,v 1.3 2001/11/28 15:58:13 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TSystemFile.cxx,v 1.4 2003/07/01 11:39:45 rdm Exp $ // Author: Rene Brun 26/06/96 /************************************************************************* @@ -54,7 +54,8 @@ Bool_t TSystemFile::IsDirectory() const { // Check if object is a directory. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; flags = id = size = modtime = 0; gSystem->GetPathInfo(fName, &id, &size, &flags, &modtime); diff --git a/build/version_number b/build/version_number index b56bab041867a71675522b2c77dc6ccb1884c134..6dd73bbc7d074298701587f87ea55f41b7152ce8 100644 --- a/build/version_number +++ b/build/version_number @@ -1 +1 @@ -3.10/02 +4.00/00 diff --git a/chirp/inc/TChirpFile.h b/chirp/inc/TChirpFile.h index bce63e4ac9149682e1a9121b762895ea204a1a15..80802c620a474510f2b9279e7407d92c2c8a8280 100644 --- a/chirp/inc/TChirpFile.h +++ b/chirp/inc/TChirpFile.h @@ -30,19 +30,19 @@ class TChirpFile : public TFile { private: - Seek_t fOffset; - struct chirp_client *chirp_client; + Long64_t fOffset; + struct chirp_client *chirp_client; TChirpFile() : fOffset(0), chirp_client(0) { } // Interface to basic system I/O routines - Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - Int_t SysClose(Int_t fd); - Int_t SysRead(Int_t fd, void *buf, Int_t len); - Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); - Int_t SysSync(Int_t fd); + Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + Int_t SysClose(Int_t fd); + Int_t SysRead(Int_t fd, void *buf, Int_t len); + Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); + Int_t SysSync(Int_t fd); Int_t OpenChirpClient(const char *URL,char const **path); Int_t CloseChirpClient(); diff --git a/chirp/src/TChirpFile.cxx b/chirp/src/TChirpFile.cxx index b995477d6a78d5f1eca9748c69343c816712ffeb..ef4059ece0fe72bee6b7fb68315070dc0ebfb7f5 100644 --- a/chirp/src/TChirpFile.cxx +++ b/chirp/src/TChirpFile.cxx @@ -127,7 +127,7 @@ Bool_t TChirpFile::ReadBuffer(char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) { Error("ReadBuffer", "error reading from cache"); return kTRUE; @@ -152,7 +152,7 @@ Bool_t TChirpFile::WriteBuffer(const char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) { Error("WriteBuffer", "error writing to cache"); return kTRUE; @@ -265,11 +265,11 @@ Int_t TChirpFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TChirpFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TChirpFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { if (whence == SEEK_SET && offset == fOffset) return offset; - Seek_t rc = chirp_client_lseek(chirp_client, fd, offset, whence); + Long64_t rc = chirp_client_lseek(chirp_client, fd, offset, whence); if (rc < 0) { gSystem->SetErrorStr(strerror(errno)); @@ -293,14 +293,14 @@ Int_t TChirpFile::SysSync(Int_t fd) } //______________________________________________________________________________ -Int_t TChirpFile::SysStat(Int_t fd, Long_t *id, Long_t *size, +Int_t TChirpFile::SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // FIXME: chirp library doesn't (yet) provide any stat() capabilities. *id = ::Hash(fRealName); - Seek_t offset = fOffset; + Long64_t offset = fOffset; *size = SysSeek(fd, 0, SEEK_END); SysSeek(fd, offset, SEEK_SET); diff --git a/dcache/inc/TDCacheFile.h b/dcache/inc/TDCacheFile.h index 98cec18c19fd059602192d9a2d698db574fa0733..7f15bd9f0b7796d8ce3d6da437908dd58786b20e 100644 --- a/dcache/inc/TDCacheFile.h +++ b/dcache/inc/TDCacheFile.h @@ -1,4 +1,4 @@ -// @(#)root/dcache:$Name: $:$Id: TDCacheFile.h,v 1.2 2002/03/25 16:43:16 rdm Exp $ +// @(#)root/dcache:$Name: $:$Id: TDCacheFile.h,v 1.3 2003/12/02 02:07:44 brun Exp $ // Author: Grzegorz Mazur 20/01/2002 // Updated: William Tanenbaum 21/11/2003 @@ -37,18 +37,18 @@ class TDCacheFile : public TFile { private: - Seek_t fOffset; + Long64_t fOffset; TDCacheFile() : fOffset(0) { } // Interface to basic system I/O routines - Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - Int_t SysClose(Int_t fd); - Int_t SysRead(Int_t fd, void *buf, Int_t len); - Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); - Int_t SysSync(Int_t fd); + Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + Int_t SysClose(Int_t fd); + Int_t SysRead(Int_t fd, void *buf, Int_t len); + Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); + Int_t SysSync(Int_t fd); public: TDCacheFile(const char *path, Option_t *option="", @@ -99,7 +99,7 @@ public: void *OpenDirectory(const char *name); void FreeDirectory(void *dirp); const char *GetDirEntry(void *dirp); - Int_t GetPathInfo(const char *path, Long_t *id, Long_t *size, + Int_t GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); Bool_t AccessPathName(const char *path, EAccessMode mode); diff --git a/dcache/src/TDCacheFile.cxx b/dcache/src/TDCacheFile.cxx index be6393f38f0eb0b770a077c7a3d2507208b3a54e..2669ab595f472218e0a900496da1d92db25b40cb 100644 --- a/dcache/src/TDCacheFile.cxx +++ b/dcache/src/TDCacheFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/dcache:$Name: $:$Id: TDCacheFile.cxx,v 1.13 2003/12/02 07:49:11 rdm Exp $ +// @(#)root/dcache:$Name: $:$Id: TDCacheFile.cxx,v 1.14 2003/12/25 18:11:57 brun Exp $ // Author: Grzegorz Mazur 20/01/2002 // Modified: William Tanenbaum 01/12/2003 @@ -197,7 +197,7 @@ Bool_t TDCacheFile::ReadBuffer(char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) { Error("ReadBuffer", "error reading from cache"); return kTRUE; @@ -222,7 +222,7 @@ Bool_t TDCacheFile::WriteBuffer(const char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) { Error("WriteBuffer", "error writing to cache"); return kTRUE; @@ -407,7 +407,7 @@ Int_t TDCacheFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TDCacheFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TDCacheFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { // Interface to system seek. All arguments like in POSIX lseek. @@ -415,7 +415,7 @@ Seek_t TDCacheFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) dc_errno = 0; - Seek_t rc = dc_lseek(fd, offset, whence); + Long64_t rc = dc_lseek(fd, offset, whence); if (rc < 0) { if (dc_errno != 0) @@ -439,7 +439,7 @@ Int_t TDCacheFile::SysSync(Int_t) } //______________________________________________________________________________ -Int_t TDCacheFile::SysStat(Int_t, Long_t *id, Long_t *size, +Int_t TDCacheFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Return file stat information. The interface and return value is @@ -560,7 +560,7 @@ Bool_t TDCacheSystem::AccessPathName(const char *path, EAccessMode mode) } //______________________________________________________________________________ -int TDCacheSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size, +int TDCacheSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Get info about a file: id, size, flags, modification time. diff --git a/hbook/inc/THbookFile.h b/hbook/inc/THbookFile.h index 08c90c9752a5093facb99ba439032871b96d283b..d19357cc769e40eed2f9f963b71c08bf41bbdf2d 100644 --- a/hbook/inc/THbookFile.h +++ b/hbook/inc/THbookFile.h @@ -1,4 +1,4 @@ -// @(#)root/hbook:$Name: $:$Id: THbookFile.h,v 1.5 2002/04/30 07:26:47 brun Exp $ +// @(#)root/hbook:$Name: $:$Id: THbookFile.h,v 1.6 2002/10/22 12:10:01 brun Exp $ // Author: Rene Brun 18/02/2002 /************************************************************************* @@ -61,7 +61,7 @@ public: const char *GetCurDir() const {return fCurDir.Data();} Int_t GetEntry(Int_t entry,Int_t id, Int_t atype, Float_t *x); Int_t GetEntryBranch(Int_t entry,Int_t id); - Seek_t GetSize() const {return 0;} + Long64_t GetSize() const {return 0;} TList *GetList() const {return fList;} TList *GetListOfKeys() const { return fKeys; } void InitLeaves(Int_t id, Int_t var, TTreeFormula *formula); diff --git a/html/src/THtml.cxx b/html/src/THtml.cxx index ad19c9dea103bb4afafea411df9d9e02b241ffec..94c8aad93c5a418b0aef320b54a5eada25ce26ca 100644 --- a/html/src/THtml.cxx +++ b/html/src/THtml.cxx @@ -1,4 +1,4 @@ -// @(#)root/html:$Name: $:$Id: THtml.cxx,v 1.46 2003/11/11 18:07:19 brun Exp $ +// @(#)root/html:$Name: $:$Id: THtml.cxx,v 1.47 2003/11/20 15:03:44 brun Exp $ // Author: Nenad Buncic (18/10/95), Axel Naumann <mailto:axel@fnal.gov> (09/28/01) /************************************************************************* @@ -318,7 +318,8 @@ fMapDocElements(0) "http://consult.cern.ch/xwho/people?"); Int_t st; - Long_t sId, sSize, sFlags, sModtime; + Long64_t sSize; + Long_t sId, sFlags, sModtime; if ((st = gSystem->GetPathInfo(fOutputDir, &sId, &sSize, &sFlags, &sModtime)) || !(sFlags & 2)) { @@ -1755,8 +1756,9 @@ Bool_t THtml::CopyHtmlFile(const char *sourceName, const char *destName) tmp1 = 0; // Get info about a file - Long_t sId, sSize, sFlags, sModtime; - Long_t dId, dSize, dFlags, dModtime; + Long64_t sSize, dSize; + Long_t sId, sFlags, sModtime; + Long_t dId, dFlags, dModtime; if (! (check = gSystem->GetPathInfo(sourceFile, &sId, &sSize, &sFlags, @@ -2937,8 +2939,9 @@ Bool_t THtml::IsModified(TClass * classPtr, const Int_t type) } // Get info about a file - Long_t sId, sSize, sFlags, sModtime; - Long_t dId, dSize, dFlags, dModtime; + Long64_t sSize, dSize; + Long_t sId, sFlags, sModtime; + Long_t dId, dFlags, dModtime; if (! (gSystem-> diff --git a/io/inc/TFile.h b/io/inc/TFile.h index df222b969052417c840e47b539f6e893acf9f5f1..e3ee0485e10081daa687c0f793f3024ab679db57 100644 --- a/io/inc/TFile.h +++ b/io/inc/TFile.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.h,v 1.28 2003/02/26 10:11:50 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFile.h,v 1.29 2003/04/28 10:18:38 rdm Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -39,10 +39,10 @@ protected: Double_t fSum2Buffer; //Sum of squares of buffer sizes of objects written so far Double_t fBytesWrite; //Number of bytes written to this file Double_t fBytesRead; //Number of bytes read from this file - Seek_t fBEGIN; //First used byte in file - Seek_t fEND; //Last used byte in file - Seek_t fSeekFree; //Location on disk of free segments structure - Seek_t fSeekInfo; //Location on disk of StreamerInfo record + Long64_t fBEGIN; //First used byte in file + Long64_t fEND; //Last used byte in file + Long64_t fSeekFree; //Location on disk of free segments structure + Long64_t fSeekInfo; //Location on disk of StreamerInfo record Int_t fD; //File descriptor Int_t fVersion; //File format version Int_t fCompress; //Compression level from 0(not compressed) to 9 (max compression) @@ -64,13 +64,13 @@ protected: void Init(Bool_t create); // Interface to basic system I/O routines - virtual Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - virtual Int_t SysClose(Int_t fd); - virtual Int_t SysRead(Int_t fd, void *buf, Int_t len); - virtual Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - virtual Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - virtual Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); - virtual Int_t SysSync(Int_t fd); + virtual Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + virtual Int_t SysClose(Int_t fd); + virtual Int_t SysRead(Int_t fd, void *buf, Int_t len); + virtual Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + virtual Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + virtual Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); + virtual Int_t SysSync(Int_t fd); private: TFile(const TFile &); //Files cannot be copied @@ -101,7 +101,7 @@ public: TArrayC *GetClassIndex() const { return fClassIndex; } Int_t GetCompressionLevel() const { return fCompress; } Float_t GetCompressionFactor(); - virtual Seek_t GetEND() const { return fEND; } + virtual Long64_t GetEND() const { return fEND; } virtual Int_t GetErrno() const; virtual void ResetErrno() const; Int_t GetFd() const { return fD; } @@ -113,17 +113,17 @@ public: Double_t GetBytesRead() const { return fBytesRead; } Double_t GetBytesWritten() const { return fBytesWrite; } Int_t GetVersion() const { return fVersion; } - Int_t GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); + Int_t GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen); virtual Int_t GetNbytesInfo() const {return fNbytesInfo;} virtual Int_t GetNbytesFree() const {return fNbytesFree;} - virtual Seek_t GetSeekFree() const {return fSeekFree;} - virtual Seek_t GetSeekInfo() const {return fSeekInfo;} - virtual Seek_t GetSize() const; + virtual Long64_t GetSeekFree() const {return fSeekFree;} + virtual Long64_t GetSeekInfo() const {return fSeekInfo;} + virtual Long64_t GetSize() const; TList *GetStreamerInfoList(); virtual void IncrementProcessIDs() {fNProcessIDs++;} virtual Bool_t IsOpen() const; virtual void ls(Option_t *option="") const; - virtual void MakeFree(Seek_t first, Seek_t last); + virtual void MakeFree(Long64_t first, Long64_t last); virtual void MakeProject(const char *dirname, const char *classes="*", Option_t *option="new"); // *MENU* virtual void Map(); // *MENU* virtual void Paint(Option_t *option=""); @@ -133,9 +133,9 @@ public: virtual void ReadStreamerInfo(); virtual Int_t Recover(); virtual Int_t ReOpen(Option_t *mode); - virtual void Seek(Seek_t offset, ERelativeTo pos = kBeg); + virtual void Seek(Long64_t offset, ERelativeTo pos = kBeg); virtual void SetCompressionLevel(Int_t level=1); - virtual void SetEND(Seek_t last) { fEND = last; } + virtual void SetEND(Long64_t last) { fEND = last; } virtual void SetOption(Option_t *option=">") { fOption = option; } virtual void ShowStreamerInfo(); virtual Int_t Sizeof() const; @@ -157,7 +157,7 @@ public: static void SetFileBytesRead(Double_t bytes=0); static void SetFileBytesWritten(Double_t bytes=0); - ClassDef(TFile,4) //ROOT file + ClassDef(TFile,5) //ROOT file }; R__EXTERN TFile *gFile; diff --git a/io/inc/TFree.h b/io/inc/TFree.h index 57b57685b3a635bb0f3b3aab0af811c1a186dc78..99a8349f5fc6d7004908600501393fa3664da05c 100644 --- a/io/inc/TFree.h +++ b/io/inc/TFree.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFree.h,v 1.3 2000/12/13 15:13:45 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFree.h,v 1.4 2003/02/26 10:11:50 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -29,21 +29,21 @@ class TFree : public TObject { protected: - Seek_t fFirst; //First free word of segment - Seek_t fLast; //Last free word of segment + Long64_t fFirst; //First free word of segment + Long64_t fLast; //Last free word of segment public: TFree(); - TFree(TList *lfree, Seek_t first, Seek_t last); + TFree(TList *lfree, Long64_t first, Long64_t last); virtual ~TFree(); - TFree *AddFree(TList *lfree, Seek_t first, Seek_t last); + TFree *AddFree(TList *lfree, Long64_t first, Long64_t last); virtual void FillBuffer(char *&buffer); - TFree *GetBestFree(TList *lfree, Int_t nbytes); - Seek_t GetFirst() const {return fFirst;} - Seek_t GetLast() const {return fLast;} + TFree *GetBestFree(TList *lfree, Int_t nbytes); + Long64_t GetFirst() const {return fFirst;} + Long64_t GetLast() const {return fLast;} virtual void ReadBuffer(char *&buffer); - void SetFirst(Seek_t first) {fFirst=first;} - void SetLast(Seek_t last) {fLast=last;} + void SetFirst(Long64_t first) {fFirst=first;} + void SetLast(Long64_t last) {fLast=last;} Int_t Sizeof() const; ClassDef(TFree,1) //Description of free segments on a file diff --git a/io/inc/TKey.h b/io/inc/TKey.h index 823c7ba88ab8650f0f2e91b41c678c0382ad8e46..4b0e0e1ff5e6eae690a1e9bd6b9e20a52ebe1afd 100644 --- a/io/inc/TKey.h +++ b/io/inc/TKey.h @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TKey.h,v 1.6 2002/02/02 11:54:34 brun Exp $ +// @(#)root/base:$Name: $:$Id: TKey.h,v 1.7 2002/04/04 08:58:49 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -43,12 +43,12 @@ protected: TDatime fDatime; //Date/Time of insertion in file Short_t fKeylen; //Number of bytes for the key itself Short_t fCycle; //Cycle number - Seek_t fSeekKey; //Location of object on file - Seek_t fSeekPdir; //Location of parent directory on file + Long64_t fSeekKey; //Location of object on file + Long64_t fSeekPdir; //Location of parent directory on file TString fClassName; //Object Class name Int_t fLeft; //Number of bytes left in current segment - char *fBuffer; //Object buffer - TBuffer *fBufferRef; //Pointer to the TBuffer object + char *fBuffer; //Object buffer + TBuffer *fBufferRef; //Pointer to the TBuffer object virtual void Create(Int_t nbytes); virtual Int_t Read(const char *name) { return TObject::Read(name); } @@ -58,7 +58,7 @@ public: TKey(const char *name, const char *title, TClass *cl, Int_t nbytes); TKey(const TString &name, const TString &title, TClass *cl, Int_t nbytes); TKey(TObject *obj, const char *name, Int_t bufsize); - TKey(Seek_t pointer, Int_t nbytes); + TKey(Long64_t pointer, Int_t nbytes); virtual ~TKey(); virtual void Browse(TBrowser *b); virtual void Delete(Option_t *option=""); @@ -69,12 +69,12 @@ public: TBuffer *GetBufferRef() const {return fBufferRef;} Short_t GetCycle() const ; Short_t GetKeep() const; - Int_t GetKeylen() const {return fKeylen;} - Int_t GetNbytes() const {return fNbytes;} - Int_t GetObjlen() const {return fObjlen;} - Int_t GetVersion() const {return fVersion;} - virtual Seek_t GetSeekKey() const {return fSeekKey;} - virtual Seek_t GetSeekPdir() const {return fSeekPdir;} + Int_t GetKeylen() const {return fKeylen;} + Int_t GetNbytes() const {return fNbytes;} + Int_t GetObjlen() const {return fObjlen;} + Int_t GetVersion() const {return fVersion;} + virtual Long64_t GetSeekKey() const {return fSeekKey;} + virtual Long64_t GetSeekPdir() const {return fSeekPdir;} virtual ULong_t Hash() const; Bool_t IsFolder() const; virtual void Keep(); @@ -89,7 +89,7 @@ public: virtual Int_t Sizeof() const; virtual Int_t WriteFile(Int_t cycle=1); - ClassDef(TKey,2) //Header description of a logical record on file + ClassDef(TKey,3) //Header description of a logical record on file }; #endif diff --git a/io/src/TFile.cxx b/io/src/TFile.cxx index fa1da2b5096beabd2ac4abf8b23716e5f76dee4b..51954183e1f2070c23210f98b08721a530f39d92 100644 --- a/io/src/TFile.cxx +++ b/io/src/TFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.102 2003/09/27 18:45:45 rdm Exp $ +// @(#)root/base:$Name: $:$Id: TFile.cxx,v 1.103 2003/11/07 03:29:41 rdm Exp $ // Author: Rene Brun 28/11/94 /************************************************************************* @@ -8,7 +8,6 @@ * For the licensing terms see $ROOTSYS/LICENSE. * * For the list of contributors see $ROOTSYS/README/CREDITS. * *************************************************************************/ - #include <fcntl.h> #include <errno.h> #include <sys/stat.h> @@ -349,10 +348,8 @@ void TFile::Init(Bool_t create) { // Initialize a TFile object. - Seek_t max_file_size = kStartBigFile; - if (sizeof(Seek_t) > 4) max_file_size *= 500; Int_t nfree; - fBEGIN = (Seek_t)kBEGIN; //First used word in file following the file header + fBEGIN = (Long64_t)kBEGIN; //First used word in file following the file header // make newly opened file the current file and directory cd(); @@ -361,7 +358,7 @@ void TFile::Init(Bool_t create) if (create) { fFree = new TList; fEND = fBEGIN; //Pointer to end of file - new TFree(fFree, fBEGIN, max_file_size); //Create new free list + new TFree(fFree, fBEGIN, Long64_t(kStartBigFile)); //Create new free list //*-* Write Directory info Int_t namelen= TNamed::Sizeof(); @@ -395,28 +392,27 @@ void TFile::Init(Bool_t create) frombuf(buffer, &fVersion); Int_t headerLength; frombuf(buffer, &headerLength); - fBEGIN = (Seek_t)headerLength; + fBEGIN = (Long64_t)headerLength; if (fVersion < 1000000) { //small file Int_t send,sfree,sinfo; - frombuf(buffer, &send); fEND = (Seek_t)send; - frombuf(buffer, &sfree); fSeekFree= (Seek_t)sfree; + frombuf(buffer, &send); fEND = (Long64_t)send; + frombuf(buffer, &sfree); fSeekFree= (Long64_t)sfree; frombuf(buffer, &fNbytesFree); frombuf(buffer, &nfree); frombuf(buffer, &fNbytesName); frombuf(buffer, &fUnits ); frombuf(buffer, &fCompress); - frombuf(buffer, &sinfo); fSeekInfo = (Seek_t)sinfo; + frombuf(buffer, &sinfo); fSeekInfo = (Long64_t)sinfo; frombuf(buffer, &fNbytesInfo); } else { // new format to support large files - Long_t send,sfree,sinfo; - frombuf(buffer, &send); fEND = (Seek_t)send; - frombuf(buffer, &sfree); fSeekFree= (Seek_t)sfree; + frombuf(buffer, &fEND); + frombuf(buffer, &fSeekFree); frombuf(buffer, &fNbytesFree); frombuf(buffer, &nfree); frombuf(buffer, &fNbytesName); frombuf(buffer, &fUnits ); frombuf(buffer, &fCompress); - frombuf(buffer, &sinfo); fSeekInfo = (Seek_t)sinfo; + frombuf(buffer, &fSeekInfo); frombuf(buffer, &fNbytesInfo); } fSeekDir = fBEGIN; @@ -444,18 +440,17 @@ void TFile::Init(Bool_t create) frombuf(buffer, &fNbytesKeys); frombuf(buffer, &fNbytesName); Int_t nk = sizeof(Int_t) +sizeof(Version_t) +2*sizeof(Int_t)+2*sizeof(Short_t) - +2*sizeof(Seek_t); + +2*sizeof(Int_t); if (version > 1000) { nk += 12; - Long_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &fSeekDir); + frombuf(buffer, &fSeekParent); + frombuf(buffer, &fSeekKeys); } else { Int_t sdir,sparent,skeys; - frombuf(buffer, &sdir); fSeekDir = (Seek_t)sdir; - frombuf(buffer, &sparent); fSeekParent = (Seek_t)sparent; - frombuf(buffer, &skeys); fSeekKeys = (Seek_t)skeys; + frombuf(buffer, &sdir); fSeekDir = (Long64_t)sdir; + frombuf(buffer, &sparent); fSeekParent = (Long64_t)sparent; + frombuf(buffer, &skeys); fSeekKeys = (Long64_t)skeys; } if (versiondir > 1) fUUID.ReadBuffer(buffer); @@ -471,7 +466,7 @@ void TFile::Init(Bool_t create) goto zombie; } //*-* -------------Check if file is truncated - Long_t size; + Long64_t size; if ((size = GetSize()) == -1) { Error("Init", "cannot stat the file %s", GetName()); goto zombie; @@ -723,7 +718,7 @@ Float_t TFile::GetCompressionFactor() Int_t nbytes, objlen, nwh = 64; char *header = new char[fBEGIN]; char *buffer; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; Float_t comp,uncomp; comp = uncomp = fBEGIN; @@ -769,7 +764,7 @@ void TFile::ResetErrno() const } //______________________________________________________________________________ -Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) +Int_t TFile::GetRecordHeader(char *buf, Long64_t first, Int_t maxbytes, Int_t &nbytes, Int_t &objlen, Int_t &keylen) { //*-*-*-*-*-*-*-*-*Read the logical record header starting at position first //*-* ========================================================= @@ -818,12 +813,13 @@ Int_t TFile::GetRecordHeader(char *buf, Seek_t first, Int_t maxbytes, Int_t &nby } //______________________________________________________________________________ -Seek_t TFile::GetSize() const +Long64_t TFile::GetSize() const { // Returns the current file size. Returns -1 in case the file could not // be stat'ed. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; if (const_cast<TFile*>(this)->SysStat(fD, &id, &size, &flags, &modtime)) { Error("GetSize", "cannot stat the file %s", GetName()); @@ -902,7 +898,7 @@ Bool_t TFile::IsOpen() const } //______________________________________________________________________________ -void TFile::MakeFree(Seek_t first, Seek_t last) +void TFile::MakeFree(Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*-*-*Mark unused bytes on the file*-*-*-*-*-*-*-*-*-*-* //*-* ============================= @@ -918,12 +914,14 @@ void TFile::MakeFree(Seek_t first, Seek_t last) if (!f1) return; TFree *newfree = f1->AddFree(fFree,first,last); if(!newfree) return; - Seek_t nfirst = newfree->GetFirst(); - Seek_t nlast = newfree->GetLast(); - Int_t nbytes = Int_t (nfirst - nlast -1); - Int_t nb = sizeof(Int_t); - char * buffer = new char[nb]; - char * psave = buffer; + Long64_t nfirst = newfree->GetFirst(); + Long64_t nlast = newfree->GetLast(); + Long64_t nbytesl= nlast-nfirst+1; + if (nbytesl > 2000000000) nbytesl = 2000000000; + Int_t nbytes = -Int_t (nbytesl); + Int_t nb = sizeof(Int_t); + char * buffer = new char[nb]; + char * psave = buffer; tobuf(buffer, nbytes); if (nlast == fEND-1) fEND = nfirst; Seek(nfirst); @@ -971,10 +969,10 @@ void TFile::Map() Short_t keylen,cycle; UInt_t datime; Int_t nbytes,date,time,objlen,nwheader; - Seek_t seekkey,seekpdir; + Long64_t seekkey,seekpdir; char *buffer; char nwhc; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; nwheader = 64; Int_t nread = nwheader; @@ -989,11 +987,11 @@ void TFile::Map() buffer=header; frombuf(buffer, &nbytes); if (!nbytes) { - Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); break; } if (nbytes < 0) { - Printf("Address = %d\tNbytes = %d\t=====G A P===========", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====G A P===========", idcur, nbytes); idcur -= nbytes; Seek(idcur); continue; @@ -1005,13 +1003,12 @@ void TFile::Map() frombuf(buffer, &keylen); frombuf(buffer, &cycle); if (versionkey > 1000) { - Long_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &seekkey); + frombuf(buffer, &seekpdir); } else { Int_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &skey); seekkey = (Long64_t)skey; + frombuf(buffer, &sdir); seekpdir = (Long64_t)sdir; } frombuf(buffer, &nwhc); int i; @@ -1023,13 +1020,16 @@ void TFile::Map() TDatime::GetDateTime(datime, date, time); if (objlen != nbytes-keylen) { Float_t cx = Float_t(objlen+keylen)/Float_t(nbytes); - Printf("%d/%06d At:%-8d N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); + //Printf("%d/%06d At:%-8d N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); + Printf("%d/%06d At:%lld N=%-8d %-14s CX = %5.2f",date,time,idcur,nbytes,classname,cx); } else { - Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,nbytes,classname); + //Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,nbytes,classname); + Printf("%d/%06d At:%lld N=%-8d %-14s",date,time,idcur,nbytes,classname); } idcur += nbytes; } - Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,1,"END"); + //Printf("%d/%06d At:%-8d N=%-8d %-14s",date,time,idcur,1,"END"); + Printf("%d/%06d At:%lld N=%-8d %-14s",date,time,idcur,1,"END"); } //______________________________________________________________________________ @@ -1117,19 +1117,19 @@ Int_t TFile::Recover() Short_t keylen,cycle; UInt_t datime; Int_t nbytes,date,time,objlen,nwheader; - Seek_t seekkey,seekpdir; + Long64_t seekkey,seekpdir; char header[1024]; char *buffer, *bufread; char nwhc; - Seek_t idcur = fBEGIN; + Long64_t idcur = fBEGIN; - Long_t size; + Long64_t size; if ((size = GetSize()) == -1) { Error("Recover", "cannot stat the file %s", GetName()); return 0; } - fEND = Seek_t(size); + fEND = Long64_t(size); if (fWritable && !fFree) fFree = new TList; @@ -1146,7 +1146,7 @@ Int_t TFile::Recover() bufread = header; frombuf(buffer, &nbytes); if (!nbytes) { - Printf("Address = %d\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); + Printf("Address = %lld\tNbytes = %d\t=====E R R O R=======", idcur, nbytes); break; } if (nbytes < 0) { @@ -1162,16 +1162,17 @@ Int_t TFile::Recover() frombuf(buffer, &keylen); frombuf(buffer, &cycle); if (versionkey > 1000) { - Long_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &seekkey); + frombuf(buffer, &seekpdir); } else { Int_t skey,sdir; - frombuf(buffer, &skey); seekkey = (Seek_t)skey; - frombuf(buffer, &sdir); seekpdir = (Seek_t)sdir; + frombuf(buffer, &skey); seekkey = (Long64_t)skey; + frombuf(buffer, &sdir); seekpdir = (Long64_t)sdir; } frombuf(buffer, &nwhc); - char *classname = new char[nwhc+1]; + char *classname = 0; + if (nwhc <= 0 || nwhc > 100) break; + classname = new char[nwhc+1]; int i; for (i = 0;i < nwhc; i++) frombuf(buffer, &classname[i]); classname[nwhc] = '\0'; @@ -1186,15 +1187,15 @@ Int_t TFile::Recover() AppendKey(key); nrecov++; SetBit(kRecovered); - Info("Recover", "%s, recovered key %s:%s at address %d",GetName(),key->GetClassName(),key->GetName(),idcur); + Info("Recover", "%s, recovered key %s:%s at address %lld",GetName(),key->GetClassName(),key->GetName(),idcur); } } delete [] classname; idcur += nbytes; } if (fWritable) { - Seek_t max_file_size = kStartBigFile; - if (sizeof(Seek_t) > 4) max_file_size *= 500; + Long64_t max_file_size = Long64_t(kStartBigFile); + if (max_file_size < fEND) max_file_size = fEND+1000000000; new TFree(fFree,fEND,max_file_size); if (nrecov) Write(); } @@ -1300,7 +1301,7 @@ Int_t TFile::ReOpen(Option_t *mode) } //______________________________________________________________________________ -void TFile::Seek(Seek_t offset, ERelativeTo pos) +void TFile::Seek(Long64_t offset, ERelativeTo pos) { // Seek to a specific position in the file. Pos it either kBeg, kCur or kEnd. @@ -1316,8 +1317,8 @@ void TFile::Seek(Seek_t offset, ERelativeTo pos) whence = SEEK_END; break; } - if (SysSeek(fD, offset, whence) < 0) - SysError("Seek", "cannot seek to position %d in file %s", offset, GetName()); + if (Long64_t retpos = SysSeek(fD, offset, whence) < 0) + SysError("Seek", "cannot seek to position %lld in file %s, retpos=%lld", offset, GetName(),retpos); } //______________________________________________________________________________ @@ -1552,14 +1553,14 @@ void TFile::WriteHeader() tobuf(buffer, (Int_t)fSeekInfo); tobuf(buffer, fNbytesInfo); } else { - tobuf(buffer, (Long_t)fEND); - tobuf(buffer, (Long_t)fSeekFree); + tobuf(buffer, fEND); + tobuf(buffer, fSeekFree); tobuf(buffer, fNbytesFree); tobuf(buffer, nfree); tobuf(buffer, fNbytesName); tobuf(buffer, fUnits); tobuf(buffer, fCompress); - tobuf(buffer, (Long_t)fSeekInfo); + tobuf(buffer, fSeekInfo); tobuf(buffer, fNbytesInfo); } fUUID.FillBuffer(buffer); @@ -1991,7 +1992,7 @@ Int_t TFile::SysOpen(const char *pathname, Int_t flags, UInt_t mode) // although this is posix default it has to be set explicitly return ::open(pathname, flags | O_BINARY, mode); #else - return ::open(pathname, flags, mode); + return ::open(pathname, flags | O_LARGEFILE, mode); #endif } @@ -2020,17 +2021,21 @@ Int_t TFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { // Interface to system lseek. All arguments like in POSIX lseek() // except that the offset and return value are of a type which will // be able to handle 64 bit file systems in the future. +#if defined (R__LINUX) + return ::lseek64(fd, offset, whence); +#else return ::lseek(fd, offset, whence); +#endif } //______________________________________________________________________________ -Int_t TFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, +Int_t TFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Return file stat information. The interface and return value is diff --git a/io/src/TFree.cxx b/io/src/TFree.cxx index dd5537b8c57550199be38c148ae0ab035ffa0ee3..3c3cff08aabd456d2266c310a048be5a4bbcd8cc 100644 --- a/io/src/TFree.cxx +++ b/io/src/TFree.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TFree.cxx,v 1.3 2003/02/26 10:11:51 brun Exp $ +// @(#)root/base:$Name: $:$Id: TFree.cxx,v 1.4 2003/02/26 14:59:28 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -40,7 +40,7 @@ TFree::TFree() } //______________________________________________________________________________ -TFree::TFree(TList *lfree, Seek_t first, Seek_t last) +TFree::TFree(TList *lfree, Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*-*Constructor for a FREE segment*-*-*-*-*-*-*-*-*-*-*-*-* //*-* ============================== @@ -50,7 +50,7 @@ TFree::TFree(TList *lfree, Seek_t first, Seek_t last) } //______________________________________________________________________________ -TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last) +TFree *TFree::AddFree(TList *lfree, Long64_t first, Long64_t last) { //*-*-*-*-*-*-*-*-*-*Add a new free segment to the list of free segments*-*-* //*-* =================================================== @@ -64,8 +64,8 @@ TFree *TFree::AddFree(TList *lfree, Seek_t first, Seek_t last) // TFree *idcur = this; while (idcur) { - Seek_t curfirst = idcur->GetFirst(); - Seek_t curlast = idcur->GetLast(); + Long64_t curfirst = idcur->GetFirst(); + Long64_t curlast = idcur->GetLast(); if (curlast == first-1) { idcur->SetLast(last); TFree *idnext = (TFree*)lfree->After(idcur); @@ -107,9 +107,10 @@ void TFree::FillBuffer(char *&buffer) Version_t version = TFree::Class_Version(); if (fLast > TFile::kStartBigFile) version += 1000; tobuf(buffer, version); +//printf("TFree::fillBuffer, fFirst=%lld, fLast=%lld, version=%d\n",fFirst,fLast,version); if (version > 1000) { - tobuf(buffer, (Long_t)fFirst); - tobuf(buffer, (Long_t)fLast); + tobuf(buffer, fFirst); + tobuf(buffer, fLast); } else { tobuf(buffer, (Int_t)fFirst); tobuf(buffer, (Int_t)fLast); @@ -125,13 +126,18 @@ TFree *TFree::GetBestFree(TList *lfree, Int_t nbytes) if (idcur == 0) return 0; TFree *idcur1 = 0; do { - Seek_t nleft = Seek_t(idcur->fLast - idcur->fFirst +1); + Long64_t nleft = Long64_t(idcur->fLast - idcur->fFirst +1); if (nleft == nbytes) return idcur; //*-* found an exact match - if(nleft > nbytes+3) if (idcur1 == 0) idcur1=idcur; + if(nleft > (Long64_t)(nbytes+3)) if (idcur1 == 0) idcur1=idcur; idcur = (TFree*)lfree->After(idcur); } while (idcur !=0); - return idcur1; //*-* return first segment >nbytes -} + if (idcur1) return idcur1; //*-* return first segment >nbytes + //try big file + idcur = (TFree*)lfree->Last(); + Long64_t last = idcur->fLast+1000000000; + idcur->SetLast(last); + return idcur; + } //______________________________________________________________________________ void TFree::ReadBuffer(char *&buffer) @@ -141,13 +147,12 @@ void TFree::ReadBuffer(char *&buffer) Version_t version; frombuf(buffer, &version); if (version > 1000) { - Long_t first,last; - frombuf(buffer, &first); fFirst = (Seek_t)first; - frombuf(buffer, &last); fLast = (Seek_t)last; + frombuf(buffer, &fFirst); + frombuf(buffer, &fLast); } else { Int_t first,last; - frombuf(buffer, &first); fFirst = (Seek_t)first; - frombuf(buffer, &last); fLast = (Seek_t)last; + frombuf(buffer, &first); fFirst = (Long64_t)first; + frombuf(buffer, &last); fLast = (Long64_t)last; } } diff --git a/io/src/TKey.cxx b/io/src/TKey.cxx index 2fe8d42bc29b91c6365001c09b677c8992cbab05..20c6ddab0a3ba2ede547f1146a952c7021be12c2 100644 --- a/io/src/TKey.cxx +++ b/io/src/TKey.cxx @@ -1,4 +1,4 @@ -// @(#)root/base:$Name: $:$Id: TKey.cxx,v 1.35 2003/12/10 20:36:34 brun Exp $ +// @(#)root/base:$Name: $:$Id: TKey.cxx,v 1.36 2003/12/10 20:40:45 brun Exp $ // Author: Rene Brun 28/12/94 /************************************************************************* @@ -83,7 +83,7 @@ TKey::TKey() : TNamed(), fDatime((UInt_t)0) } //______________________________________________________________________________ -TKey::TKey(Seek_t pointer, Int_t nbytes) : TNamed() +TKey::TKey(Long64_t pointer, Int_t nbytes) : TNamed() { //*-*-*-*-*-*-*-*-*-*-*-*-*Create a TKey object to read keys*-*-*-*-*-*-*-* //*-* ================================= @@ -314,9 +314,9 @@ void TKey::Delete(Option_t *option) // This is different from the behaviour of TObject::Delete()! - if (option && option[0] == 'v') printf("Deleting key: %s at address %d, nbytes = %d\n",GetName(),fSeekKey,fNbytes); - Seek_t first = fSeekKey; - Seek_t last = fSeekKey + fNbytes -1; + if (option && option[0] == 'v') printf("Deleting key: %s at address %lld, nbytes = %d\n",GetName(),fSeekKey,fNbytes); + Long64_t first = fSeekKey; + Long64_t last = fSeekKey + fNbytes -1; gFile->MakeFree(first, last); // release space used by this key gDirectory->GetListOfKeys()->Remove(this); } @@ -365,8 +365,8 @@ void TKey::FillBuffer(char *&buffer) tobuf(buffer, fKeylen); tobuf(buffer, fCycle); if (fVersion > 1000) { - tobuf(buffer, (Long_t)fSeekKey); - tobuf(buffer, (Long_t)fSeekPdir); + tobuf(buffer, fSeekKey); + tobuf(buffer, fSeekPdir); } else { tobuf(buffer, (Int_t)fSeekKey); tobuf(buffer, (Int_t)fSeekPdir); @@ -621,13 +621,12 @@ void TKey::ReadBuffer(char *&buffer) frombuf(buffer, &fKeylen); frombuf(buffer, &fCycle); if (fVersion > 1000) { - Long_t seekkey,seekdir; - frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey; - frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir; + frombuf(buffer, &fSeekKey); + frombuf(buffer, &fSeekPdir); } else { Int_t seekkey,seekdir; - frombuf(buffer, &seekkey); fSeekKey = (Seek_t)seekkey; - frombuf(buffer, &seekdir); fSeekPdir= (Seek_t)seekdir; + frombuf(buffer, &seekkey); fSeekKey = (Long64_t)seekkey; + frombuf(buffer, &seekdir); fSeekPdir= (Long64_t)seekdir; } fClassName.ReadBuffer(buffer); fName.ReadBuffer(buffer); @@ -702,13 +701,12 @@ void TKey::Streamer(TBuffer &b) b >> fKeylen; b >> fCycle; if (fVersion > 1000) { - Long_t seekkey, seekdir; - b >> seekkey; fSeekKey = (Seek_t)seekkey; - b >> seekdir; fSeekPdir= (Seek_t)seekdir; + b >> fSeekKey; + b >> fSeekPdir; } else { Int_t seekkey, seekdir; - b >> seekkey; fSeekKey = (Seek_t)seekkey; - b >> seekdir; fSeekPdir= (Seek_t)seekdir; + b >> seekkey; fSeekKey = (Long64_t)seekkey; + b >> seekdir; fSeekPdir= (Long64_t)seekdir; } fClassName.Streamer(b); fName.Streamer(b); @@ -723,8 +721,8 @@ void TKey::Streamer(TBuffer &b) b << fKeylen; b << fCycle; if (fVersion > 1000) { - b << (Long_t)fSeekKey; - b << (Long_t)fSeekPdir; + b << fSeekKey; + b << fSeekPdir; } else { b << (Int_t)fSeekKey; b << (Int_t)fSeekPdir; diff --git a/net/inc/TCache.h b/net/inc/TCache.h index 0c1df10370d5da9224b0a258cc91c6a5b87fe70b..fc002b4dee289bff9319cf8a4b771b41c5d70d5c 100644 --- a/net/inc/TCache.h +++ b/net/inc/TCache.h @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TCache.h,v 1.3 2001/01/16 17:23:26 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TCache.h,v 1.4 2001/04/11 11:10:44 brun Exp $ // Author: Fons Rademakers 13/01/2001 /************************************************************************* @@ -58,12 +58,12 @@ private: class TPage : public TObject { friend class TCache; private: - Seek_t fOffset; // offset of page in file - char *fData; // pointer to page data - Int_t fSize; // size of page + Long64_t fOffset; // offset of page in file + char *fData; // pointer to page data + Int_t fSize; // size of page public: enum { kDirty = BIT(14), kLocked = BIT(15) }; - TPage(Seek_t offset, char *page, Int_t size) + TPage(Long64_t offset, char *page, Int_t size) { fOffset = offset; fData = page; fSize = size; } ~TPage() { delete [] fData; } ULong_t Hash() const { return fOffset; } @@ -73,7 +73,7 @@ private: Int_t Compare(const TObject *obj) const { return fOffset > ((const TPage*)obj)->fOffset ? 1 : fOffset < ((const TPage*)obj)->fOffset ? -1 : 0; } - Seek_t Offset() const { return fOffset; } + Long64_t Offset() const { return fOffset; } char *Data() const { return fData; } Int_t Size() const { return fSize; } }; @@ -88,7 +88,7 @@ private: TSortedList *fNew; // list constaining new pages that have to be written to disk TList *fFree; // list containing unused pages TFile *fFile; // file for which pages are being cached - Seek_t fEOF; // end of file + Long64_t fEOF; // end of file ULong_t fHighWater; // high water mark (i.e. maximum cache size in bytes) ULong_t fLowWater; // low water mark (free pages till low water mark is reached) Int_t fPageSize; // size of cached pages @@ -97,7 +97,7 @@ private: Bool_t fRecursive; // true to prevent recusively calling ReadBuffer() void SetPageSize(Int_t size); - TPage *ReadPage(Seek_t offset); + TPage *ReadPage(Long64_t offset); Int_t WritePage(TPage *page); Int_t FlushList(TList *list); Int_t FlushNew(); @@ -119,8 +119,8 @@ public: Int_t Resize(Int_t maxCacheSize); void SetLowLevel(Int_t percentOfHigh); - Int_t ReadBuffer(Seek_t offset, char *buf, Int_t len); - Int_t WriteBuffer(Seek_t offset, const char *buf, Int_t len); + Int_t ReadBuffer(Long64_t offset, char *buf, Int_t len); + Int_t WriteBuffer(Long64_t offset, const char *buf, Int_t len); Int_t Flush(); ClassDef(TCache,0) // Page cache used for remote I/O diff --git a/net/inc/TFTP.h b/net/inc/TFTP.h index 8b911457ad68e4bdccaecc49d5663247c16a5502..4e04f2e24821a528e0fd1776248b93fed642037d 100644 --- a/net/inc/TFTP.h +++ b/net/inc/TFTP.h @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TFTP.h,v 1.6 2001/03/01 07:21:23 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TFTP.h,v 1.7 2002/11/07 18:17:46 rdm Exp $ // Author: Fons Rademakers 13/02/2001 /************************************************************************* @@ -48,7 +48,7 @@ private: Int_t fLastBlock; // last block successfully transfered Int_t fBlockSize; // size of data buffer used to transfer Int_t fMode; // binary or ascii file transfer mode - Seek_t fRestartAt; // restart transmission at specified offset + Long64_t fRestartAt; // restart transmission at specified offset TString fCurrentFile; // file currently being get or put TSocket *fSocket; //! connection to rootd Double_t fBytesWrite; // number of bytes sent @@ -76,28 +76,28 @@ public: TFTP(const char *url, Int_t parallel = 1, Int_t wsize = kDfltWindowSize); virtual ~TFTP(); - void SetBlockSize(Int_t blockSize); - Int_t GetBlockSize() const { return fBlockSize; } - void SetRestartAt(Seek_t at) { fRestartAt = at; } - Seek_t GetRestartAt() const { return fRestartAt; } - Int_t GetMode() const { return fMode; } - - Bool_t IsOpen() const { return fSocket ? kTRUE : kFALSE; } - void Print(Option_t *opt = "") const; - - Seek_t PutFile(const char *file, const char *remoteName = 0); - Seek_t GetFile(const char *file, const char *localName = 0); - Int_t ChangeDirectory(const char *dir) const; - Int_t MakeDirectory(const char *dir) const; - Int_t DeleteDirectory(const char *dir) const; - Int_t ListDirectory(Option_t *cmd = "") const; - Int_t PrintDirectory() const; - Int_t RenameFile(const char *file1, const char *file2) const; - Int_t DeleteFile(const char *file) const; - Int_t ChangePermission(const char *file, Int_t mode) const; - Int_t Close(); - void Binary() { SetMode(kBinary); } - void Ascii() { SetMode(kAscii); } + void SetBlockSize(Int_t blockSize); + Int_t GetBlockSize() const { return fBlockSize; } + void SetRestartAt(Long64_t at) { fRestartAt = at; } + Long64_t GetRestartAt() const { return fRestartAt; } + Int_t GetMode() const { return fMode; } + + Bool_t IsOpen() const { return fSocket ? kTRUE : kFALSE; } + void Print(Option_t *opt = "") const; + + Long64_t PutFile(const char *file, const char *remoteName = 0); + Long64_t GetFile(const char *file, const char *localName = 0); + Int_t ChangeDirectory(const char *dir) const; + Int_t MakeDirectory(const char *dir) const; + Int_t DeleteDirectory(const char *dir) const; + Int_t ListDirectory(Option_t *cmd = "") const; + Int_t PrintDirectory() const; + Int_t RenameFile(const char *file1, const char *file2) const; + Int_t DeleteFile(const char *file) const; + Int_t ChangePermission(const char *file, Int_t mode) const; + Int_t Close(); + void Binary() { SetMode(kBinary); } + void Ascii() { SetMode(kAscii); } // standard ftp equivalents... void put(const char *file, const char *remoteName = 0) { PutFile(file, remoteName); } diff --git a/net/inc/TNetFile.h b/net/inc/TNetFile.h index 3ab06262e7d445fc18333e40821a54fcffc6adf2..5fe3494c8f28fff046fc62914f6eb846b6cd6528 100644 --- a/net/inc/TNetFile.h +++ b/net/inc/TNetFile.h @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TNetFile.h,v 1.11 2003/08/29 10:41:28 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TNetFile.h,v 1.12 2003/09/21 21:38:31 rdm Exp $ // Author: Fons Rademakers 14/08/97 /************************************************************************* @@ -40,7 +40,7 @@ class TNetFile : public TFile { protected: TUrl fUrl; //URL of file TString fUser; //remote user name - Seek_t fOffset; //seek offset + Long64_t fOffset; //seek offset TSocket *fSocket; //connection to rootd server Int_t fProtocol; //rootd protocol level Int_t fErrorCode; //error code returned by rootd (matching gRootdErrStr) @@ -58,7 +58,7 @@ protected: Int_t Recv(Int_t &status, EMessageTypes &kind); Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); Int_t SysClose(Int_t fd); - Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); + Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); public: TNetFile(const char *url, Option_t *option = "", const char *ftitle = "", @@ -66,14 +66,14 @@ public: TNetFile() : fUrl("dummy") { fSocket = 0; } virtual ~TNetFile(); - void Close(Option_t *option=""); //*MENU* + void Close(Option_t *option=""); // *MENU* void Flush(); Int_t GetErrorCode() const { return fErrorCode; } Bool_t IsOpen() const; Int_t ReOpen(Option_t *mode); Bool_t ReadBuffer(char *buf, Int_t len); Bool_t WriteBuffer(const char *buf, Int_t len); - void Seek(Seek_t offset, ERelativeTo pos = kBeg); + void Seek(Long64_t offset, ERelativeTo pos = kBeg); static Int_t GetClientProtocol(); diff --git a/net/inc/TWebFile.h b/net/inc/TWebFile.h index 05882b76e716ba9f8b9f00917c966890bdb767a6..9166dd9873464cc6d400f2a9575c4ff6acff6f50 100644 --- a/net/inc/TWebFile.h +++ b/net/inc/TWebFile.h @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TWebFile.h,v 1.4 2002/11/07 18:17:46 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TWebFile.h,v 1.5 2002/12/10 02:19:46 rdm Exp $ // Author: Fons Rademakers 17/01/97 /************************************************************************* @@ -35,7 +35,7 @@ class TWebFile : public TFile { private: TUrl fUrl; // URL of file - Seek_t fOffset; // seek offset + Long64_t fOffset; // seek offset TWebFile() : fUrl("dummy") { } void Init(Bool_t); @@ -45,11 +45,11 @@ public: TWebFile(TUrl url); virtual ~TWebFile() { } - Seek_t GetSize() const; - Bool_t IsOpen() const; - Int_t ReOpen(Option_t *mode); - Bool_t ReadBuffer(char *buf, Int_t len); - void Seek(Seek_t offset, ERelativeTo pos = kBeg); + Long64_t GetSize() const; + Bool_t IsOpen() const; + Int_t ReOpen(Option_t *mode); + Bool_t ReadBuffer(char *buf, Int_t len); + void Seek(Long64_t offset, ERelativeTo pos = kBeg); ClassDef(TWebFile,1) //A ROOT file that reads via a http server }; diff --git a/net/src/TCache.cxx b/net/src/TCache.cxx index 1f26476fbb4819a99873554d2fd69982fbcd215c..daae953f3210e22a864d0aec5a5d309ab43516ac 100644 --- a/net/src/TCache.cxx +++ b/net/src/TCache.cxx @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TCache.cxx,v 1.4 2001/01/17 12:11:53 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TCache.cxx,v 1.5 2001/02/09 14:04:26 rdm Exp $ // Author: Fons Rademakers 13/01/2001 /************************************************************************* @@ -101,7 +101,7 @@ void TCache::SetPageSize(Int_t size) } //______________________________________________________________________________ -TCache::TPage *TCache::ReadPage(Seek_t offset) +TCache::TPage *TCache::ReadPage(Long64_t offset) { // Read the page starting at offset in the cache and return the // page object. If there are no more free pages free pages up @@ -156,7 +156,7 @@ TCache::TPage *TCache::ReadPage(Seek_t offset) } //______________________________________________________________________________ -Int_t TCache::ReadBuffer(Seek_t offset, char *buf, Int_t len) +Int_t TCache::ReadBuffer(Long64_t offset, char *buf, Int_t len) { // Return in buf len bytes starting at offset. Returns < 0 in // case of error, 0 in case ReadBuffer() was recursively called @@ -165,9 +165,9 @@ Int_t TCache::ReadBuffer(Seek_t offset, char *buf, Int_t len) if (fRecursive) return 0; // Find in which page offset is located - Seek_t pageoffset = (offset >> fDiv) << fDiv; // offset & ~(fPageSize-1) + Long64_t pageoffset = (offset >> fDiv) << fDiv; // offset & ~(fPageSize-1) Int_t begin = Int_t(offset & (fPageSize-1)); - Seek_t boff = 0; + Long64_t boff = 0; do { Int_t blen = begin+len>fPageSize ? fPageSize-begin : len; @@ -222,7 +222,7 @@ Int_t TCache::WritePage(TPage *page) } //______________________________________________________________________________ -Int_t TCache::WriteBuffer(Seek_t offset, const char *buf, Int_t len) +Int_t TCache::WriteBuffer(Long64_t offset, const char *buf, Int_t len) { // Write a buffer to the cache. Returns < 0 in case of error, 0 in // case WriteBuffer() was recursively called via WritePage() and 1 @@ -231,9 +231,9 @@ Int_t TCache::WriteBuffer(Seek_t offset, const char *buf, Int_t len) if (fRecursive) return 0; // Find in which page offset is located - Seek_t pageoffset = (offset >> fDiv) << fDiv; // offset & ~(fPageSize-1) + Long64_t pageoffset = (offset >> fDiv) << fDiv; // offset & ~(fPageSize-1) Int_t begin = Int_t(offset & (fPageSize-1)); - Seek_t boff = 0; + Long64_t boff = 0; do { Int_t blen = begin+len>fPageSize ? fPageSize-begin : len; diff --git a/net/src/TFTP.cxx b/net/src/TFTP.cxx index f3f8a29c0bf6d92703c2c13265a8f122d7b3a508..cfedb148b5cf85c8e977b7ef45934a2ecf664649 100644 --- a/net/src/TFTP.cxx +++ b/net/src/TFTP.cxx @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TFTP.cxx,v 1.16 2003/10/22 18:48:36 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TFTP.cxx,v 1.17 2003/11/26 10:33:08 rdm Exp $ // Author: Fons Rademakers 13/02/2001 /************************************************************************* @@ -235,7 +235,7 @@ void TFTP::SetBlockSize(Int_t blockSize) } //______________________________________________________________________________ -Seek_t TFTP::PutFile(const char *file, const char *remoteName) +Long64_t TFTP::PutFile(const char *file, const char *remoteName) { // Transfer file to remote host. Returns number of bytes // sent or < 0 in case of error. Error -1 connection is still @@ -259,7 +259,8 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName) return -1; } - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 0) { if (flags > 1) { Error("PutFile", "%s not a regular file (%ld)", file, flags); @@ -303,7 +304,7 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName) TStopwatch timer; timer.Start(); - Seek_t pos = restartat & ~(fBlockSize-1); + Long64_t pos = restartat & ~(fBlockSize-1); Int_t skip = restartat - pos; #ifndef HAVE_MMAP @@ -312,7 +313,7 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName) #endif while (pos < size) { - Seek_t left = Seek_t(size - pos); + Long64_t left = Long64_t(size - pos); if (left > fBlockSize) left = fBlockSize; #ifdef HAVE_MMAP @@ -391,11 +392,11 @@ Seek_t TFTP::PutFile(const char *file, const char *remoteName) Printf("<TFTP::PutFile>: %.3f seconds, %.2f bytes per second", t, speed); - return Seek_t(size - restartat); + return Long64_t(size - restartat); } //______________________________________________________________________________ -Seek_t TFTP::GetFile(const char *file, const char *localName) +Long64_t TFTP::GetFile(const char *file, const char *localName) { // Transfer file from remote host. Returns number of bytes // received or < 0 in case of error. Error -1 connection is still @@ -442,7 +443,7 @@ Seek_t TFTP::GetFile(const char *file, const char *localName) return -2; } sscanf(mess, "%ld", &sizel); - Seek_t size = (Seek_t) sizel; + Long64_t size = (Long64_t) sizel; // check if restartat value makes sense if (restartat && (restartat >= size)) @@ -515,11 +516,11 @@ Seek_t TFTP::GetFile(const char *file, const char *localName) if (fMode == kAscii) buf2 = new char[fBlockSize]; - Seek_t pos = restartat & ~(fBlockSize-1); + Long64_t pos = restartat & ~(fBlockSize-1); Int_t skip = restartat - pos; while (pos < size) { - Seek_t left = size - pos; + Long64_t left = size - pos; if (left > fBlockSize) left = fBlockSize; @@ -606,7 +607,7 @@ Seek_t TFTP::GetFile(const char *file, const char *localName) Printf("<TFTP::GetFile>: %.3f seconds, %.2f bytes per second", t, speed); - return Seek_t(size - restartat); + return Long64_t(size - restartat); } //______________________________________________________________________________ diff --git a/net/src/TNetFile.cxx b/net/src/TNetFile.cxx index 38f10c8f2dddd5cbe38dd2b8ed4e1cfa14e9aabd..e3c947bedce995a9aa4441a1f7b8c6a608262817 100644 --- a/net/src/TNetFile.cxx +++ b/net/src/TNetFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TNetFile.cxx,v 1.41 2003/11/28 18:01:41 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TNetFile.cxx,v 1.42 2003/12/10 11:03:40 rdm Exp $ // Author: Fons Rademakers 14/08/97 /************************************************************************* @@ -147,7 +147,7 @@ Int_t TNetFile::SysClose(Int_t /*fd*/) } //______________________________________________________________________________ -Int_t TNetFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime) +Int_t TNetFile::SysStat(Int_t, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Return file stat information. The interface and return value is // identical to TSystem::GetPathInfo(). @@ -162,7 +162,7 @@ Int_t TNetFile::SysStat(Int_t, Long_t *id, Long_t *size, Long_t *flags, Long_t * Int_t kind; fSocket->Recv(msg, 128, kind); - sscanf(msg, "%ld %ld %ld %ld", id, size, flags, modtime); + sscanf(msg, "%ld %lld %ld %ld", id, size, flags, modtime); if (*id == -1) return 1; @@ -267,7 +267,7 @@ Bool_t TNetFile::ReadBuffer(char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) { Error("ReadBuffer", "error reading from cache"); return kTRUE; @@ -335,7 +335,7 @@ Bool_t TNetFile::WriteBuffer(const char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) { Error("WriteBuffer", "error writing to cache"); return kTRUE; @@ -403,7 +403,7 @@ Int_t TNetFile::Recv(Int_t &status, EMessageTypes &kind) } //______________________________________________________________________________ -void TNetFile::Seek(Seek_t offset, ERelativeTo pos) +void TNetFile::Seek(Long64_t offset, ERelativeTo pos) { // Set position from where to start reading. diff --git a/net/src/TWebFile.cxx b/net/src/TWebFile.cxx index 0a1b0825a5e548744145051f43d7d7f80886b36e..c54481351080efd3b9acf4f1feeeae7f3b01f3f0 100644 --- a/net/src/TWebFile.cxx +++ b/net/src/TWebFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/net:$Name: $:$Id: TWebFile.cxx,v 1.5 2002/12/10 02:19:46 rdm Exp $ +// @(#)root/net:$Name: $:$Id: TWebFile.cxx,v 1.6 2002/12/10 12:11:31 rdm Exp $ // Author: Fons Rademakers 17/01/97 /************************************************************************* @@ -148,7 +148,7 @@ Bool_t TWebFile::ReadBuffer(char *buf, Int_t len) } //______________________________________________________________________________ -void TWebFile::Seek(Seek_t offset, ERelativeTo pos) +void TWebFile::Seek(Long64_t offset, ERelativeTo pos) { // Set position from where to start reading. @@ -166,7 +166,7 @@ void TWebFile::Seek(Seek_t offset, ERelativeTo pos) } //______________________________________________________________________________ -Seek_t TWebFile::GetSize() const +Long64_t TWebFile::GetSize() const { // Return maximum file size to by-pass truncation checking. diff --git a/proof/src/TProof.cxx b/proof/src/TProof.cxx index 38e166637b659e4fb6351ad66d7f00a0039c36ab..156cf329f56b8891b6aa584be271a45521366e3c 100644 --- a/proof/src/TProof.cxx +++ b/proof/src/TProof.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProof.cxx,v 1.58 2003/11/25 11:34:58 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProof.cxx,v 1.59 2003/12/02 08:37:41 rdm Exp $ // Author: Fons Rademakers 13/02/97 /************************************************************************* @@ -1457,7 +1457,8 @@ Long_t TProof::CheckFile(const char *file, TSlave *slave) // Returns size of file in case file needs to be send, returns 0 in case // file is already on remote and -1 in case of error. - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; if (gSystem->GetPathInfo(file, &id, &size, &flags, &modtime) == 1) { Error("CheckFile", "cannot stat file %s", file); return -1; diff --git a/proof/src/TProofServ.cxx b/proof/src/TProofServ.cxx index 6d6187ae3157212071e2455cc6b96122fe1ca9c1..9847928010242bd491a1140124295d6bfdcf2ef1 100644 --- a/proof/src/TProofServ.cxx +++ b/proof/src/TProofServ.cxx @@ -1,4 +1,4 @@ -// @(#)root/proof:$Name: $:$Id: TProofServ.cxx,v 1.61 2003/11/26 10:33:08 rdm Exp $ +// @(#)root/proof:$Name: $:$Id: TProofServ.cxx,v 1.62 2003/12/02 08:37:41 rdm Exp $ // Author: Fons Rademakers 16/02/97 /************************************************************************* @@ -387,7 +387,8 @@ Int_t TProofServ::CatMotd() // get last modification time of the file ~/proof/.prooflast lastname = TString(kPROOF_WorkDir) + "/.prooflast"; char *last = gSystem->ExpandPathName(lastname.Data()); - Long_t id, size, flags, modtime, lasttime; + Long64_t size; + Long_t id, flags, modtime, lasttime; if (gSystem->GetPathInfo(last, &id, &size, &flags, &lasttime) == 1) lasttime = 0; diff --git a/rfio/inc/TRFIOFile.h b/rfio/inc/TRFIOFile.h index 4775a3297a8d59f815e9386d0e6d0b40bea18189..b0a5cdbb1767d4a32fe6fe5d1087caac5edb5cc7 100644 --- a/rfio/inc/TRFIOFile.h +++ b/rfio/inc/TRFIOFile.h @@ -1,4 +1,4 @@ -// @(#)root/rfio:$Name: $:$Id: TRFIOFile.h,v 1.7 2002/10/25 00:44:53 rdm Exp $ +// @(#)root/rfio:$Name: $:$Id: TRFIOFile.h,v 1.8 2003/01/13 15:05:29 rdm Exp $ // Author: Fons Rademakers 20/01/99 /************************************************************************* @@ -37,18 +37,18 @@ class TRFIOFile : public TFile { private: TUrl fUrl; //URL of file - Seek_t fOffset; //seek offet + Long64_t fOffset; //seek offet TRFIOFile() : fUrl("dummy") { } // Interface to basic system I/O routines - Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); - Int_t SysClose(Int_t fd); - Int_t SysRead(Int_t fd, void *buf, Int_t len); - Int_t SysWrite(Int_t fd, const void *buf, Int_t len); - Seek_t SysSeek(Int_t fd, Seek_t offset, Int_t whence); - Int_t SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, Long_t *modtime); - Int_t SysSync(Int_t) { /* no fsync for RFIO */ return 0; } + Int_t SysOpen(const char *pathname, Int_t flags, UInt_t mode); + Int_t SysClose(Int_t fd); + Int_t SysRead(Int_t fd, void *buf, Int_t len); + Int_t SysWrite(Int_t fd, const void *buf, Int_t len); + Long64_t SysSeek(Int_t fd, Long64_t offset, Int_t whence); + Int_t SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); + Int_t SysSync(Int_t) { /* no fsync for RFIO */ return 0; } public: TRFIOFile(const char *url, Option_t *option="", @@ -80,7 +80,7 @@ public: void *OpenDirectory(const char *name); void FreeDirectory(void *dirp); const char *GetDirEntry(void *dirp); - Int_t GetPathInfo(const char *path, Long_t *id, Long_t *size, + Int_t GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); Bool_t AccessPathName(const char *path, EAccessMode mode); diff --git a/rfio/src/TRFIOFile.cxx b/rfio/src/TRFIOFile.cxx index bf6e5fd0f8e85b473770e6ff7dd8c098bd0eb1ba..298761a6f8ffb1a0208e3fcab0bd02767d180b57 100644 --- a/rfio/src/TRFIOFile.cxx +++ b/rfio/src/TRFIOFile.cxx @@ -1,4 +1,4 @@ -// @(#)root/rfio:$Name: $:$Id: TRFIOFile.cxx,v 1.26 2003/11/13 14:37:29 rdm Exp $ +// @(#)root/rfio:$Name: $:$Id: TRFIOFile.cxx,v 1.27 2003/12/02 07:49:11 rdm Exp $ // Author: Fons Rademakers 20/01/99 /************************************************************************* @@ -278,7 +278,7 @@ Int_t TRFIOFile::SysWrite(Int_t fd, const void *buf, Int_t len) } //______________________________________________________________________________ -Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) +Long64_t TRFIOFile::SysSeek(Int_t fd, Long64_t offset, Int_t whence) { // Interface to system lseek. All arguments like in POSIX lseek // except that the offset and return value are Long_t to be able to @@ -286,7 +286,7 @@ Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) if (whence == SEEK_SET && offset == fOffset) return offset; - Seek_t ret = ::rfio_lseek(fd, offset, whence); + Long64_t ret = ::rfio_lseek(fd, offset, whence); if (ret < 0) gSystem->SetErrorStr(::rfio_serror()); @@ -297,7 +297,7 @@ Seek_t TRFIOFile::SysSeek(Int_t fd, Seek_t offset, Int_t whence) } //______________________________________________________________________________ -Int_t TRFIOFile::SysStat(Int_t fd, Long_t *id, Long_t *size, Long_t *flags, +Int_t TRFIOFile::SysStat(Int_t fd, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Interface to TSystem:GetPathInfo(). Generally implemented via @@ -341,7 +341,7 @@ Bool_t TRFIOFile::ReadBuffer(char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->ReadBuffer(fOffset, buf, len)) < 0) { Error("ReadBuffer", "error reading from cache"); return kTRUE; @@ -366,7 +366,7 @@ Bool_t TRFIOFile::WriteBuffer(const char *buf, Int_t len) if (fCache) { Int_t st; - Seek_t off = fOffset; + Long64_t off = fOffset; if ((st = fCache->WriteBuffer(fOffset, buf, len)) < 0) { Error("WriteBuffer", "error writing to cache"); return kTRUE; @@ -496,7 +496,7 @@ const char *TRFIOSystem::GetDirEntry(void *dirp) } //______________________________________________________________________________ -Int_t TRFIOSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size, +Int_t TRFIOSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Get info about a file: id, size, flags, modification time. diff --git a/table/src/TFileSet.cxx b/table/src/TFileSet.cxx index a5fd94d80cf222da4becda4128810cfb36bb37b3..4b35edae685f0466d2cc39afc3f114226d486f51 100644 --- a/table/src/TFileSet.cxx +++ b/table/src/TFileSet.cxx @@ -1,6 +1,6 @@ -// @(#)root/star:$Name: $:$Id: TFileSet.cxx,v 1.2 2003/01/03 15:03:13 fisyak Exp $ +// @(#)root/star:$Name: $:$Id: TFileSet.cxx,v 1.2 2003/01/27 20:41:36 brun Exp $ // Author: Valery Fine(fine@mail.cern.ch) 03/07/98 -// $Id: TFileSet.cxx,v 1.2 2003/01/03 15:03:13 fisyak Exp $ +// $Id: TFileSet.cxx,v 1.2 2003/01/27 20:41:36 brun Exp $ #include "TFileSet.h" #include "TBrowser.h" @@ -59,7 +59,8 @@ TFileSet::TFileSet(const TString &dirname,const Char_t *setname,Bool_t expand, I if (!maxDepth) return; - Long_t id, size, flags, modtime; + Long64_t size; + Long_t id, flags, modtime; TString dirbuf = dirname; if (expand) gSystem->ExpandPathName(dirbuf); diff --git a/tree/inc/TBasket.h b/tree/inc/TBasket.h index 46bcb7f9ba2002e7bde6516b8a85d3f498c0a422..f2b985118ac6e7009c1e8ef25d98177bd35e508e 100644 --- a/tree/inc/TBasket.h +++ b/tree/inc/TBasket.h @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBasket.h,v 1.7 2002/02/03 16:15:01 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBasket.h,v 1.8 2003/04/30 16:29:31 brun Exp $ // Author: Rene Brun 19/01/96 /************************************************************************* @@ -65,8 +65,8 @@ public: Int_t GetNevBuf() const {return fNevBuf;} Int_t GetNevBufSize() const {return fNevBufSize;} Int_t GetLast() const {return fLast;} - Int_t ReadBasketBuffers(Seek_t pos, Int_t len, TFile *file); - Int_t ReadBasketBytes(Seek_t pos, TFile *file); + Int_t ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file); + Int_t ReadBasketBytes(Long64_t pos, TFile *file); void SetBranch(TBranch *branch) {fBranch = branch;} void SetNevBufSize(Int_t n) {fNevBufSize=n;} diff --git a/tree/inc/TBranch.h b/tree/inc/TBranch.h index 54ded74605772535bf6451130262eab8d84cb22c..0890085460d0586b258a96b2ed02646ecabe8c88 100644 --- a/tree/inc/TBranch.h +++ b/tree/inc/TBranch.h @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranch.h,v 1.19 2003/07/04 13:27:35 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranch.h,v 1.20 2003/11/12 07:23:08 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -84,7 +84,7 @@ protected: Int_t *fBasketRAM; //! [fNBasketRAM] table of basket numbers in memory Int_t *fBasketBytes; //[fMaxBaskets] Lenght of baskets on file Int_t *fBasketEntry; //[fMaxBaskets] Table of first entry in eack basket - Seek_t *fBasketSeek; //[fMaxBaskets] Addresses of baskets on file + Long64_t *fBasketSeek; //[fMaxBaskets] Addresses of baskets on file TTree *fTree; //! Pointer to Tree header char *fAddress; //! Address of 1st leaf (variable or object) TDirectory *fDirectory; //! Pointer to directory where this branch buffers are stored @@ -119,7 +119,7 @@ public: TBasket *GetBasket(Int_t basket); Int_t *GetBasketBytes() const {return fBasketBytes;} Int_t *GetBasketEntry() const {return fBasketEntry;} - virtual Seek_t GetBasketSeek(Int_t basket) const; + virtual Long64_t GetBasketSeek(Int_t basket) const; TDirectory *GetDirectory() const {return fDirectory;} virtual TFile *GetFile(Int_t mode=0); const char *GetFileName() const {return fFileName.Data();} @@ -165,7 +165,7 @@ public: static void ResetCount() {fgCount = 0;} - ClassDef(TBranch,8) //Branch descriptor + ClassDef(TBranch,9) //Branch descriptor }; #endif diff --git a/tree/inc/TTree.h b/tree/inc/TTree.h index 022b25fd120614733c2707c989f4897e4823df0a..0583146a67d361b8b8d8f87600c1e9e66f551326 100644 --- a/tree/inc/TTree.h +++ b/tree/inc/TTree.h @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TTree.h,v 1.55 2003/11/12 11:09:51 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TTree.h,v 1.56 2003/11/14 11:11:21 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -119,7 +119,7 @@ protected: TVirtualTreePlayer *fPlayer; //! Pointer to current Tree player TList *fClones; //! List of cloned trees which share our addresses static Int_t fgBranchStyle; // Old/New branch style - static Int_t fgMaxTreeSize; // Maximum size of a file containg a Tree + static Long64_t fgMaxTreeSize; // Maximum size of a file containg a Tree protected: void AddClone(TTree*); @@ -209,7 +209,7 @@ public: virtual Int_t GetMakeClass() const {return fMakeClass;} virtual Int_t GetMaxEntryLoop() const {return fMaxEntryLoop;} virtual Double_t GetMaximum(const char *columname); - static Int_t GetMaxTreeSize(); + static Long64_t GetMaxTreeSize(); virtual Int_t GetMaxVirtualSize() const {return fMaxVirtualSize;} virtual Double_t GetMinimum(const char *columname); virtual Int_t GetNbranches() {return fBranches.GetEntriesFast();} @@ -275,7 +275,7 @@ public: virtual void SetEventList(TEventList *list) {fEventList = list;} virtual void SetMakeClass(Int_t make) {fMakeClass = make;} virtual void SetMaxEntryLoop(Int_t maxev=1000000000) {fMaxEntryLoop = maxev;} // *MENU* - static void SetMaxTreeSize(Int_t maxsize=1900000000); + static void SetMaxTreeSize(Long64_t maxsize=1900000000); virtual void SetMaxVirtualSize(Int_t size=0) {fMaxVirtualSize = size;} // *MENU* virtual void SetName(const char *name); // *MENU* virtual void SetNotify(TObject *obj) {fNotify = obj;} diff --git a/tree/src/TBasket.cxx b/tree/src/TBasket.cxx index 64f9d45033db1bb9e2008c6d601c6cce6c386ad2..258b287aed1e266f9cb18f009ddbe819c30ec289 100644 --- a/tree/src/TBasket.cxx +++ b/tree/src/TBasket.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBasket.cxx,v 1.23 2003/11/22 14:51:19 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBasket.cxx,v 1.24 2003/12/08 16:04:36 brun Exp $ // Author: Rene Brun 19/01/96 /************************************************************************* * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. * @@ -152,7 +152,7 @@ Int_t TBasket::GetEntryPointer(Int_t entry) } //_______________________________________________________________________ -Int_t TBasket::ReadBasketBuffers(Seek_t pos, Int_t len, TFile *file) +Int_t TBasket::ReadBasketBuffers(Long64_t pos, Int_t len, TFile *file) { //*-*-*-*-*-*-*-*-*Read basket buffers in memory and cleanup*-*-*-*-*-*-* //*-* ========================================= @@ -255,7 +255,7 @@ AfterBuffer: } //_______________________________________________________________________ -Int_t TBasket::ReadBasketBytes(Seek_t pos, TFile *file) +Int_t TBasket::ReadBasketBytes(Long64_t pos, TFile *file) { //*-*-*-*-*-*-*-*-*Read basket buffers in memory and cleanup*-*-*-*-*-*-* //*-* ========================================= diff --git a/tree/src/TBranch.cxx b/tree/src/TBranch.cxx index dbf2ab1915896c883df3ad3958bf2dbae78bcb07..bfba5859b9a868edca84e210a368fe198e46dab3 100644 --- a/tree/src/TBranch.cxx +++ b/tree/src/TBranch.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranch.cxx,v 1.63 2003/12/08 15:55:24 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranch.cxx,v 1.64 2003/12/19 13:40:26 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -166,7 +166,7 @@ TBranch::TBranch(const char *name, void *address, const char *leaflist, Int_t ba fBasketRAM = new Int_t[kMaxRAM]; for (i=0;i<kMaxRAM;i++) fBasketRAM[i] = -1; fBasketEntry = new Int_t[fMaxBaskets]; fBasketBytes = new Int_t[fMaxBaskets]; - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; for (i=0;i<fMaxBaskets;i++) { fBasketBytes[i] = 0; @@ -505,12 +505,12 @@ Int_t TBranch::Fill() Int_t newsize = TMath::Max(10,Int_t(1.5*fMaxBaskets)); fBasketEntry = TStorage::ReAllocInt(fBasketEntry, newsize, fMaxBaskets); fBasketBytes = TStorage::ReAllocInt(fBasketBytes, newsize, fMaxBaskets); -#ifndef R__LARGEFILE64 - fBasketSeek = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets); -#else - fBasketSeek = (Seek_t*)TStorage::ReAlloc(fBasketSeek, - newsize*sizeof(Seek_t),fMaxBaskets*sizeof(Seek_t)); -#endif +//#ifndef R__LARGEFILE64 +// fBasketSeek = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets); +//#else + fBasketSeek = (Long64_t*)TStorage::ReAlloc(fBasketSeek, + newsize*sizeof(Long64_t),fMaxBaskets*sizeof(Long64_t)); +//#endif fMaxBaskets = newsize; } @@ -677,7 +677,7 @@ TBasket *TBranch::GetBasket(Int_t basketnumber) } //______________________________________________________________________________ -Seek_t TBranch::GetBasketSeek(Int_t basketnumber) const +Long64_t TBranch::GetBasketSeek(Int_t basketnumber) const { //*-*-*-*-*Return address of basket in the file*-*-*-*-*-* //*-* ==================================== @@ -1069,7 +1069,7 @@ void TBranch::Refresh(TBranch *b) delete [] fBasketSeek; fBasketBytes = new Int_t[fMaxBaskets]; fBasketEntry = new Int_t[fMaxBaskets]; - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; Int_t i; for (i=0;i<fMaxBaskets;i++) { fBasketBytes[i] = b->fBasketBytes[i]; @@ -1300,7 +1300,38 @@ void TBranch::Streamer(TBuffer &b) Version_t v = b.ReadVersion(&R__s, &R__c); if (v > 5) { - TBranch::Class()->ReadBuffer(b, this, v, R__s, R__c); + //TBranch::Class()->ReadBuffer(b, this, v, R__s, R__c); + TNamed::Streamer(b); + TAttFill::Streamer(b); + b >> fCompress; + b >> fBasketSize; + b >> fEntryOffsetLen; + b >> fWriteBasket; + b >> fEntryNumber; + b >> fOffset; + b >> fMaxBaskets; + b >> fSplitLevel; + b >> fEntries; + b >> fTotBytes; + b >> fZipBytes; + fBranches.Streamer(b); + fLeaves.Streamer(b); + fBaskets.Streamer(b); + fBasketEntry = new Int_t[fMaxBaskets]; + fBasketBytes = new Int_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; + Char_t isArray; + b >> isArray; + b.ReadFastArray(fBasketBytes,fMaxBaskets); + b >> isArray; + b.ReadFastArray(fBasketEntry,fMaxBaskets); + b >> isArray; + for (Int_t i=0;i<fMaxBaskets;i++) { + if (isArray == 2) b >> fBasketSeek[i]; + else {Int_t bsize; b >> bsize; fBasketSeek[i] = (Long64_t)bsize;}; + } + fFileName.Streamer(b); + b.CheckByteCount(R__s, R__c, TBranch::IsA()); fDirectory = gDirectory; if (fFileName.Length() != 0) fDirectory = 0; @@ -1312,6 +1343,7 @@ void TBranch::Streamer(TBuffer &b) fNleaves = fLeaves.GetEntriesFast(); if (!fSplitLevel && fBranches.GetEntriesFast()) fSplitLevel = 1; gROOT->SetReadingObject(kFALSE); + return; } //====process old versions before automatic schema evolution @@ -1340,13 +1372,18 @@ void TBranch::Streamer(TBuffer &b) for (n=0;n<fMaxBaskets;n++) fBasketBytes[n] = 0; } if (v < 2) { - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; for (n=0;n<fWriteBasket;n++) { fBasketSeek[n] = GetBasket(n)->GetSeekKey(); } } else { - fBasketSeek = new Seek_t[fMaxBaskets]; - n = b.ReadArray(fBasketSeek); + fBasketSeek = new Long64_t[fMaxBaskets]; + b >> n; + for (n=0;n<fMaxBaskets;n++) { + Int_t aseek; + b >> aseek; + fBasketSeek[n] = Long64_t(aseek); + } } fDirectory = gDirectory; if (v > 2) { @@ -1360,7 +1397,37 @@ void TBranch::Streamer(TBuffer &b) //====end of old versions } else { - TBranch::Class()->WriteBuffer(b,this); + //TBranch::Class()->WriteBuffer(b,this); + UInt_t R__c = b.WriteVersion(TBranch::IsA(), kTRUE); + TNamed::Streamer(b); + TAttFill::Streamer(b); + b << fCompress; + b << fBasketSize; + b << fEntryOffsetLen; + b << fWriteBasket; + b << fEntryNumber; + b << fOffset; + b << fMaxBaskets; + b << fSplitLevel; + b << fEntries; + b << fTotBytes; + b << fZipBytes; + fBranches.Streamer(b); + fLeaves.Streamer(b); + fBaskets.Streamer(b); + b << (Char_t)1; + b.WriteFastArray(fBasketBytes,fMaxBaskets); + b << (Char_t)1; + b.WriteFastArray(fBasketEntry,fMaxBaskets); + Char_t isBigFile = 1; + if (fDirectory && fDirectory->GetFile()->GetEND() > TFile::kStartBigFile) isBigFile = 2; + b << isBigFile; + for (Int_t i=0;i<fMaxBaskets;i++) { + if (isBigFile == 2 ) b << fBasketSeek[i]; + else b << (Int_t)fBasketSeek[i]; + } + fFileName.Streamer(b); + b.SetByteCount(R__c, kTRUE); } } @@ -1391,12 +1458,12 @@ void TBranch::WriteBasket(TBasket* basket) Int_t newsize = TMath::Max(10,Int_t(1.5*fMaxBaskets)); fBasketEntry = TStorage::ReAllocInt(fBasketEntry, newsize, fMaxBaskets); fBasketBytes = TStorage::ReAllocInt(fBasketBytes, newsize, fMaxBaskets); -#ifndef R__LARGEFILE64 - fBasketSeek = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets); -#else - fBasketSeek = (Seek_t*)TStorage::ReAlloc(fBasketSeek, - newsize*sizeof(Seek_t),fMaxBaskets*sizeof(Seek_t)); -#endif +//#ifndef R__LARGEFILE64 +// fBasketSeek = TStorage::ReAllocInt(fBasketSeek, newsize, fMaxBaskets); +//#else + fBasketSeek = (Long64_t*)TStorage::ReAlloc(fBasketSeek, + newsize*sizeof(Long64_t),fMaxBaskets*sizeof(Long64_t)); +//#endif fMaxBaskets = newsize; } diff --git a/tree/src/TBranchElement.cxx b/tree/src/TBranchElement.cxx index e533928a910267fecc9177079759c16b674f8061..0cdbd4f55fb4608a8f223e99ff074800817ee935 100644 --- a/tree/src/TBranchElement.cxx +++ b/tree/src/TBranchElement.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.124 2003/12/25 17:55:20 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranchElement.cxx,v 1.125 2003/12/26 22:06:40 brun Exp $ // Author: Rene Brun 14/01/2001 /************************************************************************* @@ -148,7 +148,7 @@ TBranchElement::TBranchElement(const char *bname, TStreamerInfo *sinfo, Int_t id fBasketSize = basketsize; fBasketEntry = new Int_t[fMaxBaskets]; fBasketBytes = new Int_t[fMaxBaskets]; - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; for (Int_t i=0;i<fMaxBaskets;i++) { fBasketBytes[i] = 0; @@ -324,7 +324,7 @@ TBranchElement::TBranchElement(const char *bname, TClonesArray *clones, Int_t ba fBasketSize = basketsize; fBasketEntry = new Int_t[fMaxBaskets]; fBasketBytes = new Int_t[fMaxBaskets]; - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; for (Int_t i=0;i<fMaxBaskets;i++) { fBasketBytes[i] = 0; diff --git a/tree/src/TBranchObject.cxx b/tree/src/TBranchObject.cxx index 220f3a51bc5c57fb670acd2854450f465df2b54c..037d95644cc94798d96b7f3cce94deb6a94321d2 100644 --- a/tree/src/TBranchObject.cxx +++ b/tree/src/TBranchObject.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TBranchObject.cxx,v 1.25 2003/04/04 16:35:49 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TBranchObject.cxx,v 1.26 2003/12/08 15:55:24 brun Exp $ // Author: Rene Brun 11/02/96 /************************************************************************* @@ -82,7 +82,7 @@ TBranchObject::TBranchObject(const char *name, const char *classname, void *addo fClassName = classname; fBasketEntry = new Int_t[fMaxBaskets]; fBasketBytes = new Int_t[fMaxBaskets]; - fBasketSeek = new Seek_t[fMaxBaskets]; + fBasketSeek = new Long64_t[fMaxBaskets]; fOldObject = 0; for (Int_t i=0;i<fMaxBaskets;i++) { diff --git a/tree/src/TTree.cxx b/tree/src/TTree.cxx index b2dc557269668812935856f3ac9077bbec0c3ba7..d402722afde58783f0a364364f5b1067c8d3a68c 100644 --- a/tree/src/TTree.cxx +++ b/tree/src/TTree.cxx @@ -1,4 +1,4 @@ -// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.172 2003/12/19 13:40:26 brun Exp $ +// @(#)root/tree:$Name: $:$Id: TTree.cxx,v 1.173 2003/12/27 16:14:31 brun Exp $ // Author: Rene Brun 12/01/96 /************************************************************************* @@ -300,8 +300,8 @@ #include "TCut.h" #include "Api.h" -Int_t TTree::fgBranchStyle = 1; //use new TBranch style with TBranchElement -Int_t TTree::fgMaxTreeSize = 1900000000; +Int_t TTree::fgBranchStyle = 1; //use new TBranch style with TBranchElement +Long64_t TTree::fgMaxTreeSize = 1900000000; TTree *gTree; const Int_t kMaxLen = 512; @@ -2209,7 +2209,7 @@ Int_t TTree::Fill() //to the case where the Tree is in the top level directory. if (!fDirectory) return nbytes; TFile *file = fDirectory->GetFile(); - if (file && file->GetEND() > (Double_t)fgMaxTreeSize) { + if (file && file->GetEND() > fgMaxTreeSize) { if (fDirectory == (TDirectory*)file) ChangeFile(file); } @@ -2861,7 +2861,7 @@ Double_t TTree::GetMaximum(const char *columname) //______________________________________________________________________________ -Int_t TTree::GetMaxTreeSize() +Long64_t TTree::GetMaxTreeSize() { // static function // return maximum size of a Tree file @@ -3783,7 +3783,7 @@ void TTree::SetFileNumber(Int_t number) } //______________________________________________________________________________ -void TTree::SetMaxTreeSize(Int_t maxsize) +void TTree::SetMaxTreeSize(Long64_t maxsize) { // static function // Set the maximum size of a Tree file. diff --git a/treeplayer/inc/TFileDrawMap.h b/treeplayer/inc/TFileDrawMap.h index 82d8b4cb0184d33738e5e62c4442ba85887c68ed..6d5706fecf8210670371a997a2aac0593e39c956 100644 --- a/treeplayer/inc/TFileDrawMap.h +++ b/treeplayer/inc/TFileDrawMap.h @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TFileDrawMap.h,v 1.1 2003/01/17 17:48:56 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TFileDrawMap.h,v 1.2 2003/01/19 21:18:36 brun Exp $ // Author: Rene Brun 15/01/2003 /************************************************************************* @@ -41,9 +41,9 @@ protected: Int_t fXsize; //size in bytes of X axis Int_t fYsize; //size in K/Mbytes of Y axis - virtual void DrawMarker(Int_t marker, Seek_t eseek); + virtual void DrawMarker(Int_t marker, Long64_t eseek); virtual Bool_t GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char *info) const; - virtual void PaintBox(TBox &box, Seek_t bseek, Int_t nbytes); + virtual void PaintBox(TBox &box, Long64_t bseek, Int_t nbytes); virtual void PaintDir(TDirectory *dir, const char *keys); virtual TObject *GetObject(); diff --git a/treeplayer/src/TFileDrawMap.cxx b/treeplayer/src/TFileDrawMap.cxx index 8df3d5eee266db356bb95b96a3c9a8a2df6fd427..b6ae8788295744e0dce2aa84d5ecd2f702e641a7 100644 --- a/treeplayer/src/TFileDrawMap.cxx +++ b/treeplayer/src/TFileDrawMap.cxx @@ -1,4 +1,4 @@ -// @(#)root/treeplayer:$Name: $:$Id: TFileDrawMap.cxx,v 1.3 2003/01/19 21:47:50 brun Exp $ +// @(#)root/treeplayer:$Name: $:$Id: TFileDrawMap.cxx,v 1.4 2003/01/20 12:57:30 brun Exp $ // Author: Rene Brun 15/01/2003 /************************************************************************* @@ -244,7 +244,7 @@ Int_t TFileDrawMap::DistancetoPrimitive(Int_t px, Int_t py) } //______________________________________________________________________________ -void TFileDrawMap::DrawMarker(Int_t marker, Seek_t eseek) +void TFileDrawMap::DrawMarker(Int_t marker, Long64_t eseek) { // Draw marker @@ -381,9 +381,9 @@ Bool_t TFileDrawMap::GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char Double_t x = gPad->AbsPixeltoX(px); Double_t y = gPad->AbsPixeltoY(py); Int_t iy = (Int_t)y; - Seek_t pbyte = (Seek_t)(fXsize*iy+x); + Long64_t pbyte = (Long64_t)(fXsize*iy+x); Int_t nbytes; - Seek_t bseek; + Long64_t bseek; TDirectory *dirsav = gDirectory; dir->cd(); @@ -463,7 +463,7 @@ Bool_t TFileDrawMap::GetObjectInfoDir(TDirectory *dir, Int_t px, Int_t py, char return kTRUE; } } - sprintf(info,"(byte=%d)",pbyte); + sprintf(info,"(byte=%lld)",pbyte); dirsav->cd(); return kFALSE; } @@ -501,7 +501,7 @@ void TFileDrawMap::Paint(Option_t *) } //______________________________________________________________________________ -void TFileDrawMap::PaintBox(TBox &box, Seek_t bseek, Int_t nbytes) +void TFileDrawMap::PaintBox(TBox &box, Long64_t bseek, Int_t nbytes) { // Paint the object at bseek with nbytes using the box object @@ -543,7 +543,7 @@ void TFileDrawMap::PaintDir(TDirectory *dir, const char *keys) TRegexp re(keys,kTRUE); while ((key = (TKey*)next())) { Int_t nbytes = key->GetNbytes(); - Seek_t bseek = key->GetSeekKey(); + Long64_t bseek = key->GetSeekKey(); TClass *cl = gROOT->GetClass(key->GetClassName()); if (cl) { color = (Int_t)(cl->GetUniqueID()%20); @@ -574,7 +574,7 @@ void TFileDrawMap::PaintDir(TDirectory *dir, const char *keys) box.SetFillColor(color); Int_t nbaskets = branch->GetMaxBaskets(); for (Int_t i=0;i<nbaskets;i++) { - Seek_t bseek = branch->GetBasketSeek(i); + Long64_t bseek = branch->GetBasketSeek(i); if (!bseek) break; Int_t nbytes = branch->GetBasketBytes()[i]; PaintBox(box,bseek,nbytes); diff --git a/unix/inc/TUnixSystem.h b/unix/inc/TUnixSystem.h index d5fcd65e2324494ef23fdefa154fb9c44922e213..5b4e58f2649c1cd54f02a98859c4740e1c304741 100644 --- a/unix/inc/TUnixSystem.h +++ b/unix/inc/TUnixSystem.h @@ -1,4 +1,4 @@ -// @(#)root/unix:$Name: $:$Id: TUnixSystem.h,v 1.13 2003/09/23 22:06:16 rdm Exp $ +// @(#)root/unix:$Name: $:$Id: TUnixSystem.h,v 1.14 2003/12/01 07:15:26 rdm Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -52,7 +52,7 @@ protected: static void UnixResetSignal(ESignals sig); static void UnixResetSignals(); static void UnixIgnoreSignal(ESignals sig, Bool_t ignore); - static int UnixFilestat(const char *path, Long_t *id, Long_t *size, + static int UnixFilestat(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); static int UnixFSstat(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree); @@ -144,7 +144,7 @@ public: int Link(const char *from, const char *to); int Symlink(const char *from, const char *to); int Unlink(const char *name); - int GetPathInfo(const char *path, Long_t *id, Long_t *size, + int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree); diff --git a/unix/src/TUnixSystem.cxx b/unix/src/TUnixSystem.cxx index 2bf729e9c0995c432b210796ab30d157c96a5602..5b41301e519ef99a829d2bea38501ee77b94928d 100644 --- a/unix/src/TUnixSystem.cxx +++ b/unix/src/TUnixSystem.cxx @@ -1,4 +1,4 @@ -// @(#)root/unix:$Name: $:$Id: TUnixSystem.cxx,v 1.80 2003/12/11 16:35:19 rdm Exp $ +// @(#)root/unix:$Name: $:$Id: TUnixSystem.cxx,v 1.81 2003/12/12 15:13:34 rdm Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -1032,7 +1032,7 @@ int TUnixSystem::Rename(const char *f, const char *t) } //______________________________________________________________________________ -int TUnixSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size, +int TUnixSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Get info about a file: id, size, flags, modification time. @@ -1095,10 +1095,15 @@ int TUnixSystem::Unlink(const char *name) // Unlink, i.e. remove, a file or directory. Returns 0 when succesfull, // -1 in case of failure. +#if defined(R__LINUX) + struct stat64 finfo; + if (stat64(name, &finfo) < 0) + return -1; +#else struct stat finfo; - if (stat(name, &finfo) < 0) return -1; +#endif if (S_ISDIR(finfo.st_mode)) return ::rmdir(name); @@ -2931,7 +2936,7 @@ const char *TUnixSystem::UnixGetdirentry(void *dirp1) //---- files ------------------------------------------------------------------- //______________________________________________________________________________ -int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long_t *size, +int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Get info about a file: id, size, flags, modification time. @@ -2944,9 +2949,13 @@ int TUnixSystem::UnixFilestat(const char *path, Long_t *id, Long_t *size, // The function returns 0 in case of success and 1 if the file could // not be stat'ed. +#if defined(R__LINUX) + struct stat64 statbuf; + if (path != 0 && stat64(path, &statbuf) >= 0) { +#else struct stat statbuf; - if (path != 0 && stat(path, &statbuf) >= 0) { +#endif if (id) #if defined(R__KCC) && defined(R__LINUX) *id = (statbuf.st_dev.__val[0] << 24) + statbuf.st_ino; diff --git a/winnt/inc/TWinNTSystem.h b/winnt/inc/TWinNTSystem.h index 751f4f8f21107b69d1d71ad19535bd5c6b35cb93..6019f74ac37f369ce0b589061a1d0890e3f20a50 100644 --- a/winnt/inc/TWinNTSystem.h +++ b/winnt/inc/TWinNTSystem.h @@ -1,4 +1,4 @@ -// @(#)root/winnt:$Name: $:$Id: TWinNTSystem.h,v 1.18 2003/06/25 05:49:28 brun Exp $ +// @(#)root/winnt:$Name: $:$Id: TWinNTSystem.h,v 1.19 2003/09/23 22:06:16 rdm Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -192,7 +192,7 @@ public: int Link(const char *from, const char *to); int Unlink(const char *name); int SetNonBlock(int fd); - int GetPathInfo(const char *path, Long_t *id, Long_t *size, + int GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime); int GetFsInfo(const char *path, Long_t *id, Long_t *bsize, Long_t *blocks, Long_t *bfree); diff --git a/winnt/src/TWinNTSystem.cxx b/winnt/src/TWinNTSystem.cxx index ffaa10ff4994c3dfd5c8ff96af04dd4797622764..4711528b56770dd17c34ae1fc031d4f9157f36d2 100644 --- a/winnt/src/TWinNTSystem.cxx +++ b/winnt/src/TWinNTSystem.cxx @@ -1,4 +1,4 @@ -// @(#)root/winnt:$Name: $:$Id: TWinNTSystem.cxx,v 1.53 2003/12/09 16:50:50 brun Exp $ +// @(#)root/winnt:$Name: $:$Id: TWinNTSystem.cxx,v 1.54 2003/12/13 16:01:27 brun Exp $ // Author: Fons Rademakers 15/09/95 /************************************************************************* @@ -1339,7 +1339,7 @@ int TWinNTSystem::Rename(const char *f, const char *t) } //______________________________________________________________________________ -int TWinNTSystem::GetPathInfo(const char *path, Long_t *id, Long_t *size, +int TWinNTSystem::GetPathInfo(const char *path, Long_t *id, Long64_t *size, Long_t *flags, Long_t *modtime) { // Get info about a file: id, size, flags, modification time.