]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliCDBGrid.h
New classes added.
[u/mrichter/AliRoot.git] / STEER / AliCDBGrid.h
index 7deb140cdb04f952c35a269780d8a3a80ed30b5e..9d0356881f12d6e697342a15bd0edaa9128e95bb 100644 (file)
@@ -7,56 +7,60 @@
 /////////////////////////////////////////////////////////////////////
 //                                                                 //
 //  class AliCDBGrid                                              //
-//  access class to a DataBase in an AliEn storage                //
+//  access class to a DataBase in an AliEn storage                //
 //                                                                 //
 /////////////////////////////////////////////////////////////////////
 
 #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 TList*          GetEntries(const AliCDBId& queryId);
        virtual Bool_t          PutEntry(AliCDBEntry* entry);
+       virtual TList*          GetIdListFromFile(const char* fileName);
 
 private:
  
-       AliCDBGrid(const char *host="aliendb4.cern.ch", 
-               const Int_t port = 9000, 
-               const char *user="colla", 
-               const char* dbPath = "/alice/cern.ch/user/c/colla/DB", 
-               const char *SE="ALICE::CERN::Server");
+       AliCDBGrid(const char *gridUrl, const char *user, const char* dbFolder, const char *se);
 
        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);
-       AliCDBId GetId(const AliCDBId& query);
+       AliCDBId* GetId(const TObjArray& validFileIds, const AliCDBId& query);
+       AliCDBEntry* GetEntryFromFile(TString& filename, AliCDBId* dataId);
+
+       Bool_t AddTag(TString& foldername, const char* tagname);
+       Bool_t TagFileId(TString& filename, const AliCDBId* id);
+       Bool_t TagFileMetaData(TString& filename, const AliCDBMetaData* md);
 
+       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    fHost;       // Grid host
-       Int_t      fPort;       // port
+       TString    fGridUrl;    // Grid Url ("alien://aliendb4.cern.ch:9000")
        TString    fUser;       // User
-       TString    fDBPath;     // path of the DB folder
-       TString    fSE;         // Storage Element 
+       TString    fDBFolder;   // path of the DB folder
+       TString    fSE;         // Storage Element
 
 ClassDef(AliCDBGrid, 0)      // access class to a DataBase in an AliEn storage 
 };
@@ -73,6 +77,7 @@ public:
 
        virtual Bool_t Validate(const char* gridString);
         virtual AliCDBParam* CreateParameter(const char* gridString);
+       virtual ~AliCDBGridFactory(){}
 
 protected:
         virtual AliCDBStorage* Create(const AliCDBParam* param);
@@ -90,15 +95,14 @@ class AliCDBGridParam: public AliCDBParam {
        
 public:
        AliCDBGridParam();
-       AliCDBGridParam(const char* host, Int_t port, const char* user, 
-                       const char* dbPath, const char* se);
+       AliCDBGridParam(const char* gridUrl, const char* user,
+                       const char* dbFolder, const char* se);
        
        virtual ~AliCDBGridParam();
 
-       const TString& GetHost() const {return fHost;};
-       const Int_t&   GetPort() const {return fPort;};
+       const TString& GridUrl() const {return fGridUrl;};
        const TString& GetUser() const {return fUser;};
-       const TString& GetPath() const {return fDBPath;};
+       const TString& GetDBFolder() const {return fDBFolder;};
        const TString& GetSE()   const {return fSE;};
 
        virtual AliCDBParam* CloneParam() const;
@@ -107,11 +111,10 @@ public:
         virtual Bool_t IsEqual(const TObject* obj) const;
 
 private:
-       TString fHost;       // Grid host
-       Int_t   fPort;       // port
+       TString fGridUrl;    // Grid url "Host:port"
        TString fUser;       // User
-       TString fDBPath;     // path of the DB folder
-       TString fSE;         // Storage Element 
+       TString fDBFolder;   // path of the DB folder
+       TString fSE;         // Storage Element
 
        ClassDef(AliCDBGridParam, 0);
 };