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