]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - OADB/AliOADBContainer.h
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / OADB / AliOADBContainer.h
index 4ab6fb9bfd0560c586e7147d70d96c9fd7e38798..be5d2c95b77cfc1c50c17ade5a540885504c321a 100644 (file)
@@ -11,6 +11,7 @@
 //-------------------------------------------------------------------------
 
 #include <TNamed.h>
+#include <TList.h>
 #include <TArrayI.h>
 #include <TObjArray.h>
 
@@ -26,10 +27,12 @@ class AliOADBContainer : public TNamed {
   AliOADBContainer(const AliOADBContainer& cont); 
   AliOADBContainer& operator=(const AliOADBContainer& cont);
 // Object adding and removal
-  void  AppendObject(TObject* obj, Int_t lower, Int_t upper);
-  void  UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
-  void  RemoveObject(Int_t index);
-  Int_t GetIndexForRun(Int_t run) const;
+  void   AppendObject(TObject* obj, Int_t lower, Int_t upper);
+  void   UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
+  void   RemoveObject(Int_t index);
+  void   AddDefaultObject(TObject* obj);
+  void   CleanDefaultList();
+  TList* GetDefaultList() const {return fDefaultList;}
 // I/O  
   void  WriteToFile(char* fname)  const;
   Int_t InitFromFile(char* fname, char* key);
@@ -37,14 +40,27 @@ class AliOADBContainer : public TNamed {
   Int_t GetNumberOfEntries()    const {return fEntries;}
   Int_t LowerLimit(Int_t idx)   const {return fLowerLimits[idx];}
   Int_t UpperLimit(Int_t idx)   const {return fUpperLimits[idx];}
-  TObject* GetObject(Int_t idx) const {return fArray->At(idx);}
+  TObject* GetObject(Int_t run, char* def = "") const;
+  TObject* GetObjectByIndex(Int_t run) const;
+  TObject* GetDefaultObject(char* key) 
+  {return(fDefaultList->FindObject(key));}
 // Debugging  
   void List();
+// Browsable
+  virtual Bool_t       IsFolder() const { return kTRUE; }
+  void Browse(TBrowser *b);
+
+ private:
+  Int_t HasOverlap(Int_t lower, Int_t upper) const;
+  Int_t GetIndexForRun(Int_t run) const;
  private :
-  TObjArray*               fArray;         // Array with objects
+  TObjArray*               fArray;         // Array with objects corresponding to run ranges
+  TList*                   fDefaultList;   // List with default arrays
   TArrayI                  fLowerLimits;   // lower limit of run range
   TArrayI                  fUpperLimits;   // upper limit of run range
   Int_t                    fEntries;       // Number of entries
+//  TString                  fRelPath;       // Relative path to object
+  
   ClassDef(AliOADBContainer, 1);
 };