#ifndef ROOT_TProofDataSetManager
#define ROOT_TProofDataSetManager
#ifndef ROOT_TObject
#include "TObject.h"
#endif
#ifndef ROOT_TString
#include "TString.h"
#endif
#ifndef ROOT_TMap
#include "TMap.h"
#endif
#ifndef ROOT_TUri
#include "TUri.h"
#endif
class TFileCollection;
class TMD5;
class TVirtualMonitoringWriter;
class TProofDataSetManager : public TObject {
private:
TProofDataSetManager(const TProofDataSetManager&);
TProofDataSetManager& operator=(const TProofDataSetManager&);
protected:
TString fGroup;
TString fUser;
TString fCommonUser;
TString fCommonGroup;
TUri fBase;
TMap fGroupQuota;
TMap fGroupUsed;
TMap fUserUsed;
Long64_t fAvgFileSize;
Int_t fNTouchedFiles;
Int_t fNOpenedFiles;
Int_t fNDisappearedFiles;
TString fGroupConfigFile;
Long_t fMTimeGroupConfig;
static TString fgCommonDataSetTag;
virtual TMap *GetGroupUsedMap() { return &fGroupUsed; }
virtual TMap *GetUserUsedMap() { return &fUserUsed; }
Int_t GetNTouchedFiles() const { return fNTouchedFiles; }
Int_t GetNOpenedFiles() const { return fNOpenedFiles; }
Int_t GetNDisapparedFiles() const { return fNDisappearedFiles; }
void GetQuota(const char *group, const char *user, const char *dsName, TFileCollection *dataset);
void PrintDataSet(TFileCollection *fc, Int_t popt = 0);
void PrintUsedSpace();
Bool_t ReadGroupConfig(const char *cf = 0);
virtual void UpdateUsedSpace();
static Long64_t ToBytes(const char *size = 0);
public:
enum EDataSetStatusBits {
kCheckQuota = BIT(15),
kAllowRegister = BIT(16),
kAllowVerify = BIT(17),
kAllowStaging = BIT(18),
kIsSandbox = BIT(19)
};
enum EDataSetWorkOpts {
kDebug = 1, kShowDefault = 2, kPrint = 4, kExport = 8,
kQuotaUpdate = 16, kSetDefaultTree = 32,
kReopen = 256, kTouch = 512, kMaxFiles = 1024, kReadShort = 2048,
kFileMustExist = 4096};
TProofDataSetManager(const char *group = 0, const char *user = 0, const char *options = 0);
virtual ~TProofDataSetManager();
virtual TFileCollection *GetDataSet(const char *uri, const char *server = 0);
virtual TMap *GetDataSets(const char *uri, UInt_t = 0);
virtual TMap *GetSubDataSets(const char *uri, const char *excludeservers);
virtual Long64_t GetGroupQuota(const char *group);
virtual TMap *GetGroupQuotaMap() { return &fGroupQuota; }
virtual Long64_t GetGroupUsed(const char *group);
virtual Bool_t ExistsDataSet(const char *uri);
virtual void MonitorUsedSpace(TVirtualMonitoringWriter *monitoring);
Bool_t ParseUri(const char *uri, TString *dsGroup = 0, TString *dsUser = 0,
TString *dsName = 0, TString *dsTree = 0,
Bool_t onlyCurrent = kFALSE, Bool_t wildcards = kFALSE);
virtual void ParseInitOpts(const char *opts);
virtual Bool_t RemoveDataSet(const char *uri);
virtual Int_t RegisterDataSet(const char *uri, TFileCollection *dataSet, const char *opt);
virtual Int_t ScanDataSet(const char *uri, UInt_t option = 0);
virtual void ShowQuota(const char *opt);
virtual void ShowDataSets(const char *uri = "*", const char *opt = "");
static TString CreateUri(const char *dsGroup = 0, const char *dsUser = 0,
const char *dsName = 0, const char *dsTree = 0);
ClassDef(TProofDataSetManager, 0)
};
#endif
TProofDataSetManager.h:10 TProofDataSetManager.h:11 TProofDataSetManager.h:12 TProofDataSetManager.h:13 TProofDataSetManager.h:14 TProofDataSetManager.h:15 TProofDataSetManager.h:16 TProofDataSetManager.h:17 TProofDataSetManager.h:18 TProofDataSetManager.h:19 TProofDataSetManager.h:20 TProofDataSetManager.h:21 TProofDataSetManager.h:22 TProofDataSetManager.h:23 TProofDataSetManager.h:24 TProofDataSetManager.h:25 TProofDataSetManager.h:26 TProofDataSetManager.h:27 TProofDataSetManager.h:28 TProofDataSetManager.h:29 TProofDataSetManager.h:30 TProofDataSetManager.h:31 TProofDataSetManager.h:32 TProofDataSetManager.h:33 TProofDataSetManager.h:34 TProofDataSetManager.h:35 TProofDataSetManager.h:36 TProofDataSetManager.h:37 TProofDataSetManager.h:38 TProofDataSetManager.h:39 TProofDataSetManager.h:40 TProofDataSetManager.h:41 TProofDataSetManager.h:42 TProofDataSetManager.h:43 TProofDataSetManager.h:44 TProofDataSetManager.h:45 TProofDataSetManager.h:46 TProofDataSetManager.h:47 TProofDataSetManager.h:48 TProofDataSetManager.h:49 TProofDataSetManager.h:50 TProofDataSetManager.h:51 TProofDataSetManager.h:52 TProofDataSetManager.h:53 TProofDataSetManager.h:54 TProofDataSetManager.h:55 TProofDataSetManager.h:56 TProofDataSetManager.h:57 TProofDataSetManager.h:58 TProofDataSetManager.h:59 TProofDataSetManager.h:60 TProofDataSetManager.h:61 TProofDataSetManager.h:62 TProofDataSetManager.h:63 TProofDataSetManager.h:64 TProofDataSetManager.h:65 TProofDataSetManager.h:66 TProofDataSetManager.h:67 TProofDataSetManager.h:68 TProofDataSetManager.h:69 TProofDataSetManager.h:70 TProofDataSetManager.h:71 TProofDataSetManager.h:72 TProofDataSetManager.h:73 TProofDataSetManager.h:74 TProofDataSetManager.h:75 TProofDataSetManager.h:76 TProofDataSetManager.h:77 TProofDataSetManager.h:78 TProofDataSetManager.h:79 TProofDataSetManager.h:80 TProofDataSetManager.h:81 TProofDataSetManager.h:82 TProofDataSetManager.h:83 TProofDataSetManager.h:84 TProofDataSetManager.h:85 TProofDataSetManager.h:86 TProofDataSetManager.h:87 TProofDataSetManager.h:88 TProofDataSetManager.h:89 TProofDataSetManager.h:90 TProofDataSetManager.h:91 TProofDataSetManager.h:92 TProofDataSetManager.h:93 TProofDataSetManager.h:94 TProofDataSetManager.h:95 TProofDataSetManager.h:96 TProofDataSetManager.h:97 TProofDataSetManager.h:98 TProofDataSetManager.h:99 TProofDataSetManager.h:100 TProofDataSetManager.h:101 TProofDataSetManager.h:102 TProofDataSetManager.h:103 TProofDataSetManager.h:104 TProofDataSetManager.h:105 TProofDataSetManager.h:106 TProofDataSetManager.h:107 TProofDataSetManager.h:108 TProofDataSetManager.h:109 TProofDataSetManager.h:110 TProofDataSetManager.h:111 TProofDataSetManager.h:112 TProofDataSetManager.h:113 TProofDataSetManager.h:114 TProofDataSetManager.h:115 TProofDataSetManager.h:116 TProofDataSetManager.h:117 TProofDataSetManager.h:118 TProofDataSetManager.h:119 TProofDataSetManager.h:120 TProofDataSetManager.h:121 TProofDataSetManager.h:122 TProofDataSetManager.h:123 TProofDataSetManager.h:124 TProofDataSetManager.h:125 TProofDataSetManager.h:126 TProofDataSetManager.h:127 TProofDataSetManager.h:128 TProofDataSetManager.h:129 TProofDataSetManager.h:130 TProofDataSetManager.h:131