]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/CDB/AliCDBLocal.h
Merge branch 'master', remote branch 'origin' into TPCdev
[u/mrichter/AliRoot.git] / STEER / CDB / 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 Bool_t IdToFilename(const AliCDBId& id, TString& filename) const;
26         virtual void SetRetry(Int_t /* nretry */, Int_t /* initsec */);
27
28 protected:
29
30         virtual AliCDBEntry*    GetEntry(const AliCDBId& queryId);
31         virtual AliCDBId*       GetEntryId(const AliCDBId& queryId);
32         virtual TList*          GetEntries(const AliCDBId& queryId);
33         virtual Bool_t          PutEntry(AliCDBEntry* entry, const char* mirrors="");
34         virtual TList*          GetIdListFromFile(const char* fileName);
35
36 private:
37
38         AliCDBLocal(const AliCDBLocal & source);
39         AliCDBLocal & operator=(const AliCDBLocal & source);
40         AliCDBLocal(const char* baseDir);
41         virtual ~AliCDBLocal();
42         
43         Bool_t FilenameToId(const char* filename, AliCDBRunRange& runRange, 
44                         Int_t& version, Int_t& subVersion);
45
46         Bool_t PrepareId(AliCDBId& id);
47 //      Bool_t GetId(const AliCDBId& query, AliCDBId& result);
48         AliCDBId* GetId(const AliCDBId& query);
49
50         virtual void QueryValidFiles();
51
52         void GetEntriesForLevel0(const char* level0, const AliCDBId& query, TList* result);
53         void GetEntriesForLevel1(const char* level0, const char* Level1,
54                         const AliCDBId& query, TList* result);
55
56         TString fBaseDirectory; // path of the DB folder
57
58         ClassDef(AliCDBLocal, 0); // access class to a DataBase in a local storage
59 };
60
61 /////////////////////////////////////////////////////////////////////
62 //                                                                 //
63 //  class AliCDBLocalFactory                                       //
64 //                                                                 //
65 /////////////////////////////////////////////////////////////////////
66
67 class AliCDBLocalFactory: public AliCDBStorageFactory {
68
69 public:
70
71         virtual Bool_t Validate(const char* dbString);
72         virtual AliCDBParam* CreateParameter(const char* dbString);
73
74 protected:
75         virtual AliCDBStorage* Create(const AliCDBParam* param);
76
77         ClassDef(AliCDBLocalFactory, 0);
78 };
79
80 /////////////////////////////////////////////////////////////////////
81 //                                                                 //
82 //  class AliCDBLocalParam                                         //
83 //                                                                 //
84 /////////////////////////////////////////////////////////////////////
85
86 class AliCDBLocalParam: public AliCDBParam {
87         
88 public:
89         AliCDBLocalParam();
90         AliCDBLocalParam(const char* dbPath);
91         AliCDBLocalParam(const char* dbPath, const char* uri);
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