]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliCDBGrid.h
Increasing Class version
[u/mrichter/AliRoot.git] / STEER / AliCDBGrid.h
index 044e328f7925510d9cd40463c50dcdf9fcc16831..c8815f30fd8bddf48004718768a2b51ca8062b2b 100644 (file)
 
 #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);
 };