- Three classes by MinJung Kweon AliHFEpriVtx, AliHFEsecVtx and AliHFEmcQA for primar...
[u/mrichter/AliRoot.git] / STEER / AliCDBDump.h
1 #ifndef ALI_CDB_DUMP_H
2 #define ALI_CDB_DUMP_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 AliCDBDump                                               //
10 //  access class to a DataBase in a dump storage (single file)     //
11 //                                                                 //
12 /////////////////////////////////////////////////////////////////////
13
14 #include "AliCDBStorage.h"
15 #include "AliCDBManager.h"
16
17 class TDirectory;
18 class TFile;
19
20 class AliCDBDump: public AliCDBStorage {
21         friend class AliCDBDumpFactory;
22
23 public:
24
25         virtual Bool_t IsReadOnly() const {return fReadOnly;};
26         virtual Bool_t HasSubVersion() const {return kFALSE;};
27         virtual Bool_t Contains(const char* path) const;
28         virtual Int_t GetLatestVersion(const char* path, Int_t run);
29         virtual Int_t GetLatestSubVersion(const char* path, Int_t run, Int_t version=-1);
30         virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const;
31
32 protected:
33
34         virtual AliCDBEntry*    GetEntry(const AliCDBId& query);
35         virtual AliCDBId*       GetEntryId(const AliCDBId& query);
36         virtual TList*          GetEntries(const AliCDBId& query);
37         virtual Bool_t          PutEntry(AliCDBEntry* entry);
38         virtual TList*          GetIdListFromFile(const char* fileName);
39
40 private:
41
42         AliCDBDump(const AliCDBDump & source);
43         AliCDBDump & operator=(const AliCDBDump & source);
44         AliCDBDump(const char* dbFile, Bool_t readOnly);
45         virtual ~AliCDBDump();  
46
47         Bool_t KeyNameToId(const char* keyname, AliCDBRunRange& runRange,
48                         Int_t& version, Int_t& subVersion);
49         Bool_t IdToKeyName(const AliCDBRunRange& runRange, Int_t version,
50                         Int_t subVersion, TString& keyname);    
51
52         Bool_t MkDir(const TString& dir);
53
54
55         Bool_t PrepareId(AliCDBId& id);
56 //      Bool_t GetId(const AliCDBId& query, AliCDBId& result);
57         AliCDBId* GetId(const AliCDBId& query);
58
59         virtual void QueryValidFiles();
60
61         void GetEntriesForLevel0(const AliCDBId& query, TList* result);
62         void GetEntriesForLevel1(const AliCDBId& query, TList* result);
63
64         TFile* fFile;           // Dump file
65         Bool_t fReadOnly;       // ReadOnly flag
66
67         ClassDef(AliCDBDump, 0);
68 };
69
70 /////////////////////////////////////////////////////////////////////
71 //                                                                 //
72 //  class AliCDBDumpFactory                                        //
73 //                                                                 //
74 /////////////////////////////////////////////////////////////////////
75
76 class AliCDBDumpFactory: public AliCDBStorageFactory {
77
78 public:
79
80         virtual Bool_t Validate(const char* dbString);
81         virtual AliCDBParam* CreateParameter(const char* dbString);
82
83 protected:
84         virtual AliCDBStorage* Create(const AliCDBParam* param);
85
86         ClassDef(AliCDBDumpFactory, 0);
87 };
88
89 /////////////////////////////////////////////////////////////////////
90 //                                                                 //
91 //  class AliCDBDumpParam                                          //
92 //                                                                 //
93 /////////////////////////////////////////////////////////////////////
94
95 class AliCDBDumpParam: public AliCDBParam {
96
97 public:
98         AliCDBDumpParam();
99         AliCDBDumpParam(const char* dbPath, Bool_t readOnly = kFALSE);
100         
101         virtual ~AliCDBDumpParam();
102
103         const TString& GetPath() const {return fDBPath;};
104         Bool_t IsReadOnly() const {return fReadOnly;};
105
106         virtual AliCDBParam* CloneParam() const;
107
108         virtual ULong_t Hash() const;
109         virtual Bool_t IsEqual(const TObject* obj) const;
110         
111 private:
112
113         TString fDBPath;        // Dump file path name
114         Bool_t fReadOnly;       // ReadOnly flag
115
116         ClassDef(AliCDBDumpParam, 0);
117 };
118
119 #endif