ROOT logo
HYDRA - THE HADES ANALYSIS PACKAGE » UTIL » HDiskCatalog

class HDiskCatalog: public TNamed

_HADES_CLASS_DESCRIPTION



 HDiskFile,HDiskDir,HDiskCatalog,HFileSys

 tool set to build a catalog of a full filesystem including all
 meta information of files and dirs. The catalog can be updated
 incremental by rescanning only dirs which have been modfied since
 last scan.


Function Members (Methods)

public:
HDiskCatalog(TString name = "")
HDiskCatalog(const HDiskCatalog&)
virtual~HDiskCatalog()
voidTObject::AbstractMethod(const char* method) const
Int_taddDir(HDiskDir* dir)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
UInt_tfilterDirs(TString regexp, vector<HDiskDir*>& dirs, TString range1S = "", TString range2S = "", Long64_t size = 0)
UInt_tfilterFiles(TString regexpdir, TString regexpfile, vector<HDiskFile*>& files, TString range1S = "", TString range2S = "", Long64_t size = 0)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
voidgetDaughterDirs(HDiskDir* dir, vector<HDiskDir*>& daughters)
voidgetDaughterDirsRecursive(HDiskDir* dir, vector<HDiskDir*>& daughters)
HDiskDir*getDir(TString name, Int_t* ind = 0)
TStringgetDiskName()
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Bool_tgetGroup(gid_t gid, TString& name)
map<gid_t,TString>&getGroupMap()
virtual const char*TObject::GetIconName() const
time_tgetLastScanStart()
time_tgetLastScanStop()
TObjArray*getList()
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Bool_tgetUser(uid_t uid, TString& name)
map<uid_t,TString>&getUserMap()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::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)
HDiskCatalog&operator=(const HDiskCatalog&)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
voidprint(UChar_t maxlevel = 255)
virtual voidTNamed::Print(Option_t* option = "") const
voidprintDirs(TString regexp, TString range1S = "", TString range2S = "", Long64_t size = 0)
voidprintDisk(UChar_t maxlevel = 255, TString option = "size", Int_t nfill = 0, TString filler = " ")
voidprintExecution()
voidprintFiles(TString regexpdir, TString regexpfile, TString range1S = "", TString range2S = "", Long64_t size = 0)
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(ostream& out, Option_t* option = "")
Bool_tscan()
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidsetCurrentCatalog()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidsetGroupMap(map<gid_t,TString>& mg)
voidsetLastScanStart(time_t t)
voidsetLastScanStop(time_t t)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
voidsetUserMap(map<uid_t,TString>& mu)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
voidsortDirs(HDiskDir* dir, vector<HDiskDir*>& daughters, TString option)
voidsortDirsRecursive(HDiskDir* dir, vector<HDiskDir*>& daughters, TString option)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
voidupdateDirIndices()
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidaddDir(TString n, Int_t ind)
static Bool_tcmpName(HDiskDir*, HDiskDir*)
static Bool_tcmpNFiles(HDiskDir*, HDiskDir*)
static Bool_tcmpNFilesRatio(HDiskDir*, HDiskDir*)
static Bool_tcmpNSmallFiles(HDiskDir*, HDiskDir*)
static Bool_tcmpSize(HDiskDir*, HDiskDir*)
HDiskDir*getDir(TString name, TObjArray* listtmp, Int_t* ind)
Int_tgetDirMap(TString n)
HDiskDir*getDirMapOld(TString n)
voidloopDirectory(TString directory, vector<TString>& dirList)
voidloopDirectoryRecursive(TString directory)

Data Members

protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
TStringdiskname
TObjArray*flisttmp!
Int_tfndirs!
Int_tfnfiles!
Int_tfnfilestotal!
time_tlastScanStart
time_tlastScanStop
TObjArray*list!
map<TString,HDiskDir*>mDirOld!
map<TString,Int_t>mDirToInd
map<gid_t,TString>mgroups
map<uid_t,TString>musers
Int_tnSplit
statstatus!

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

HDiskCatalog(TString name = "")
~HDiskCatalog()
Bool_t cmpName(HDiskDir* , HDiskDir* )
 compare function for sorting dirs alphabetically by
 owner name
Bool_t cmpSize(HDiskDir* , HDiskDir* )
 compare function for sorting dirs by size descending
Bool_t cmpNFiles(HDiskDir* , HDiskDir* )
 compare function for sorting dirs by number of files descending
Bool_t cmpNSmallFiles(HDiskDir* , HDiskDir* )
 compare function for sorting dirs by number of small files descending
Bool_t cmpNFilesRatio(HDiskDir* , HDiskDir* )
 compare function for sorting dirs by number of small files descending
HDiskDir* getDir(TString name, Int_t* ind = 0)
 returns HDiskDir* p from index by name.
 pointer is NULL if not found
HDiskDir* getDir(TString name, TObjArray* listtmp, Int_t* ind)
 returns HDiskDir* p from index by name.
 pointer is NULL if not found
