]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliCDBStorage.h
Added functionality to get TTree's from the OCDB. The tree is loaded in memory
[u/mrichter/AliRoot.git] / STEER / AliCDBStorage.h
CommitLineData
9e1ceb13 1#ifndef ALI_CDB_STORAGE_H
2#define ALI_CDB_STORAGE_H
3
fe913d8f 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
9e1ceb13 7/////////////////////////////////////////////////////////////////////
8// //
9// class AliCDBStorage //
10// interface to specific storage classes //
11// (AliCDBGrid, AliCDBLocal, AliCDBDump) //
12// //
13/////////////////////////////////////////////////////////////////////
fe913d8f 14
9e1ceb13 15#include "AliCDBId.h"
fe913d8f 16#include "AliCDBMetaData.h"
b8ec52f6 17#include "AliCDBManager.h"
fe913d8f 18
9e1ceb13 19#include <TList.h>
6dc56e97 20#include <TObjArray.h>
fe913d8f 21
fe913d8f 22class AliCDBEntry;
62032124 23class AliCDBPath;
b8ec52f6 24class AliCDBParam;
145f45a2 25class TFile;
fe913d8f 26
27class AliCDBStorage: public TObject {
fe913d8f 28
9e1ceb13 29public:
b8ec52f6 30
9e1ceb13 31 AliCDBStorage();
9e1ceb13 32
7d160419 33 void SetURI(const TString& uri) {fURI = uri;}
34 const TString& GetURI() const {return fURI;}
62032124 35 const TString& GetType() const {return fType;}
36 const TString& GetBaseFolder() const {return fBaseFolder;}
b8ec52f6 37 AliCDBManager::DataType GetDataType() const;
62032124 38
7d160419 39
b05400be 40 void ReadSelectionFromFile(const char *fileName);
41
9e1ceb13 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
eb0b1051 64 void RemoveSelection(int position);
9e1ceb13 65 void RemoveAllSelections();
66
02c4845e 67 void PrintSelectionList();
68
9e1ceb13 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,
7d160419 79 Int_t version = -1, Int_t subVersion = -1);
9e1ceb13 80
b8ec52f6 81 Bool_t Put(TObject* object, AliCDBId& id, AliCDBMetaData* metaData,
82 AliCDBManager::DataType type=AliCDBManager::kPrivate);
83 Bool_t Put(AliCDBEntry* entry, AliCDBManager::DataType type=AliCDBManager::kPrivate);
9e1ceb13 84
fdf65bb5 85 virtual Bool_t IsReadOnly() const = 0;
86 virtual Bool_t HasSubVersion() const = 0;
b05400be 87 virtual Bool_t Contains(const char* path) const = 0;
c3a7b59a 88 virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const = 0;
b05400be 89
c3a7b59a 90 void QueryCDB(Int_t run, const char* pathFilter="*",
62032124 91 Int_t version=-1, AliCDBMetaData *mdFilter=0);
92 void PrintQueryCDB();
6dc56e97 93 TObjArray* GetQueryCDBList() {return &fValidFileIds;}
62032124 94
c3a7b59a 95 virtual Int_t GetLatestVersion(const char* path, Int_t run)=0;
96 virtual Int_t GetLatestSubVersion(const char* path, Int_t run, Int_t version=-1)=0;
97
fe913d8f 98protected:
62032124 99
100 virtual ~AliCDBStorage();
4b5e0dce 101 void GetSelection(/*const*/ AliCDBId* id);
9e1ceb13 102 virtual AliCDBEntry* GetEntry(const AliCDBId& query) = 0;
103 virtual TList* GetEntries(const AliCDBId& query) = 0;
62032124 104 virtual Bool_t PutEntry(AliCDBEntry* entry) = 0;
b05400be 105 virtual TList *GetIdListFromFile(const char* fileName)=0;
62032124 106 virtual void QueryValidFiles() = 0;
145f45a2 107 void LoadTreeFromFile(AliCDBEntry* entry) const;
108 void SetTreeToFile(AliCDBEntry* entry, TFile* file) const;
fe913d8f 109
6dc56e97 110 TObjArray fValidFileIds; // list of Id's of the files valid for a given run (cached as fRun)
c3a7b59a 111 Int_t fRun; // run number, used to manage list of valid files
62032124 112 AliCDBPath fPathFilter; // path filter, used to manage list of valid files
113 Int_t fVersion; // version, used to manage list of valid files
114 AliCDBMetaData* fMetaDataFilter; // metadata, used to manage list of valid files
fe913d8f 115
7d160419 116 TList fSelections; // list of selection criteria
62032124 117 TString fURI; // storage URI;
118 TString fType; //! Local, Grid: base folder name - Dump: file name
119 TString fBaseFolder; //! Local, Grid: base folder name - Dump: file name
fe913d8f 120
c3a7b59a 121private:
fe12e09c 122 AliCDBStorage(const AliCDBStorage & source);
123 AliCDBStorage & operator=(const AliCDBStorage & source);
124
9e1ceb13 125 ClassDef(AliCDBStorage, 0);
fe913d8f 126};
127
128#endif