12 #ifndef ROOT_TDataSetManagerAliEn
13 #define ROOT_TDataSetManagerAliEn
39 typedef enum { kDataRemote, kDataCache, kDataLocal } EDataMode;
41 class TAliEnFind :
public TObject {
54 TGridResult *fGridResult;
56 inline virtual void InvalidateSearchId();
57 inline virtual void InvalidateGridResult();
61 TAliEnFind(
const TString &basePath =
"",
const TString &fileName =
"",
62 const TString &anchor =
"",
const Bool_t archSubst = kFALSE,
63 const TString &treeName =
"",
const TString ®exp =
"",
64 const TString &query =
"");
66 TAliEnFind(
const TAliEnFind &src);
67 TAliEnFind &operator=(
const TAliEnFind &rhs);
69 virtual ~TAliEnFind();
71 virtual TGridResult *GetGridResult(Bool_t forceNewQuery = kFALSE);
73 virtual const TString &GetBasePath()
const {
return fBasePath; };
74 virtual const TString &GetFileName()
const {
return fFileName; };
75 virtual const TString &GetAnchor()
const {
return fAnchor; };
76 virtual const TString &GetTreeName()
const {
return fTreeName; };
77 virtual Bool_t GetArchSubst()
const {
return fArchSubst; };
78 virtual const TPMERegexp *GetRegexp()
const {
return fRegexp; };
80 virtual void SetBasePath(
const char *basePath);
81 virtual void SetFileName(
const char *fileName);
82 virtual void SetAnchor(
const char *anchor);
83 virtual void SetTreeName(
const char *fileName);
84 virtual void SetArchSubst(Bool_t archSubst);
85 virtual void SetRegexp(
const char *regexp);
87 virtual const char *GetSearchId();
88 virtual TFileCollection *GetCollection(Bool_t forceNewQuery = kFALSE);
89 virtual void Print(Option_t* opt =
"")
const;
91 ClassDef(TAliEnFind, 0);
95 class TDataSetManagerAliEn :
public TDataSetManager {
101 TDataSetManagerFile *fCache;
102 Long_t fCacheExpire_s;
105 const TUrl *kfNoopRedirUrl;
106 const TUrl *kfNoopUnknownUrl;
107 const TUrl *kfNoopNoneUrl;
109 static std::vector<Int_t> *ExpandRunSpec(TString &runSpec);
111 static Bool_t ParseCustomFindUri(TString &uri, TString &basePath,
112 TString &fileName, TString &anchor, TString &query, TString &treeName,
115 static Bool_t ParseOfficialDataUri(TString &uri, Bool_t sim,
116 TString &period, Int_t &year, std::vector<Int_t> *&runList,
117 Bool_t &esd, Int_t &aodNum, TString &pass);
119 static TUrl *AliEnWhereIs(TUrl *alienUrl, TString &closeSE,
120 Bool_t onlyFromCloseSE);
122 virtual void Init(TString cacheDir, TString urlTpl,
123 ULong_t cacheExpire_s);
125 virtual TList *GetFindCommandsFromUri(TString &uri, EDataMode &dataMode, Bool_t &forceUpdate);
129 TDataSetManagerAliEn() : TDataSetManager(0, 0, 0) {}
130 TDataSetManagerAliEn(
const char *cacheDir,
const char *urlTpl,
131 ULong_t cacheExpire_s);
132 TDataSetManagerAliEn(
const char *,
const char *,
const char *cfgStr);
134 virtual ~TDataSetManagerAliEn();
135 virtual TFileCollection *GetDataSet(
const char *uri,
const char * = 0);
136 virtual Bool_t ExistsDataSet(
const char *uri);
139 virtual Int_t RegisterDataSet(
const char *, TFileCollection *,
141 virtual TMap *GetDataSets(
const char *, UInt_t);
142 virtual void ShowDataSets(
const char * =
"*",
const char * =
"");
143 virtual Bool_t RemoveDataSet(
const char *uri);
144 virtual Int_t ScanDataSet(
const char *, UInt_t);
145 virtual Int_t ShowCache(
const char *);
146 virtual Int_t ClearCache(
const char *);
148 ClassDef(TDataSetManagerAliEn, 0)