#include "AliCDBId.h"
#include "AliCDBMetaData.h"
+#include "AliCDBManager.h"
#include <TList.h>
+#include <TObjArray.h>
class AliCDBEntry;
+class AliCDBPath;
+class AliCDBParam;
+class TFile;
class AliCDBStorage: public TObject {
public:
+
AliCDBStorage();
- virtual ~AliCDBStorage();
+
+ void SetURI(const TString& uri) {fURI = uri;}
+ const TString& GetURI() const {return fURI;}
+ const TString& GetType() const {return fType;}
+ const TString& GetBaseFolder() const {return fBaseFolder;}
+ AliCDBManager::DataType GetDataType() const;
+ void ReadSelectionFromFile(const char *fileName);
+
void AddSelection(const AliCDBId& selection);
void AddSelection(const AliCDBPath& path,
Int_t firstRun = -1,
Int_t lastRun = -1);
- void RemoveSelection(const int position);
+ void RemoveSelection(int position);
void RemoveAllSelections();
+ void PrintSelectionList();
+
AliCDBEntry* Get(const AliCDBId& query);
- AliCDBEntry* Get(const AliCDBPath& path, Int_t runNumber,
+ AliCDBEntry* Get(const AliCDBPath& path, Int_t runNumber,
Int_t version = -1, Int_t subVersion = -1);
AliCDBEntry* Get(const AliCDBPath& path, const AliCDBRunRange& runRange,
Int_t version = -1, Int_t subVersion = -1);
TList* GetAll(const AliCDBPath& path, Int_t runNumber,
Int_t version = -1, Int_t subVersion = -1);
TList* GetAll(const AliCDBPath& path, const AliCDBRunRange& runRange,
- Int_t version = -1, Int_t subVersion = -1);
+ Int_t version = -1, Int_t subVersion = -1);
- void PrintSelectionList();
+ AliCDBId* GetId(const AliCDBId& query);
+ AliCDBId* GetId(const AliCDBPath& path, Int_t runNumber,
+ Int_t version = -1, Int_t subVersion = -1);
+ AliCDBId* GetId(const AliCDBPath& path, const AliCDBRunRange& runRange,
+ Int_t version = -1, Int_t subVersion = -1);
+ Bool_t Put(TObject* object, AliCDBId& id, AliCDBMetaData* metaData,
+ AliCDBManager::DataType type=AliCDBManager::kPrivate);
+ Bool_t Put(AliCDBEntry* entry, AliCDBManager::DataType type=AliCDBManager::kPrivate);
- Bool_t Put(TObject* object, AliCDBId& id, AliCDBMetaData* metaData);
- Bool_t Put(AliCDBEntry* entry);
+ virtual Bool_t IsReadOnly() const = 0;
+ virtual Bool_t HasSubVersion() const = 0;
+ virtual Bool_t Contains(const char* path) const = 0;
+ virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const = 0;
+ void QueryCDB(Int_t run, const char* pathFilter="*",
+ Int_t version=-1, AliCDBMetaData *mdFilter=0);
+ void PrintQueryCDB();
+ TObjArray* GetQueryCDBList() {return &fValidFileIds;}
- virtual Bool_t IsReadOnly() = 0;
- virtual Bool_t HasSubVersion() = 0;
+ virtual Int_t GetLatestVersion(const char* path, Int_t run)=0;
+ virtual Int_t GetLatestSubVersion(const char* path, Int_t run, Int_t version=-1)=0;
protected:
-
- AliCDBId GetSelection(const AliCDBId& id);
+
+ virtual ~AliCDBStorage();
+ void GetSelection(/*const*/ AliCDBId* id);
virtual AliCDBEntry* GetEntry(const AliCDBId& query) = 0;
+ virtual AliCDBId* GetEntryId(const AliCDBId& query) = 0;
virtual TList* GetEntries(const AliCDBId& query) = 0;
- virtual Bool_t PutEntry(AliCDBEntry* entry) = 0;
+ virtual Bool_t PutEntry(AliCDBEntry* entry) = 0;
+ virtual TList *GetIdListFromFile(const char* fileName)=0;
+ virtual void QueryValidFiles() = 0;
+ void LoadTreeFromFile(AliCDBEntry* entry) const;
+ //void SetTreeToFile(AliCDBEntry* entry, TFile* file) const;
+
+ TObjArray fValidFileIds; // list of Id's of the files valid for a given run (cached as fRun)
+ Int_t fRun; // run number, used to manage list of valid files
+ AliCDBPath fPathFilter; // path filter, used to manage list of valid files
+ Int_t fVersion; // version, used to manage list of valid files
+ AliCDBMetaData* fMetaDataFilter; // metadata, used to manage list of valid files
+
+ TList fSelections; // list of selection criteria
+ TString fURI; // storage URI;
+ TString fType; //! Local, Grid: base folder name - Dump: file name
+ TString fBaseFolder; //! Local, Grid: base folder name - Dump: file name
private:
-
- TList fSelections; // list of selection criteria
+ AliCDBStorage(const AliCDBStorage & source);
+ AliCDBStorage & operator=(const AliCDBStorage & source);
ClassDef(AliCDBStorage, 0);
};