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