]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/CDB/AliCDBLocal.h
Update master to aliroot
[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   void QueryValidCVMFSFiles(TString& cvmfsOcdbTag);
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     AliCDBLocalParam(const char* dbPath, const char* uri);
93
94     virtual ~AliCDBLocalParam();
95
96     const TString& GetPath() const {return fDBPath;};
97
98     virtual AliCDBParam* CloneParam() const;
99
100     virtual ULong_t Hash() const;
101     virtual Bool_t IsEqual(const TObject* obj) const;
102
103   private:
104
105     TString fDBPath; // path of the DB folder
106
107     ClassDef(AliCDBLocalParam, 0);
108 };
109
110 #endif