Line data Source code
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 0 : virtual Bool_t IsReadOnly() const {return fReadOnly;};
26 0 : 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 128 : ClassDef(AliCDBDump, 0);
67 : };
68 :
69 : /////////////////////////////////////////////////////////////////////
70 : // //
71 : // class AliCDBDumpFactory //
72 : // //
73 : /////////////////////////////////////////////////////////////////////
74 :
75 32 : 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 130 : ClassDef(AliCDBDumpFactory, 0);
86 : };
87 :
88 : /////////////////////////////////////////////////////////////////////
89 : // //
90 : // class AliCDBDumpParam //
91 : // //
92 : /////////////////////////////////////////////////////////////////////
93 :
94 0 : class AliCDBDumpParam: public AliCDBParam {
95 :
96 : public:
97 : AliCDBDumpParam();
98 : AliCDBDumpParam(const char* dbPath, Bool_t readOnly = kFALSE);
99 :
100 : virtual ~AliCDBDumpParam();
101 :
102 0 : const TString& GetPath() const {return fDBPath;};
103 0 : 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 128 : ClassDef(AliCDBDumpParam, 0);
116 : };
117 :
118 : #endif
|