12 #ifndef ROOT_TDataSetManagerFile
13 #define ROOT_TDataSetManagerFile
26 const char*
const kDataSet_LocalCache =
"dataset.cache";
27 const char*
const kDataSet_DataSetList =
"dataset.list";
28 const char*
const kDataSet_LockLocation =
"lock.location";
30 class TDataSetManagerFile :
public TDataSetManager {
36 TString fDataSetLockFile;
37 Int_t fLockFileTimeLimit;
41 TString fLocalCacheDir;
42 Int_t fCacheUpdatePeriod;
46 void InitLocalCache();
47 Int_t CheckLocalCache(
const char *group,
const char *user,
const char *dsName =
"ls", UInt_t option = 0);
50 const char *GetDataSetPath(
const char *group,
const char *user,
const char *dsName);
51 const char *GetDataSetPath(
const char *group,
const char *user,
const char *dsName,
52 TString &md5path, Bool_t local = kFALSE);
54 Bool_t BrowseDataSets(
const char *group,
const char *user,
const char *dsName,
55 UInt_t option, TObject *target);
57 Bool_t RemoveDataSet(
const char *group,
const char *user,
const char *dsName);
58 Bool_t ExistsDataSet(
const char *group,
const char *user,
const char *dsName);
60 Int_t ScanDataSet(
const char *group,
const char *user,
const char *dsName, UInt_t option = kReopen | kDebug);
62 Int_t ChecksumDataSet(
const char *path,
const char *md5path, TString &checksum);
64 Int_t CreateLsFile(
const char *group,
const char *user, Long_t &mtime, TString &checksum);
65 Int_t FillLsDataSet(
const char *group,
const char *user,
const char *dsName, TList *out, UInt_t option);
67 void UpdateUsedSpace();
70 TDataSetManagerFile() : TDataSetManager(0, 0, 0) { }
71 TDataSetManagerFile(
const char *group,
const char *user,
const char *ins);
72 TDataSetManagerFile(
const char *ins);
73 virtual ~TDataSetManagerFile() { }
75 void ParseInitOpts(
const char *opts);
77 Int_t ClearCache(
const char *uri = 0);
78 TFileCollection *GetDataSet(
const char *uri,
const char *srv = 0);
79 TMap *GetDataSets(
const char *uri, UInt_t option = TDataSetManager::kExport);
80 Bool_t ExistsDataSet(
const char *uri);
81 Bool_t RemoveDataSet(
const char *uri);
83 Int_t RegisterDataSet(
const char *uri, TFileCollection *dataSet,
const char *opt);
84 Int_t ScanDataSet(
const char *uri, UInt_t option = kReopen | kDebug);
85 Int_t NotifyUpdate(
const char *group,
const char *user,
86 const char *dspath, Long_t mtime,
const char *checksum = 0);
87 Int_t ShowCache(
const char *uri = 0);
90 TFileCollection *GetDataSet(
const char *group,
const char *user,
const char *dsName,
91 UInt_t option = 0, TMD5 **checksum = 0);
92 TMap *GetDataSets(
const char *group,
const char *user,
const char *dsName = 0,
94 const char *GetMSSUrl()
const {
return fMSSUrl; }
95 const char *GetStageOpts()
const {
return fStageOpts; }
96 Int_t WriteDataSet(
const char *group,
const char *user,
const char *dsName,
97 TFileCollection *dataset, UInt_t option = 0, TMD5 *checksum = 0);
98 Long_t GetModTime(
const char *uri);
100 ClassDef(TDataSetManagerFile, 0)