4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /////////////////////////////////////////////////////////////////////
10 // access class to a DataBase in an AliEn storage //
12 /////////////////////////////////////////////////////////////////////
14 #include "AliCDBStorage.h"
15 #include "AliCDBManager.h"
16 #include "AliCDBMetaData.h"
18 class AliCDBGrid: public AliCDBStorage {
19 friend class AliCDBGridFactory;
23 virtual Bool_t IsReadOnly() const {return kFALSE;};
24 virtual Bool_t HasSubVersion() const {return kFALSE;};
25 virtual Bool_t Contains(const char* path) const;
29 virtual AliCDBEntry* GetEntry(const AliCDBId& queryId);
30 virtual TList* GetEntries(const AliCDBId& queryId);
31 virtual Bool_t PutEntry(AliCDBEntry* entry);
32 virtual TList* GetIdListFromFile(const char* fileName);
36 AliCDBGrid(const char *gridUrl, const char *user, const char* dbFolder, const char *se);
38 virtual ~AliCDBGrid();
40 AliCDBGrid(const AliCDBGrid& db);
41 AliCDBGrid& operator = (const AliCDBGrid& db);
43 Bool_t FilenameToId(TString& filename, AliCDBId& id);
44 Bool_t IdToFilename(const AliCDBId& id, TString& filename);
46 Bool_t PrepareId(AliCDBId& id);
47 AliCDBId* GetId(const TList& validFileIds, const AliCDBId& query);
48 AliCDBEntry* GetEntryFromFile(TString& filename, const AliCDBId* dataId);
50 Bool_t AddTag(TString& foldername, const char* tagname);
51 void TagFileId(TString& filename, const AliCDBId* id);
52 void TagFileMetaData(TString& filename, const AliCDBMetaData* md);
54 // Bool_t CheckVersion(const AliCDBId& query, AliCDBId* idToCheck, AliCDBId* result);
56 void MakeQueryFilter(Long64_t firstRun, Long64_t lastRun, const AliCDBPath& pathFilter, Int_t version,
57 const AliCDBMetaData* md, TString& result) const;
59 virtual void QueryValidFiles();
61 TString fGridUrl; // Grid Url ("alien://aliendb4.cern.ch:9000")
62 TString fUser; // User
63 TString fDBFolder; // path of the DB folder
64 TString fSE; // Storage Element
66 ClassDef(AliCDBGrid, 0) // access class to a DataBase in an AliEn storage
69 /////////////////////////////////////////////////////////////////////
71 // class AliCDBGridFactory //
73 /////////////////////////////////////////////////////////////////////
75 class AliCDBGridFactory: public AliCDBStorageFactory {
79 virtual Bool_t Validate(const char* gridString);
80 virtual AliCDBParam* CreateParameter(const char* gridString);
83 virtual AliCDBStorage* Create(const AliCDBParam* param);
85 ClassDef(AliCDBGridFactory, 0);
88 /////////////////////////////////////////////////////////////////////
90 // class AliCDBGridParam //
92 /////////////////////////////////////////////////////////////////////
94 class AliCDBGridParam: public AliCDBParam {
98 AliCDBGridParam(const char* gridUrl, const char* user,
99 const char* dbFolder, const char* se);
101 virtual ~AliCDBGridParam();
103 const TString& GridUrl() const {return fGridUrl;};
104 const TString& GetUser() const {return fUser;};
105 const TString& GetDBFolder() const {return fDBFolder;};
106 const TString& GetSE() const {return fSE;};
108 virtual AliCDBParam* CloneParam() const;
110 virtual ULong_t Hash() const;
111 virtual Bool_t IsEqual(const TObject* obj) const;
114 TString fGridUrl; // Grid url "Host:port"
115 TString fUser; // User
116 TString fDBFolder; // path of the DB folder
117 TString fSE; // Storage Element
119 ClassDef(AliCDBGridParam, 0);