Logo ROOT   6.07/09
Reference Guide
TDataSetManagerAliEn.h
Go to the documentation of this file.
1 // @(#)root/proof:$Id: 511148a2a899e02c8f5b86a7d87caee2e5979f9d $
2 // Author: Dario Berzano, 26.11.12
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TDataSetManagerAliEn
13 #define ROOT_TDataSetManagerAliEn
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TDataSetManagerAliEn //
18 // //
19 // Implementation of TDataSetManager dynamically creating datasets //
20 // by querying the AliEn file catalog. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #ifndef ROOT_TDataSetManager
25 #include "TDataSetManager.h"
26 #endif
27 
28 #ifndef ROOT_TDataSetManagerFile
29 #include "TDataSetManagerFile.h"
30 #endif
31 
32 #include "TFileStager.h"
33 #include "TPRegexp.h"
34 #include "TObjString.h"
35 #include "TObjArray.h"
36 #include "TFileCollection.h"
37 #include "TFileInfo.h"
38 #include "TGridResult.h"
39 #include "TGrid.h"
40 #include "THashList.h"
41 #include "TSystem.h"
42 
44 
45 class TAliEnFind : public TObject {
46 
47  private:
48 
59 
60  inline virtual void InvalidateSearchId();
61  inline virtual void InvalidateGridResult();
62 
63  public:
64 
65  TAliEnFind(const TString &basePath = "", const TString &fileName = "",
66  const TString &anchor = "", const Bool_t archSubst = kFALSE,
67  const TString &treeName = "", const TString &regexp = "",
68  const TString &query = "");
69 
70  TAliEnFind(const TAliEnFind &src);
71  TAliEnFind &operator=(const TAliEnFind &rhs);
72 
73  virtual ~TAliEnFind();
74 
75  virtual TGridResult *GetGridResult(Bool_t forceNewQuery = kFALSE);
76 
77  virtual const TString &GetBasePath() const { return fBasePath; };
78  virtual const TString &GetFileName() const { return fFileName; };
79  virtual const TString &GetAnchor() const { return fAnchor; };
80  virtual const TString &GetTreeName() const { return fTreeName; };
81  virtual Bool_t GetArchSubst() const { return fArchSubst; };
82  virtual const TPMERegexp *GetRegexp() const { return fRegexp; };
83 
84  virtual void SetBasePath(const char *basePath);
85  virtual void SetFileName(const char *fileName);
86  virtual void SetAnchor(const char *anchor);
87  virtual void SetTreeName(const char *fileName);
88  virtual void SetArchSubst(Bool_t archSubst);
89  virtual void SetRegexp(const char *regexp);
90 
91  virtual const char *GetSearchId();
92  virtual TFileCollection *GetCollection(Bool_t forceNewQuery = kFALSE);
93  virtual void Print(Option_t* opt = "") const;
94 
95  ClassDef(TAliEnFind, 0); // Interface to the AliEn find command
96 
97 };
98 
100 
101  protected:
102 
108 
112 
113  static std::vector<Int_t> *ExpandRunSpec(TString &runSpec);
114 
115  static Bool_t ParseCustomFindUri(TString &uri, TString &basePath,
116  TString &fileName, TString &anchor, TString &query, TString &treeName,
117  TString &regexp);
118 
119  static Bool_t ParseOfficialDataUri(TString &uri, Bool_t sim,
120  TString &period, Int_t &year, std::vector<Int_t> *&runList,
121  Bool_t &esd, Int_t &aodNum, TString &pass);
122 
123  static TUrl *AliEnWhereIs(TUrl *alienUrl, TString &closeSE,
124  Bool_t onlyFromCloseSE);
125 
126  virtual void Init(TString cacheDir, TString urlTpl,
127  ULong_t cacheExpire_s);
128 
129  virtual TList *GetFindCommandsFromUri(TString &uri, EDataMode &dataMode, Bool_t &forceUpdate);
130 
131  public:
132 
134  TDataSetManagerAliEn(const char *cacheDir, const char *urlTpl,
135  ULong_t cacheExpire_s);
136  TDataSetManagerAliEn(const char *, const char *, const char *cfgStr);
137 
138  virtual ~TDataSetManagerAliEn();
139  virtual TFileCollection *GetDataSet(const char *uri, const char * = 0);
140  virtual Bool_t ExistsDataSet(const char *uri);
141 
142  // Not implemented functionalities
143  virtual Int_t RegisterDataSet(const char *, TFileCollection *,
144  const char *);
145  virtual TMap *GetDataSets(const char *, UInt_t);
146  virtual void ShowDataSets(const char * = "*", const char * = "");
147  virtual Bool_t RemoveDataSet(const char *uri);
148  virtual Int_t ScanDataSet(const char *, UInt_t);
149  virtual Int_t ShowCache(const char *);
150  virtual Int_t ClearCache(const char *);
151 
152  ClassDef(TDataSetManagerAliEn, 0) // Dataset to AliEn catalog interface
153 };
154 
155 #endif
TMap * GetDataSets(const char *owner="", const char *server="", const char *opt=0)
GetDataSets wrapper.
virtual void SetRegexp(const char *regexp)
virtual void SetArchSubst(Bool_t archSubst)
const char Option_t
Definition: RtypesCore.h:62
This class represents a WWW compatible URL.
Definition: TUrl.h:41
virtual void InvalidateGridResult()
virtual const TString & GetFileName() const
virtual TGridResult * GetGridResult(Bool_t forceNewQuery=kFALSE)
Query the AliEn file catalog.
Basic string class.
Definition: TString.h:137
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual const TString & GetBasePath() const
TPMERegexp * fRegexp
virtual TFileCollection * GetCollection(Bool_t forceNewQuery=kFALSE)
#define ClassDef(name, id)
Definition: Rtypes.h:254
void Init(TClassEdit::TInterpreterLookupHelper *helper)
Definition: TClassEdit.cxx:119
virtual const TPMERegexp * GetRegexp() const
A doubly linked list.
Definition: TList.h:47
virtual const TString & GetAnchor() const
Int_t RemoveDataSet(const char *dsname)
RemoveDataSet wrapper.
TFileCollection * GetDataSet(const char *ds, const char *server="")
GetDataSet wrapper.
Definition: pq2wrappers.cxx:87
virtual void SetFileName(const char *fileName)
virtual const TString & GetTreeName() const
virtual ~TAliEnFind()
Destructor.
unsigned int UInt_t
Definition: RtypesCore.h:42
TGridResult * fGridResult
virtual void SetBasePath(const char *basePath)
long Long_t
Definition: RtypesCore.h:50
TAliEnFind & operator=(const TAliEnFind &rhs)
Assignment operator. Cached query result is not copied.
TMap implements an associative array of (key,value) pairs using a THashTable for efficient retrieval ...
Definition: TMap.h:44
unsigned long ULong_t
Definition: RtypesCore.h:51
TAliEnFind(const TString &basePath="", const TString &fileName="", const TString &anchor="", const Bool_t archSubst=kFALSE, const TString &treeName="", const TString &regexp="", const TString &query="")
Constructor.
void ShowDataSets(const char *ds, const char *opt="")
ShowDataSets wrapper.
Definition: pq2wrappers.cxx:70
virtual const char * GetSearchId()
Mother of all ROOT objects.
Definition: TObject.h:44
virtual void SetTreeName(const char *fileName)
Wrapper for PCRE library (Perl Compatible Regular Expressions).
Definition: TPRegexp.h:103
Class that contains a list of TFileInfo&#39;s and accumulated meta data information about its entries...
virtual void InvalidateSearchId()
virtual void SetAnchor(const char *anchor)
virtual Bool_t GetArchSubst() const
Int_t RegisterDataSet(const char *dsname, TFileCollection *fc, const char *opt="")
RegisterDataSet wrapper.
TDataSetManagerFile * fCache
Bool_t ExistsDataSet(const char *dsname)
ExistsDataSet wrapper.
virtual void Print(Option_t *opt="") const
This method must be overridden when a class wants to print itself.