]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/CDB/AliCDBPath.h
ATO-15 STEER/CDB/AliOCDBtoolkit.{h,cxx} - implementing LoadOCDB functions + reorderi...
[u/mrichter/AliRoot.git] / STEER / CDB / AliCDBPath.h
1 #ifndef ALI_CDB_PATH_H
2 #define ALI_CDB_PATH_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /////////////////////////////////////////////////////////////////////
8 //                                                                 //
9 //  class AliCDBPath                                               //
10 //  Path string identifying the object:                            //
11 //  "level0/level1/level2"                                         //
12 //  (was: "Detector/DBType/DetSpecType")                           //
13 //  (example: "ZDC/Calib/Pedestals")                               //
14 //                                                                 //
15 /////////////////////////////////////////////////////////////////////
16
17 #include <TObject.h>
18 #include <TString.h>
19
20 class AliCDBPath: public TObject {
21
22   public:
23
24     AliCDBPath();
25
26     AliCDBPath(const AliCDBPath& other);
27
28     AliCDBPath(const char* level0, const char* level1, 
29         const char* level2);
30
31     AliCDBPath(const char* path);
32
33     AliCDBPath(const TString& path);
34
35     virtual ~AliCDBPath();
36
37
38     const TString& GetPath() const {return fPath;}
39     void  SetPath(const char* path) {fPath=path; InitPath();}
40
41     const char* GetLevel(Int_t i) const;
42
43     Bool_t IsValid() const {return fIsValid;}
44
45     Bool_t IsWildcard() const {return fIsWildcard;}
46
47     Bool_t Level0Comprises(const TString& str) const;
48     Bool_t Level1Comprises(const TString& str) const;
49     Bool_t Level2Comprises(const TString& str) const;
50
51     Bool_t Comprises(const AliCDBPath& other) const;
52
53   private:
54
55     Bool_t IsWord(const TString& str);
56
57     void InitPath();
58
59     void Init();
60
61     TString fPath;              // detector pathname (Detector/DBType/SpecType)
62     TString fLevel0;    // level0 name (ex. detector: ZDC, TPC...)
63     TString fLevel1;    // level1 name (ex. DB type, Calib, Align)
64     TString fLevel2;    // level2 name (ex. DetSpecType, pedestals, gain...)
65
66     Bool_t fIsValid;    // validity flag
67     Bool_t fIsWildcard; // wildcard flag
68
69     ClassDef(AliCDBPath, 1); 
70 };
71
72 #endif