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