X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliCDBGrid.h;h=c8815f30fd8bddf48004718768a2b51ca8062b2b;hb=8c6eca17220c0c79fcbc9e9671467dcae55db898;hp=044e328f7925510d9cd40463c50dcdf9fcc16831;hpb=4b5e0dce7647dab853aa777612de4986f60a383b;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliCDBGrid.h b/STEER/AliCDBGrid.h index 044e328f792..c8815f30fd8 100644 --- a/STEER/AliCDBGrid.h +++ b/STEER/AliCDBGrid.h @@ -13,49 +13,65 @@ #include "AliCDBStorage.h" #include "AliCDBManager.h" +#include "AliCDBMetaData.h" class AliCDBGrid: public AliCDBStorage { friend class AliCDBGridFactory; public: - virtual Bool_t IsReadOnly() const {return kFALSE;}; - virtual Bool_t HasSubVersion() const {return kFALSE;}; + virtual Bool_t IsReadOnly() const {return kFALSE;} + 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); + virtual Bool_t IdToFilename(const AliCDBId& id, TString& filename) const; + protected: virtual AliCDBEntry* GetEntry(const AliCDBId& queryId); + virtual AliCDBId* GetEntryId(const AliCDBId& queryId); virtual TList* GetEntries(const AliCDBId& queryId); virtual Bool_t PutEntry(AliCDBEntry* entry); virtual TList* GetIdListFromFile(const char* fileName); private: - - AliCDBGrid(const char *gridUrl, const char *user, const char* dbFolder, const char *se); + + AliCDBGrid(const char *gridUrl, const char *user, const char* dbFolder, + const char *se, const char* cacheFolder, Bool_t operateDisconnected, + Long64_t cacheSize, Long_t cleanupInterval); virtual ~AliCDBGrid(); AliCDBGrid(const AliCDBGrid& db); AliCDBGrid& operator = (const AliCDBGrid& db); - Bool_t FilenameToId(const char* filename, AliCDBRunRange& runRange, Int_t& version); - Bool_t IdToFilename(const AliCDBRunRange& runRange, Int_t version, TString& filename); + Bool_t FilenameToId(TString& filename, AliCDBId& id); Bool_t PrepareId(AliCDBId& id); - Bool_t GetId(const AliCDBId& query, AliCDBId& result); + AliCDBId* GetId(const TObjArray& validFileIds, const AliCDBId& query); + AliCDBEntry* GetEntryFromFile(TString& filename, AliCDBId* dataId); + + // TODO use AliEnTag classes! + Bool_t AddTag(TString& foldername, const char* tagname); + Bool_t TagFileId(TString& filename, const AliCDBId* id); + Bool_t TagFileMetaData(TString& filename, const AliCDBMetaData* md); + Bool_t TagShortLived(TString& filename, Bool_t value); + void MakeQueryFilter(Int_t firstRun, Int_t lastRun, const AliCDBMetaData* md, TString& result) const; - void GetEntriesForLevel0(const char* level0, const AliCDBId& query, TList* result); - void GetEntriesForLevel1(const char* level0, const char* level1, - const AliCDBId& query, TList* result); + virtual void QueryValidFiles(); - TString fGridUrl; // Grid Url ("alien://aliendb4.cern.ch:9000") - TString fUser; // User - TString fDBFolder; // path of the DB folder - TString fSE; // Storage Element + TString fGridUrl; // Grid Url ("alien://aliendb4.cern.ch:9000") + TString fUser; // User + TString fDBFolder; // path of the DB folder + TString fSE; // Storage Element + TString fCacheFolder; // local cache folder + Bool_t fOperateDisconnected; // Operate disconnected flag + Long64_t fCacheSize; // local cache size (in bytes) + Long_t fCleanupInterval; // local cache cleanup interval -ClassDef(AliCDBGrid, 0) // access class to a DataBase in an AliEn storage +ClassDef(AliCDBGrid, 0) // access class to a DataBase in an AliEn storage }; ///////////////////////////////////////////////////////////////////// @@ -70,6 +86,7 @@ public: virtual Bool_t Validate(const char* gridString); virtual AliCDBParam* CreateParameter(const char* gridString); + virtual ~AliCDBGridFactory(){} protected: virtual AliCDBStorage* Create(const AliCDBParam* param); @@ -87,15 +104,21 @@ class AliCDBGridParam: public AliCDBParam { public: AliCDBGridParam(); - AliCDBGridParam(const char* gridUrl, const char* user, - const char* dbFolder, const char* se); + AliCDBGridParam(const char* gridUrl, const char* user, + const char* dbFolder, const char* se, + const char* cacheFolder, Bool_t operateDisconnected, + Long64_t cacheSize, Long_t cleanupInterval); virtual ~AliCDBGridParam(); - const TString& GridUrl() const {return fGridUrl;}; - const TString& GetUser() const {return fUser;}; - const TString& GetDBFolder() const {return fDBFolder;}; - const TString& GetSE() const {return fSE;}; + const TString& GridUrl() const {return fGridUrl;} + const TString& GetUser() const {return fUser;} + const TString& GetDBFolder() const {return fDBFolder;} + const TString& GetSE() const {return fSE;} + const TString& GetCacheFolder() const {return fCacheFolder;} + Bool_t GetOperateDisconnected() const {return fOperateDisconnected;} + Long64_t GetCacheSize() const {return fCacheSize;} + Long_t GetCleanupInterval() const {return fCleanupInterval;} virtual AliCDBParam* CloneParam() const; @@ -103,10 +126,14 @@ public: virtual Bool_t IsEqual(const TObject* obj) const; private: - TString fGridUrl; // Grid url "Host:port" - TString fUser; // User - TString fDBFolder; // path of the DB folder - TString fSE; // Storage Element + TString fGridUrl; // Grid url "Host:port" + TString fUser; // User + TString fDBFolder; // path of the DB folder + TString fSE; // Storage Element + TString fCacheFolder; // Cache folder + Bool_t fOperateDisconnected; // Operate disconnected flag + Long64_t fCacheSize; // local cache size (in bytes) + Long_t fCleanupInterval; // local cache cleanup interval ClassDef(AliCDBGridParam, 0); };