AliRoot Core  3dc7879 (3dc7879)
AliCDBStorage.h
Go to the documentation of this file.
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 
8 // //
9 // class AliCDBStorage //
10 // interface to specific storage classes //
11 // (AliCDBGrid, AliCDBLocal, AliCDBDump) //
12 // //
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;}
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="",
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();
103  virtual void SetRetry(Int_t nretry, Int_t initsec) = 0;
104  void SetMaxDate(time_t maxDate);
105  void SetMaxDate(TTimeStamp maxDate) { SetMaxDate(maxDate.GetSec()); }
106  time_t GetMaxDate() const { return fMaxDate; }
107 
108  protected:
109 
110  virtual ~AliCDBStorage();
111  void GetSelection(/*const*/ AliCDBId* id);
112  virtual AliCDBEntry* GetEntry(const AliCDBId& query) = 0;
113  virtual AliCDBId* GetEntryId(const AliCDBId& query) = 0;
114  virtual TList* GetEntries(const AliCDBId& query) = 0;
115  virtual Bool_t PutEntry(AliCDBEntry* entry, const char* mirrors="") = 0;
116  virtual TList *GetIdListFromFile(const char* fileName)=0;
117  virtual void QueryValidFiles() = 0;
118  void LoadTreeFromFile(AliCDBEntry* entry) const;
119  //void SetTreeToFile(AliCDBEntry* entry, TFile* file) const;
120  time_t GuidToCreationTimestamp(const TString &guid) const;
121 
122  TObjArray fValidFileIds; // list of Id's of the files valid for a given run (cached as fRun)
123  Int_t fRun; // run number, used to manage list of valid files
124  AliCDBPath fPathFilter; // path filter, used to manage list of valid files
125  Int_t fVersion; // version, used to manage list of valid files
126  AliCDBMetaData* fMetaDataFilter; // metadata, used to manage list of valid files
127 
128  TList fSelections; // list of selection criteria
129  TString fURI; // storage URI;
130  TString fType;
131  TString fBaseFolder;
132  Short_t fNretry; // Number of retries in opening the file
133  Short_t fInitRetrySeconds; // Seconds for first retry
134 
135  time_t fMaxDate; // max file timestamp to take into account upon queries
136 
137  private:
138  AliCDBStorage(const AliCDBStorage & source);
139  AliCDBStorage & operator=(const AliCDBStorage & source);
140 
141  ClassDef(AliCDBStorage, 0);
142 };
143 
144 #endif
AliCDBEntry * Get(const AliCDBId &query)
const TString & GetURI() const
Definition: AliCDBStorage.h:34
TObjArray fValidFileIds
Bool_t Put(TObject *object, AliCDBId &id, AliCDBMetaData *metaData, const char *mirrors="", AliCDBManager::DataType type=AliCDBManager::kPrivate)
void RemoveAllSelections()
#define TObjArray
time_t GetMaxDate() const
virtual AliCDBEntry * GetEntry(const AliCDBId &query)=0
void ReadSelectionFromFile(const char *fileName)
const TString & GetType() const
Definition: AliCDBStorage.h:35
const char * path
time_t GuidToCreationTimestamp(const TString &guid) const
TObjArray * GetQueryCDBList()
void SetMaxDate(TTimeStamp maxDate)
virtual Bool_t HasSubVersion() const =0
const TString & GetBaseFolder() const
Definition: AliCDBStorage.h:36
void SetMaxDate(time_t maxDate)
void SetURI(const TString &uri)
Definition: AliCDBStorage.h:33
Short_t fInitRetrySeconds
virtual ~AliCDBStorage()
virtual const char * GetMirrorSEs() const
TString fileName(const char *dir, int runNumber, const char *da, int i, const char *type)
TList * GetAll(const AliCDBId &query)
TString fBaseFolder
Local, Grid: base folder name - Dump: file name.
virtual TList * GetEntries(const AliCDBId &query)=0
virtual TList * GetIdListFromFile(const char *fileName)=0
void GetSelection(AliCDBId *id)
virtual AliCDBId * GetEntryId(const AliCDBId &query)=0
virtual Bool_t IsReadOnly() const =0
AliCDBId * GetId(const AliCDBId &query)
virtual Bool_t PutEntry(AliCDBEntry *entry, const char *mirrors="")=0
void QueryCDB(Int_t run, const char *pathFilter="*", Int_t version=-1, AliCDBMetaData *mdFilter=0)
virtual void SetMirrorSEs(const char *mirrors)
AliCDBPath fPathFilter
Definition: AliCDBEntry.h:18
virtual void QueryValidFiles()=0
virtual void SetRetry(Int_t nretry, Int_t initsec)=0
void AddSelection(const AliCDBId &selection)
void LoadTreeFromFile(AliCDBEntry *entry) const
AliCDBManager::DataType GetDataType() const
static Int_t runNumber
Definition: pdc06_config.C:126
virtual Bool_t IdToFilename(const AliCDBId &id, TString &filename) const =0
void PrintSelectionList()
AliCDBStorage & operator=(const AliCDBStorage &source)
virtual Bool_t Contains(const char *path) const =0
AliCDBMetaData * fMetaDataFilter
Short_t fNretry
Local, Grid: base folder name - Dump: file name.
void RemoveSelection(const AliCDBId &selection)