11 #ifndef ROOT_ProcFileElements 
   12 #define ROOT_ProcFileElements 
   18 class ProcFileElements : 
public TObject {
 
   21    class ProcFileElement : 
public TObject {
 
   25       ProcFileElement(Long64_t fst = 0, Long64_t lst = -1) :
 
   26                                       fFirst(fst), fLast(lst) { }
 
   27       virtual ~ProcFileElement() { }
 
   29       Int_t       Compare(
const TObject *obj) 
const;
 
   31       Bool_t      IsSortable()
 const { 
return kTRUE; }
 
   32       Int_t       MergeElement(ProcFileElement *);
 
   34       Int_t       Overlapping(ProcFileElement *);
 
   35       void        Print(Option_t *option=
"") 
const;
 
   37       ClassDef(ProcFileElement, 1); 
 
   42    TSortedList   *fElements;      
 
   48    ProcFileElements(
const char *fn = 
"") : fName(fn), fElements(0),
 
   49                                            fFirst(0), fLast(-1) { }
 
   50    virtual ~ProcFileElements() { 
if (fElements) { fElements->SetOwner();
 
   52    const char *   GetName()
 const { 
return fName; }
 
   53    ULong_t        Hash()
 const { 
return fName.Hash(); }
 
   55    Int_t          Add(Long64_t fst = 0, Long64_t lst = -1);
 
   56    Int_t          Merge(TCollection *list);
 
   58    TSortedList   *GetListOfElements()
 const { 
return fElements; }
 
   59    Int_t          GetNumElements()
 const { 
return (fElements ? fElements->GetSize() : 0); }
 
   61    Long64_t       GetFirst()
 const { 
return fFirst; }
 
   62    Long64_t       GetLast()
 const { 
return fLast; }
 
   64    void           Print(Option_t *option=
"") 
const;
 
   66    ClassDef(ProcFileElements, 1);