Line data Source code
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 0 : virtual Bool_t IsReadOnly() const {return kFALSE;};
23 0 : 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 3768 : ClassDef(AliCDBLocal, 0); // access class to a DataBase in a local storage
60 : };
61 :
62 : /////////////////////////////////////////////////////////////////////
63 : // //
64 : // class AliCDBLocalFactory //
65 : // //
66 : /////////////////////////////////////////////////////////////////////
67 :
68 32 : 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 130 : ClassDef(AliCDBLocalFactory, 0);
79 : };
80 :
81 : /////////////////////////////////////////////////////////////////////
82 : // //
83 : // class AliCDBLocalParam //
84 : // //
85 : /////////////////////////////////////////////////////////////////////
86 :
87 0 : 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 24 : 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 222 : ClassDef(AliCDBLocalParam, 0);
108 : };
109 :
110 : #endif
|