void print(UChar_t maxlevel = 255)
 prints all dirs (up to maxlevel, default is all)
void loopDirectory(TString directory, vector<TString>& dirList)
 fill all dir names of directory to vector.
 uses readdir()
void loopDirectoryRecursive(TString directory)
 fill all dir names of directory rekursively to vector.
 uses readdir()
Bool_t scan()
 scans the disk and rescans dirs
 which have been modified since last scan
void updateDirIndices()
 set indices of daughter dirs
 does not change nFilesTotal etc.
Int_t addDir(HDiskDir* dir)
 use this to produce super catalogs (new empty base,
 than add dirs, last call updateDirIndices())
void getDaughterDirs(HDiskDir* dir, vector<HDiskDir*>& daughters)
 get all daughters of dir by index
void getDaughterDirsRecursive(HDiskDir* dir, vector<HDiskDir*>& daughters)
 get all daughters of dir rekursively by index
void sortDirs(HDiskDir* dir, vector<HDiskDir*>& daughters, TString option)
 sort daughters of dir by option
 option: name        (name of owner)
         size        (size of directory)
         nfiles      (number of files in directory (rekursively))
         nsmallfiles (number of small files in directory(rekursively))
         filesratio  (number of small files in directory / number of total files)
void sortDirsRecursive(HDiskDir* dir, vector<HDiskDir*>& daughters, TString option)
 sort daughters of dir rekursively by option
 option: name        (name of owner)
         size        (size of directory)
         nfiles      (number of files in directory (rekursively))
         nsmallfiles (number of small files in directory(rekursively))
         filesratio  (number of small files in directory / number of total files)
void printDisk(UChar_t maxlevel = 255, TString option = "size", Int_t nfill = 0, TString filler = " ")
 prints the catalog of the disk
 maxlevel : number of subdir levels to be shown
 sort option: name        (name of owner)
              size        (size of directory)
              nfiles      (number of files in directory (rekursively))
              nsmallfiles (number of small files in directory(rekursively))
              filesratio  (number of small files / number of total files (rekursively))
 nfill      :  number of character to be inserted in front for each level of subdirs
 filler     :  character to be inserted in front for each level of subdirs
void printExecution()
 prints the execution start and stop time and the duration
UInt_t filterDirs(TString regexp, vector<HDiskDir*>& dirs, TString range1S = "", TString range2S = "", Long64_t size = 0)
 filters all dirs fitting the regular expression regexp
 TRegexp is used, read about the limitations
 dirs cand be filtered by last modification range1 to range2
 (format yyyy-mm-dd hh:mm:ss). default is no filter
UInt_t filterFiles(TString regexpdir, TString regexpfile, vector<HDiskFile*>& files, TString range1S = "", TString range2S = "", Long64_t size = 0)
 filter all files fitting the regular expression regexpdir for
 the path and regexpfile for the file name
 TRegexp is used, read about the limitations
 files cand be filtered by last modification range1 to range2
 (format yyyy-mm-dd hh:mm:ss). default is no filter
void printDirs(TString regexp, TString range1S = "", TString range2S = "", Long64_t size = 0)
 prints all dirs fitting the regular expression regexp
 TRegexp is used, read about the limitations
 dirs cand be filtered by last modification range1 to range2
 (format yyyy-mm-dd hh:mm:ss). default is no filter
void printFiles(TString regexpdir, TString regexpfile, TString range1S = "", TString range2S = "", Long64_t size = 0)
 prints all files fitting the regular expression regexpdir for
 the path and regexpfile for the file name
 TRegexp is used, read about the limitations
 files cand be filtered by last modification range1 to range2
 (format yyyy-mm-dd hh:mm:ss). default is no filter
Bool_t getUser(uid_t uid, TString& name)
 lookup of user uid in the map of
 known users. if the user can not be
 found the the user name will be unknown_uid
Bool_t getGroup(gid_t gid, TString& name)
 lookup of group gid in the map of
 known groups. if the group can not be
 found the the group name will be unknown_gid
void Streamer(TBuffer& )
 Stream an object of class HDiskCatalog.
map<uid_t,TString>& getUserMap()
{ return musers; }
map<gid_t,TString>& getGroupMap()
{ return mgroups; }
void addDir(HDiskDir* dir)
{ dirs .push_back(index); }
Int_t getDirMap(TString n)
HDiskDir* getDirMapOld(TString n)
HDiskCatalog(TString name = "")
TString getDiskName()
{ return diskname;}
TObjArray* getList()
{ return list;}
time_t getLastScanStart()
{ return lastScanStart;}
time_t getLastScanStop()
{ return lastScanStop;}
void setLastScanStart(time_t t)
void setLastScanStop(time_t t)
{ lastScanStop = t;}
void setUserMap(map<uid_t,TString>& mu)
{ musers = mu;}
void setGroupMap(map<gid_t,TString>& mg)
{ mgroups = mg;}
void setCurrentCatalog()
{ gHDiskCatalog = this;}