]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliCDBDump.h
ca5a7cc96b62b19c1400065a3f3ad8322326f17d
[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
29 protected:
30
31         virtual AliCDBEntry*    GetEntry(const AliCDBId& query);
32         virtual TList*          GetEntries(const AliCDBId& query);
33         virtual Bool_t          PutEntry(AliCDBEntry* entry);
34         virtual TList*          GetIdListFromFile(const char* fileName);
35
36 private:
37
38         AliCDBDump(const AliCDBDump & source);
39         AliCDBDump & operator=(const AliCDBDump & source);
40         AliCDBDump(const char* dbFile, Bool_t readOnly);
41         virtual ~AliCDBDump();  
42
43         Bool_t KeyNameToId(const char* keyname, AliCDBRunRange& runRange,
44                         Int_t& version, Int_t& subVersion);
45         Bool_t IdToKeyName(const AliCDBRunRange& runRange, Int_t version,
46                         Int_t subVersion, TString& keyname);    
47
48         Bool_t MkDir(const TString& dir);
49
50
51         Bool_t PrepareId(AliCDBId& id);
52         Bool_t GetId(const AliCDBId& query, AliCDBId& result);
53
54         virtual void QueryValidFiles();
55
56         void GetEntriesForLevel0(const AliCDBId& query, TList* result);
57         void GetEntriesForLevel1(const AliCDBId& query, TList* result);
58
59         TFile* fFile;           // Dump file
60         Bool_t fReadOnly;       // ReadOnly flag
61
62         ClassDef(AliCDBDump, 0);
63 };
64
65 /////////////////////////////////////////////////////////////////////
66 //                                                                 //
67 //  class AliCDBDumpFactory                                        //
68 //                                                                 //
69 /////////////////////////////////////////////////////////////////////
70
71 class AliCDBDumpFactory: public AliCDBStorageFactory {
72
73 public:
74
75         virtual Bool_t Validate(const char* dbString);
76         virtual AliCDBParam* CreateParameter(const char* dbString);
77
78 protected:
79         virtual AliCDBStorage* Create(const AliCDBParam* param);
80
81         ClassDef(AliCDBDumpFactory, 0);
82 };
83
84 /////////////////////////////////////////////////////////////////////
85 //                                                                 //
86 //  class AliCDBDumpParam                                          //
87 //                                                                 //
88 /////////////////////////////////////////////////////////////////////
89
90 class AliCDBDumpParam: public AliCDBParam {
91
92 public:
93         AliCDBDumpParam();
94         AliCDBDumpParam(const char* dbPath, Bool_t readOnly = kFALSE);
95         
96         virtual ~AliCDBDumpParam();
97
98         const TString& GetPath() const {return fDBPath;};
99         Bool_t IsReadOnly() const {return fReadOnly;};
100
101         virtual AliCDBParam* CloneParam() const;
102
103         virtual ULong_t Hash() const;
104         virtual Bool_t IsEqual(const TObject* obj) const;
105         
106 private:
107
108         TString fDBPath;        // Dump file path name
109         Bool_t fReadOnly;       // ReadOnly flag
110
111         ClassDef(AliCDBDumpParam, 0);
112 };
113
114 #endif