-#ifndef ALICDBDUMP_H
-#define ALICDBDUMP_H
+#ifndef ALI_CDB_DUMP_H
+#define ALI_CDB_DUMP_H
+
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
-/* $Id$ */
-
-///
-/// access classes for a data base in a LOCAL file
-///
+/////////////////////////////////////////////////////////////////////
+// //
+// class AliCDBDump //
+// access class to a DataBase in a dump storage (single file) //
+// //
+/////////////////////////////////////////////////////////////////////
#include "AliCDBStorage.h"
-#include "AliCDBMetaDataSelect.h"
+#include "AliCDBManager.h"
+class TDirectory;
class TFile;
-
class AliCDBDump: public AliCDBStorage {
+ friend class AliCDBDumpFactory;
+
+public:
+
+ virtual Bool_t IsReadOnly() const {return fReadOnly;};
+ virtual Bool_t HasSubVersion() const {return kFALSE;};
+ virtual Bool_t Contains(const char* path) const;
+ virtual Int_t GetLatestVersion(const char* path, Int_t run);
+ virtual Int_t GetLatestSubVersion(const char* path, Int_t run, Int_t version=-1);
+ virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const;
+
+protected:
+
+ virtual AliCDBEntry* GetEntry(const AliCDBId& query);
+ virtual AliCDBId* GetEntryId(const AliCDBId& query);
+ virtual TList* GetEntries(const AliCDBId& query);
+ virtual Bool_t PutEntry(AliCDBEntry* entry);
+ virtual TList* GetIdListFromFile(const char* fileName);
+
+private:
+
+ AliCDBDump(const AliCDBDump & source);
+ AliCDBDump & operator=(const AliCDBDump & source);
+ AliCDBDump(const char* dbFile, Bool_t readOnly);
+ virtual ~AliCDBDump();
+
+ Bool_t KeyNameToId(const char* keyname, AliCDBRunRange& runRange,
+ Int_t& version, Int_t& subVersion);
+ Bool_t IdToKeyName(const AliCDBRunRange& runRange, Int_t version,
+ Int_t subVersion, TString& keyname);
+
+ Bool_t MkDir(const TString& dir);
+
+
+ Bool_t PrepareId(AliCDBId& id);
+// Bool_t GetId(const AliCDBId& query, AliCDBId& result);
+ AliCDBId* GetId(const AliCDBId& query);
+
+ virtual void QueryValidFiles();
+
+ void GetEntriesForLevel0(const AliCDBId& query, TList* result);
+ void GetEntriesForLevel1(const AliCDBId& query, TList* result);
+
+ TFile* fFile; // Dump file
+ Bool_t fReadOnly; // ReadOnly flag
+
+ ClassDef(AliCDBDump, 0);
+};
+
+/////////////////////////////////////////////////////////////////////
+// //
+// class AliCDBDumpFactory //
+// //
+/////////////////////////////////////////////////////////////////////
+
+class AliCDBDumpFactory: public AliCDBStorageFactory {
+
public:
- AliCDBDump(const char* fileName = "DB.root", Bool_t readOnly = kTRUE);
- virtual ~AliCDBDump();
- void TagForProduction(const AliCDBMetaDataSelect& /* selMetaData */, UInt_t /* prodVers */);
+
+ virtual Bool_t Validate(const char* dbString);
+ virtual AliCDBParam* CreateParameter(const char* dbString);
protected:
- virtual AliCDBEntry* GetEntry(AliCDBMetaDataSelect& selMetaData, Int_t runNumber);
+ virtual AliCDBStorage* Create(const AliCDBParam* param);
+
+ ClassDef(AliCDBDumpFactory, 0);
+};
+
+/////////////////////////////////////////////////////////////////////
+// //
+// class AliCDBDumpParam //
+// //
+/////////////////////////////////////////////////////////////////////
+
+class AliCDBDumpParam: public AliCDBParam {
+
+public:
+ AliCDBDumpParam();
+ AliCDBDumpParam(const char* dbPath, Bool_t readOnly = kFALSE);
+
+ virtual ~AliCDBDumpParam();
+
+ const TString& GetPath() const {return fDBPath;};
+ Bool_t IsReadOnly() const {return fReadOnly;};
- virtual Bool_t PutEntry(AliCDBEntry* entry);
+ virtual AliCDBParam* CloneParam() const;
+ virtual ULong_t Hash() const;
+ virtual Bool_t IsEqual(const TObject* obj) const;
+
private:
- AliCDBDump(const AliCDBDump& db);
- AliCDBDump& operator = (const AliCDBDump& db);
- TFile* fFile; //! the DB local file
+ TString fDBPath; // Dump file path name
+ Bool_t fReadOnly; // ReadOnly flag
- ClassDef(AliCDBDump, 0) // access classes for a data base in a LOCAL file
+ ClassDef(AliCDBDumpParam, 0);
};
#endif