]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/CDB/AliCDBStorage.h
Merge branch 'master', remote branch 'origin' into TPCdev
[u/mrichter/AliRoot.git] / STEER / CDB / AliCDBStorage.h
... / ...
CommitLineData
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
22class AliCDBEntry;
23class AliCDBPath;
24class AliCDBParam;
25class TFile;
26
27class AliCDBStorage: public TObject {
28
29public:
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
105protected:
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
131private:
132 AliCDBStorage(const AliCDBStorage & source);
133 AliCDBStorage & operator=(const AliCDBStorage & source);
134
135 ClassDef(AliCDBStorage, 0);
136};
137
138#endif