TDataSetManager This class contains functions to handle datasets in PROOF It is the layer between TProofServ and the file system that stores the datasets.
TDataSetManager(const char* group = 0, const char* user = 0, const char* options = 0) | |
virtual | ~TDataSetManager() |
void | TObject::AbstractMethod(const char* method) const |
virtual void | TObject::AppendPad(Option_t* option = "") |
virtual void | TObject::Browse(TBrowser* b) |
static TClass* | Class() |
static TClass* | TObject::Class() |
virtual const char* | TObject::ClassName() const |
virtual void | TObject::Clear(Option_t* = "") |
virtual TObject* | TObject::Clone(const char* newname = "") const |
virtual Int_t | TObject::Compare(const TObject* obj) const |
virtual void | TObject::Copy(TObject& object) const |
static TString | CreateUri(const char* dsGroup = 0, const char* dsUser = 0, const char* dsName = 0, const char* dsTree = 0) |
virtual void | TObject::Delete(Option_t* option = "")MENU |
virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
virtual void | TObject::Draw(Option_t* option = "") |
virtual void | TObject::DrawClass() constMENU |
virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
virtual void | TObject::Dump() constMENU |
virtual void | TObject::Error(const char* method, const char* msgfmt) const |
virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
virtual Bool_t | ExistsDataSet(const char* uri) |
virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
virtual TObject* | TObject::FindObject(const char* name) const |
virtual TObject* | TObject::FindObject(const TObject* obj) const |
virtual TFileCollection* | GetDataSet(const char* uri, const char* server = 0) |
virtual TMap* | GetDataSets(const char* uri, UInt_t = 0) |
virtual Option_t* | TObject::GetDrawOption() const |
static Long_t | TObject::GetDtorOnly() |
virtual Long64_t | GetGroupQuota(const char* group) |
virtual TMap* | GetGroupQuotaMap() |
virtual Long64_t | GetGroupUsed(const char* group) |
virtual const char* | TObject::GetIconName() const |
virtual const char* | TObject::GetName() const |
virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
static Bool_t | TObject::GetObjectStat() |
virtual Option_t* | TObject::GetOption() const |
virtual TMap* | GetSubDataSets(const char* uri, const char* excludeservers) |
virtual const char* | TObject::GetTitle() const |
virtual UInt_t | TObject::GetUniqueID() const |
virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
virtual ULong_t | TObject::Hash() const |
virtual void | TObject::Info(const char* method, const char* msgfmt) const |
virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
virtual void | TObject::Inspect() constMENU |
void | TObject::InvertBit(UInt_t f) |
virtual TClass* | IsA() const |
virtual TClass* | TObject::IsA() const |
virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
virtual Bool_t | TObject::IsFolder() const |
Bool_t | TObject::IsOnHeap() const |
virtual Bool_t | TObject::IsSortable() const |
Bool_t | TObject::IsZombie() const |
virtual void | TObject::ls(Option_t* option = "") const |
void | TObject::MayNotUse(const char* method) const |
virtual void | MonitorUsedSpace(TVirtualMonitoringWriter* monitoring) |
virtual Bool_t | TObject::Notify() |
static void | TObject::operator delete(void* ptr) |
static void | TObject::operator delete(void* ptr, void* vp) |
static void | TObject::operator delete[](void* ptr) |
static void | TObject::operator delete[](void* ptr, void* vp) |
void* | TObject::operator new(size_t sz) |
void* | TObject::operator new(size_t sz, void* vp) |
void* | TObject::operator new[](size_t sz) |
void* | TObject::operator new[](size_t sz, void* vp) |
TObject& | TObject::operator=(const TObject& rhs) |
virtual void | TObject::Paint(Option_t* option = "") |
virtual void | ParseInitOpts(const char* opts) |
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 | TObject::Pop() |
virtual void | TObject::Print(Option_t* option = "") const |
virtual Int_t | TObject::Read(const char* name) |
virtual void | TObject::RecursiveRemove(TObject* obj) |
virtual Int_t | RegisterDataSet(const char* uri, TFileCollection* dataSet, const char* opt) |
virtual Bool_t | RemoveDataSet(const char* uri) |
void | TObject::ResetBit(UInt_t f) |
virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
virtual Int_t | ScanDataSet(const char* uri, UInt_t option = 0) |
void | TObject::SetBit(UInt_t f) |
void | TObject::SetBit(UInt_t f, Bool_t set) |
virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
static void | TObject::SetDtorOnly(void* obj) |
static void | TObject::SetObjectStat(Bool_t stat) |
virtual void | TObject::SetUniqueID(UInt_t uid) |
virtual void | ShowDataSets(const char* uri = "*", const char* opt = "") |
virtual void | ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | TObject::ShowMembers(TMemberInspector& insp, char* parent) |
virtual void | ShowQuota(const char* opt) |
virtual void | Streamer(TBuffer& b) |
virtual void | TObject::Streamer(TBuffer& b) |
void | StreamerNVirtual(TBuffer& b) |
void | TObject::StreamerNVirtual(TBuffer& b) |
virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
Bool_t | TObject::TestBit(UInt_t f) const |
Int_t | TObject::TestBits(UInt_t f) const |
virtual void | TObject::UseCurrentStyle() |
virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
virtual TMap* | GetGroupUsedMap() |
Int_t | GetNDisapparedFiles() const |
Int_t | GetNOpenedFiles() const |
Int_t | GetNTouchedFiles() const |
void | GetQuota(const char* group, const char* user, const char* dsName, TFileCollection* dataset) |
virtual TMap* | GetUserUsedMap() |
void | TObject::MakeZombie() |
void | PrintDataSet(TFileCollection* fc, Int_t popt = 0) |
void | PrintUsedSpace() |
Bool_t | ReadGroupConfig(const char* cf = 0) |
static Long64_t | ToBytes(const char* size = 0) |
virtual void | UpdateUsedSpace() |
TDataSetManager(const TDataSetManager&) | |
TDataSetManager& | operator=(const TDataSetManager&) |
enum EDataSetStatusBits { | kCheckQuota | |
kAllowRegister | ||
kAllowVerify | ||
kAllowStaging | ||
kIsSandbox | ||
}; | ||
enum EDataSetWorkOpts { | kDebug | |
kShowDefault | ||
kPrint | ||
kExport | ||
kQuotaUpdate | ||
kSetDefaultTree | ||
kReopen | ||
kTouch | ||
kMaxFiles | ||
kReadShort | ||
kFileMustExist | ||
}; | ||
enum TObject::EStatusBits { | kCanDelete | |
kMustCleanup | ||
kObjInCanvas | ||
kIsReferenced | ||
kHasUUID | ||
kCannotPick | ||
kNoContextMenu | ||
kInvalidObject | ||
}; | ||
enum TObject::[unnamed] { | kIsOnHeap | |
kNotDeleted | ||
kZombie | ||
kBitMask | ||
kSingleKey | ||
kOverwrite | ||
kWriteDelete | ||
}; |
Long64_t | fAvgFileSize | Average file size to be used to estimate the dataset size (in MB) |
TUri | fBase | Base URI used to parse dataset names |
TString | fCommonGroup | Group that stores the COMMON datasets |
TString | fCommonUser | User that stores the COMMON datasets |
TString | fGroup | Group to which the owner of this session belongs |
TString | fGroupConfigFile | Path to the group config file |
TMap | fGroupQuota | Group quotas (read from config file) |
TMap | fGroupUsed | <group> --> <used bytes> (TParameter) |
Long_t | fMTimeGroupConfig | Last modification of the group config file |
Int_t | fNDisappearedFiles | Number of files disappared in the last ScanDataSet operation |
Int_t | fNOpenedFiles | Number of files opened in the last ScanDataSet operation |
Int_t | fNTouchedFiles | Number of files touched in the last ScanDataSet operation |
TString | fUser | Owner of the session |
TMap | fUserUsed | <group> --> <map of users> --> <value> |
static TString | fgCommonDataSetTag | Name for common datasets, default: COMMON |
Main constructor
Parse the opts string and set the init bits accordingly Available options: Cq: set kCheckQuota Ar: set kAllowRegister Av: set kAllowVerify As: set kAllowStaging Sb: set kIsSandbox The opts string may also contain additional unrelated info: in such a case the field delimited by the prefix "opt:" is analyzed, e.g. if opts is "/tmp/dataset opt:Cq:-Ar: root://lxb6046.cern.ch" only the substring "Cq:-Ar:" will be parsed .
Read group config file 'cf'. If cf == 0 re-read, if changed, the file pointed by fGroupConfigFile . expects the following directives: Group definition: group <groupname> <user>+ disk quota property <groupname> diskquota <quota in GB> average filesize (to be used when the file size is not available) averagefilesize <average size>{G,g,M,m,K,k}
Static utility function to gt the number of bytes from a string representation in the form "<digit><sfx>" with <sfx> = {"", "k", "M", "G", "T", "P"} (case insensitive). Returns -1 if the format is wrong.
Utility function used in various methods for user dataset upload.
Returns all datasets for the <group> and <user> specified by <uri>. If <user> is 0, it returns all datasets for the given <group>. If <group> is 0, it returns all datasets. The returned TMap contains: <group> --> <map of users> --> <map of datasets> --> <dataset> (TFileCollection) The unsigned int 'option' is forwarded to GetDataSet and BrowseDataSet. Available options (to be .or.ed): kShowDefault a default selection is shown that include the ones from the current user, the ones from the group and the common ones kPrint print the dataset content kQuotaUpdate update quotas kExport use export naming NB1: options "kPrint", "kQuoatUpdate" and "kExport" are mutually exclusive NB2: for options "kPrint" and "kQuoatUpdate" return is null.
Scans the dataset indicated by <uri> and returns the number of missing files. Returns -1 if any failure occurs. For more details, see documentation of ScanDataSet(TFileCollection *dataset, const char *option)
Gets quota information from this dataset
Register a dataset, perfoming quota checkings, if needed. Returns 0 on success, -1 on failure
Creates URI for the dataset manger in the form '[[/dsGroup/]dsUser/]dsName[#dsObjPath]', The optional dsObjPath can be in the form [subdir/]objname]'.
Parses a (relative) URI that describes a DataSet on the cluster. The input 'uri' should be in the form '[[/group/]user/]dsname[#[subdir/]objname]', where 'objname' is the name of the object (e.g. the tree name) and the 'subdir' is the directory in the file wher it should be looked for. After resolving against a base URI consisting of proof://masterhost/group/user - meaning masterhost, group and user of the current session - the path is checked to contain exactly three elements separated by '/': group/user/dsname If wildcards, '*' is allowed in group and user and dsname is allowed to be empty. If onlyCurrent, only group and user of current session are allowed. Only non-null parameters are filled by this function. Returns kTRUE in case of success.
Partition dataset 'ds' accordingly to the servers. The returned TMap contains: <server> --> <subdataset> (TFileCollection) where <subdataset> is the subset of 'ds' on <server> The partitioning is done using all the URLs in the TFileInfo's, so the resulting datasets are not mutually exclusive. The string 'exclude' contains a comma-separated list of servers to exclude from the map.
Formatted printout of the content of TFileCollection 'fc'. Options in the form popt = u * 10 + f f 0 => header only, 1 => header + files when printing files u 0 => print file name only, 1 => print full URL
Prints formatted information about the dataset 'uri'. The type and format of output is driven by 'opt': 1. opt = "server:srv1[,srv2[,srv3[,...]]]" Print info about the subsets of 'uri' on servers srv1, srv2, ... 2. opt = "servers[:exclude:srv1[,srv2[,srv3[,...]]]]" Print info about the subsets of 'uri' on all servers, except the ones in the exclude list srv1, srv2, ... 3. opt = <any> Print info about all datasets matching 'uri' If 'opt' contains 'full:' the list of files in the datasets are also printed. In case 3. this is enabled only if 'uri' matches a single dataset.