FreeSegments

freesegments.txt

//Format of FreeSegments record, release 3.02.06.  It is never compressed.
//It is probably not accessed by its key, but from its offset given in the file header.
// ----------TKey---------------
//  byte 0->3  Nbytes    = Number of bytes in compressed record (TKey+data)       TKey::fNbytes
//       4->5  Version   = TKey class version identifier                          TKey::fVersion
//       6->9  ObjLen    = Number of bytes of uncompressed data                   TKey::fObjLen
//      10->13 Datime    = Date and time when record was written to file          TKey::fDatime
//                       | (year-1995)<<26|month<<22|day<<17|hour<<12|minute<<6|second
//      14->15 KeyLen    = Number of bytes in key structure  (TKey)               TKey::fKeyLen
//      16->17 Cycle     = Cycle of key                                           TKey::fCycle
//      18->21 SeekKey   = Byte offset of record itself (consistency check)       TKey::fSeekKey
//      22->25 SeekPdir  = Byte offset of parent directory record (TFile)         TKey::fSeekPdir
//      26->26 lname     = Number of bytes in the class name (5)                  TKey::fClassName
//      27->.. ClassName = Object Class Name ("TFile")                            TKey::fClassName
//       0->0  lname     = Number of bytes in the object name                     TNamed::fName
//       1->.. Name      = lName bytes with the name of the object <file name>    TNamed::fName
//       0->0  lTitle    = Number of bytes in the object title                    TNamed::fTitle
//       1->.. Title     = lTitle bytes with the title of the object <file title> TNamed::fTitle
// ----------DATA---------------
//       0->1  Version   = TFree class version identifier                         TFree::Class_Version()
//       2->5  fFirst    = First free byte of first free segment                  TFree::fFirst
//       6->9  fLast     = Byte after last free byte of first free segment        TFree::fLast
//       ....  Sequentially, Version, fFirst and fLast of additional free segments.
//       ....  There is always one free segment beginning at file end and ending before 2000000000.