]> git.uio.no Git - u/mrichter/AliRoot.git/blob - OADB/AliOADBContainer.h
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / OADB / AliOADBContainer.h
1 #ifndef AliOADBContainer_H
2 #define AliOADBContainer_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     Offline Analysis Database Container and Service Class 
10 //     Author: Andreas Morsch, CERN
11 //-------------------------------------------------------------------------
12
13 #include <TNamed.h>
14 #include <TList.h>
15 #include <TArrayI.h>
16 #include <TObjArray.h>
17
18 class TObjArray;
19 class TArrayI;
20
21 class AliOADBContainer : public TNamed {
22
23  public :
24   AliOADBContainer();
25   AliOADBContainer(char* name);
26   virtual ~AliOADBContainer();
27   AliOADBContainer(const AliOADBContainer& cont); 
28   AliOADBContainer& operator=(const AliOADBContainer& cont);
29 // Object adding and removal
30   void   AppendObject(TObject* obj, Int_t lower, Int_t upper);
31   void   UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
32   void   RemoveObject(Int_t index);
33   void   AddDefaultObject(TObject* obj);
34   void   CleanDefaultList();
35   TList* GetDefaultList() const {return fDefaultList;}
36 // I/O  
37   void  WriteToFile(char* fname)  const;
38   Int_t InitFromFile(char* fname, char* key);
39 // Getters
40   Int_t GetNumberOfEntries()    const {return fEntries;}
41   Int_t LowerLimit(Int_t idx)   const {return fLowerLimits[idx];}
42   Int_t UpperLimit(Int_t idx)   const {return fUpperLimits[idx];}
43   TObject* GetObject(Int_t run, char* def = "") const;
44   TObject* GetObjectByIndex(Int_t run) const;
45   TObject* GetDefaultObject(char* key) 
46   {return(fDefaultList->FindObject(key));}
47 // Debugging  
48   void List();
49 // Browsable
50   virtual Bool_t        IsFolder() const { return kTRUE; }
51   void Browse(TBrowser *b);
52
53  private:
54   Int_t HasOverlap(Int_t lower, Int_t upper) const;
55   Int_t GetIndexForRun(Int_t run) const;
56  private :
57   TObjArray*               fArray;         // Array with objects corresponding to run ranges
58   TList*                   fDefaultList;   // List with default arrays
59   TArrayI                  fLowerLimits;   // lower limit of run range
60   TArrayI                  fUpperLimits;   // upper limit of run range
61   Int_t                    fEntries;       // Number of entries
62 //  TString                  fRelPath;       // Relative path to object
63   
64   ClassDef(AliOADBContainer, 1);
65 };
66
67 #endif