Added methods for finding a given module in the DDL map (F. Prino)
[u/mrichter/AliRoot.git] / STEER / AliCDBLocal.h
1 #ifndef ALI_CDB_LOCAL_H
2 #define ALI_CDB_LOCAL_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 AliCDBLocal                                              //
10 //  access class to a DataBase in a local storage                  //
11 //                                                                 //
12 /////////////////////////////////////////////////////////////////////
13
14 #include "AliCDBStorage.h"
15 #include "AliCDBManager.h"
16
17 class AliCDBLocal: public AliCDBStorage {
18         friend class AliCDBLocalFactory;
19
20 public:
21
22         virtual Bool_t IsReadOnly() const {return kFALSE;};
23         virtual Bool_t HasSubVersion() const {return kTRUE;};
24         virtual Bool_t Contains(const char* path) const;
25         virtual Int_t  GetLatestVersion(const char* path, Int_t run);
26         virtual Int_t  GetLatestSubVersion(const char* path, Int_t run, Int_t version=-1);
27         virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const;
28
29 protected:
30
31         virtual AliCDBEntry*    GetEntry(const AliCDBId& queryId);
32         virtual AliCDBId*       GetEntryId(const AliCDBId& queryId);
33         virtual TList*          GetEntries(const AliCDBId& queryId);
34         virtual Bool_t          PutEntry(AliCDBEntry* entry);
35         virtual TList*          GetIdListFromFile(const char* fileName);
36
37 private:
38
39         AliCDBLocal(const AliCDBLocal & source);
40         AliCDBLocal & operator=(const AliCDBLocal & source);
41         AliCDBLocal(const char* baseDir);
42         virtual ~AliCDBLocal();
43         
44         Bool_t FilenameToId(const char* filename, AliCDBRunRange& runRange, 
45                         Int_t& version, Int_t& subVersion);
46
47         Bool_t PrepareId(AliCDBId& id);
48 //      Bool_t GetId(const AliCDBId& query, AliCDBId& result);
49         AliCDBId* GetId(const AliCDBId& query);
50
51         virtual void QueryValidFiles();
52
53         void GetEntriesForLevel0(const char* level0, const AliCDBId& query, TList* result);
54         void GetEntriesForLevel1(const char* level0, const char* Level1,
55                         const AliCDBId& query, TList* result);
56
57         TString fBaseDirectory; // path of the DB folder
58
59         ClassDef(AliCDBLocal, 0); // access class to a DataBase in a local storage
60 };
61
62 /////////////////////////////////////////////////////////////////////
63 //                                                                 //
64 //  class AliCDBLocalFactory                                       //
65 //                                                                 //
66 /////////////////////////////////////////////////////////////////////
67
68 class AliCDBLocalFactory: public AliCDBStorageFactory {
69
70 public:
71
72         virtual Bool_t Validate(const char* dbString);
73         virtual AliCDBParam* CreateParameter(const char* dbString);
74
75 protected:
76         virtual AliCDBStorage* Create(const AliCDBParam* param);
77
78         ClassDef(AliCDBLocalFactory, 0);
79 };
80
81 /////////////////////////////////////////////////////////////////////
82 //                                                                 //
83 //  class AliCDBLocalParam                                         //
84 //                                                                 //
85 /////////////////////////////////////////////////////////////////////
86
87 class AliCDBLocalParam: public AliCDBParam {
88         
89 public:
90         AliCDBLocalParam();
91         AliCDBLocalParam(const char* dbPath);
92         
93         virtual ~AliCDBLocalParam();
94
95         const TString& GetPath() const {return fDBPath;};
96
97         virtual AliCDBParam* CloneParam() const;
98
99         virtual ULong_t Hash() const;
100         virtual Bool_t IsEqual(const TObject* obj) const;
101
102 private:
103
104         TString fDBPath; // path of the DB folder
105
106         ClassDef(AliCDBLocalParam, 0);
107 };
108
109 #endif