Getters added.
[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 <TArrayI.h>
15 #include <TObjArray.h>
16
17 class TObjArray;
18 class TArrayI;
19
20 class AliOADBContainer : public TNamed {
21
22  public :
23   AliOADBContainer();
24   AliOADBContainer(char* name);
25   virtual ~AliOADBContainer();
26   AliOADBContainer(const AliOADBContainer& cont); 
27   AliOADBContainer& operator=(const AliOADBContainer& cont);
28 // Object adding and removal
29   void  AppendObject(TObject* obj, Int_t lower, Int_t upper);
30   void  UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
31   void  RemoveObject(Int_t index);
32   Int_t GetIndexForRun(Int_t run) const;
33 // I/O  
34   void  WriteToFile(char* fname)  const;
35   Int_t InitFromFile(char* fname, char* key);
36 // Getters
37   Int_t GetNumberOfEntries()    const {return fEntries;}
38   Int_t LowerLimit(Int_t idx)   const {return fLowerLimits[idx];}
39   Int_t UpperLimit(Int_t idx)   const {return fUpperLimits[idx];}
40   TObject* GetObject(Int_t idx) const {return fArray->At(idx);}
41 // Debugging  
42   void List();
43  private :
44   TObjArray*               fArray;         // Array with objects
45   TArrayI                  fLowerLimits;   // lower limit of run range
46   TArrayI                  fUpperLimits;   // upper limit of run range
47   Int_t                    fEntries;       // Number of entries
48   ClassDef(AliOADBContainer, 1);
49 };
50
51 #endif