]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALI_CDB_STORAGE_H | |
2 | #define ALI_CDB_STORAGE_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 AliCDBStorage // | |
10 | // interface to specific storage classes // | |
11 | // (AliCDBGrid, AliCDBLocal, AliCDBDump) // | |
12 | // // | |
13 | ///////////////////////////////////////////////////////////////////// | |
14 | ||
15 | #include "AliCDBId.h" | |
16 | #include "AliCDBMetaData.h" | |
17 | #include "AliCDBManager.h" | |
18 | ||
19 | #include <TList.h> | |
20 | #include <TObjArray.h> | |
21 | ||
22 | class AliCDBEntry; | |
23 | class AliCDBPath; | |
24 | class AliCDBParam; | |
25 | class TFile; | |
26 | ||
27 | class AliCDBStorage: public TObject { | |
28 | ||
29 | public: | |
30 | ||
31 | AliCDBStorage(); | |
32 | ||
33 | void SetURI(const TString& uri) {fURI = uri;} | |
34 | const TString& GetURI() const {return fURI;} | |
35 | const TString& GetType() const {return fType;} | |
36 | const TString& GetBaseFolder() const {return fBaseFolder;} | |
37 | AliCDBManager::DataType GetDataType() const; | |
38 | ||
39 | ||
40 | void ReadSelectionFromFile(const char *fileName); | |
41 | ||
42 | void AddSelection(const AliCDBId& selection); | |
43 | ||
44 | void AddSelection(const AliCDBPath& path, | |
45 | const AliCDBRunRange& runRange, | |
46 | Int_t version, | |
47 | Int_t subVersion = -1); | |
48 | ||
49 | void AddSelection(const AliCDBPath& path, | |
50 | Int_t firstRun, | |
51 | Int_t lastRun, | |
52 | Int_t version, | |
53 | Int_t subVersion = -1); | |
54 | ||
55 | void RemoveSelection(const AliCDBId& selection); | |
56 | ||
57 | void RemoveSelection(const AliCDBPath& path, | |
58 | const AliCDBRunRange& runRange); | |
59 | ||
60 | void RemoveSelection(const AliCDBPath& path, | |
61 | Int_t firstRun = -1, | |
62 | Int_t lastRun = -1); | |
63 | ||
64 | void RemoveSelection(int position); | |
65 | void RemoveAllSelections(); | |
66 | ||
67 | void PrintSelectionList(); | |
68 | ||
69 | AliCDBEntry* Get(const AliCDBId& query); | |
70 | AliCDBEntry* Get(const AliCDBPath& path, Int_t runNumber, | |
71 | Int_t version = -1, Int_t subVersion = -1); | |
72 | AliCDBEntry* Get(const AliCDBPath& path, const AliCDBRunRange& runRange, | |
73 | Int_t version = -1, Int_t subVersion = -1); | |
74 | ||
75 | TList* GetAll(const AliCDBId& query); | |
76 | TList* GetAll(const AliCDBPath& path, Int_t runNumber, | |
77 | Int_t version = -1, Int_t subVersion = -1); | |
78 | TList* GetAll(const AliCDBPath& path, const AliCDBRunRange& runRange, | |
79 | Int_t version = -1, Int_t subVersion = -1); | |
80 | ||
81 | AliCDBId* GetId(const AliCDBId& query); | |
82 | AliCDBId* GetId(const AliCDBPath& path, Int_t runNumber, | |
83 | Int_t version = -1, Int_t subVersion = -1); | |
84 | AliCDBId* GetId(const AliCDBPath& path, const AliCDBRunRange& runRange, | |
85 | Int_t version = -1, Int_t subVersion = -1); | |
86 | ||
87 | Bool_t Put(TObject* object, AliCDBId& id, AliCDBMetaData* metaData, const char* mirrors="", | |
88 | AliCDBManager::DataType type=AliCDBManager::kPrivate); | |
89 | Bool_t Put(AliCDBEntry* entry, const char* mirrors="", AliCDBManager::DataType type=AliCDBManager::kPrivate); | |
90 | ||
91 | virtual void SetMirrorSEs(const char* mirrors); | |
92 | virtual const char* GetMirrorSEs() const; | |
93 | ||
94 | virtual Bool_t IsReadOnly() const = 0; | |
95 | virtual Bool_t HasSubVersion() const = 0; | |
96 | virtual Bool_t Contains(const char* path) const = 0; | |
97 | virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const = 0; | |
98 | ||
99 | void QueryCDB(Int_t run, const char* pathFilter="*", | |
100 | Int_t version=-1, AliCDBMetaData *mdFilter=0); | |
101 | void PrintQueryCDB(); | |
102 | TObjArray* GetQueryCDBList() {return &fValidFileIds;} | |
103 | virtual void SetRetry(Int_t nretry, Int_t initsec) = 0; | |
104 | ||
105 | protected: | |
106 | ||
107 | virtual ~AliCDBStorage(); | |
108 | void GetSelection(/*const*/ AliCDBId* id); | |
109 | virtual AliCDBEntry* GetEntry(const AliCDBId& query) = 0; | |
110 | virtual AliCDBId* GetEntryId(const AliCDBId& query) = 0; | |
111 | virtual TList* GetEntries(const AliCDBId& query) = 0; | |
112 | virtual Bool_t PutEntry(AliCDBEntry* entry, const char* mirrors="") = 0; | |
113 | virtual TList *GetIdListFromFile(const char* fileName)=0; | |
114 | virtual void QueryValidFiles() = 0; | |
115 | void LoadTreeFromFile(AliCDBEntry* entry) const; | |
116 | //void SetTreeToFile(AliCDBEntry* entry, TFile* file) const; | |
117 | ||
118 | TObjArray fValidFileIds; // list of Id's of the files valid for a given run (cached as fRun) | |
119 | Int_t fRun; // run number, used to manage list of valid files | |
120 | AliCDBPath fPathFilter; // path filter, used to manage list of valid files | |
121 | Int_t fVersion; // version, used to manage list of valid files | |
122 | AliCDBMetaData* fMetaDataFilter; // metadata, used to manage list of valid files | |
123 | ||
124 | TList fSelections; // list of selection criteria | |
125 | TString fURI; // storage URI; | |
126 | TString fType; //! Local, Grid: base folder name - Dump: file name | |
127 | TString fBaseFolder; //! Local, Grid: base folder name - Dump: file name | |
128 | Short_t fNretry; // Number of retries in opening the file | |
129 | Short_t fInitRetrySeconds; // Seconds for first retry | |
130 | ||
131 | private: | |
132 | AliCDBStorage(const AliCDBStorage & source); | |
133 | AliCDBStorage & operator=(const AliCDBStorage & source); | |
134 | ||
135 | ClassDef(AliCDBStorage, 0); | |
136 | }; | |
137 | ||
138 | #endif |