#ifndef ROOT_TDataSetManagerFile
#define ROOT_TDataSetManagerFile
#ifndef ROOT_TDataSetManager
#include "TDataSetManager.h"
#endif
class TDataSetManagerFile : public TDataSetManager {
private:
TString fDataSetDir;
TString fMSSUrl;
TString fDataSetLockFile;
Int_t fLockFileTimeLimit;
protected:
const char *GetDataSetPath(const char *group, const char *user, const char *dsName);
Bool_t BrowseDataSets(const char *group, const char *user, UInt_t option, TObject *target);
Bool_t RemoveDataSet(const char *group, const char *user, const char *dsName);
Bool_t ExistsDataSet(const char *group, const char *user, const char *dsName);
Int_t ScanDataSet(const char *group, const char *user, const char *dsName, UInt_t option);
void UpdateUsedSpace();
public:
TDataSetManagerFile(const char *group = 0, const char *user = 0, const char *ins = 0);
virtual ~TDataSetManagerFile() { }
void ParseInitOpts(const char *opts);
TFileCollection *GetDataSet(const char *uri, const char *srv = 0);
TMap *GetDataSets(const char *uri, UInt_t = 0);
Bool_t ExistsDataSet(const char *uri);
Bool_t RemoveDataSet(const char *uri);
Int_t RegisterDataSet(const char *uri, TFileCollection *dataSet, const char *opt);
Int_t ScanDataSet(const char *uri, UInt_t option = 0);
TFileCollection *GetDataSet(const char *group, const char *user, const char *dsName,
UInt_t option = 0, TMD5 **checksum = 0);
TMap *GetDataSets(const char *group, const char *user, UInt_t option = 0);
Int_t ScanDataSet(TFileCollection *dataset, UInt_t option, Int_t filesmax = -1);
Int_t WriteDataSet(const char *group, const char *user, const char *dsName,
TFileCollection *dataset, UInt_t option = 0, TMD5 *checksum = 0);
ClassDef(TDataSetManagerFile, 0)
};
#endif