LWH::Tree Class Reference

The Tree class is a simple implementation of the AIDA::ITree interface. More...

#include <Tree.h>

List of all members.

Public Types

typedef std::vector< std::string > Path
 A path is a vector of directory names.
typedef std::set< PathPathSet
 A set of paths.
typedef std::map< std::string,
IManagedObject * > 
ObjMap
 Map of paths to objects.

Public Member Functions

 Tree (std::string storename, bool xml=true)
 The standard constructor.
 Tree ()
 The default constructor.
 Tree (const Tree &dt)
 The copy constructor.
virtual ~Tree ()
 Destructor.
std::string storeName () const
 Get the name of the store.
IManagedObject * find (const std::string &path)
 Get the IManagedObject at a given path in the ITree.
ITree * findTree (const std::string &)
 LWH cannot get a mounted ITree at a given path in the current ITree.
bool cd (const std::string &dir)
 Change to a given directory.
bool insert (std::string str, IManagedObject *o)
 Insert the ManagedObject o in the tree with the path str.
std::string pwd () const
 Get the path of the current working directory.
bool ls (const std::string &=".", bool=false, std::ostream &=std::cout) const
 Not implemented in LWH.
std::vector< std::string > listObjectNames (const std::string &=".", bool=false) const
 Not implemented in LWH.
std::vector< std::string > listObjectTypes (const std::string &=".", bool=false) const
 Not implemented in LWH.
bool mkdir (const std::string &dir)
 Create a new directory.
bool mkdirs (const std::string &dir)
 Create a directory recursively.
bool mkdirs (Path p)
 Create a directory recursively.
bool rmdir (const std::string &dir)
 Remove a directory and all the contents underneeth.
bool rm (const std::string &path)
 Remove and delete an IManagedObject by specifying its path.
std::string findPath (const IManagedObject &o) const
 Get the full path of an IManagedObject.
bool mv (const std::string &oldp, const std::string &newp)
 Move an IManagedObject or a directory from one directory to another.
bool commit ()
 Print all histograms to the current filename.
void setOverwrite (bool o=true)
 Not implemented in LWH.
bool cp (const std::string &, const std::string &, bool=false)
 Not implemented in LWH.
bool symlink (const std::string &, const std::string &)
 Not implemented in LWH.
bool mount (const std::string &, ITree &, const std::string &)
 Not implemented in LWH.
bool unmount (const std::string &)
 Not implemented in LWH.
bool close ()
 Calls commit().
void * cast (const std::string &) const
 Not implemented in LWH.

Protected Member Functions

std::string sts (std::string s) const
 Strip trailing slash.
std::string stn (std::string s) const
 Strip trailing name.
std::string fullpath (std::string d) const
 Get proper full path from possibly relative path.
Path str2pth (std::string s) const
 Convert a string containing a path to a Path object.
std::string pth2str (const Path &pth) const
 Convert a Path object to a corresponding string.
Path purgepath (const Path &pth) const
 Remove '.

Private Attributes

std::string name
 The filename to print histograms to.
bool flat
 If true write histograms in FLAT format, otherwise in XML.
PathSet dirs
 The set of defined directories.
ObjMap objs
 The set of defined objects.
std::string cwd
 The current working directory.
bool overwrite
 Overwrite strategy.

Friends

class AnalysisFactory
 The AnalysisFactory is a friend.


Detailed Description

The Tree class is a simple implementation of the AIDA::ITree interface.

Definition at line 32 of file Tree.h.


Member Typedef Documentation

typedef std::vector<std::string> LWH::Tree::Path

A path is a vector of directory names.

Definition at line 40 of file Tree.h.

typedef std::map<std::string, IManagedObject *> LWH::Tree::ObjMap

Map of paths to objects.

Definition at line 46 of file Tree.h.


Member Function Documentation

std::string LWH::Tree::storeName (  )  const [inline]

Get the name of the store.

Returns:
The store's name.

Definition at line 82 of file Tree.h.

References name.

IManagedObject* LWH::Tree::find ( const std::string &  path  )  [inline]

Get the IManagedObject at a given path in the ITree.

The path can either be absolute or relative to the current working directory.

Parameters:
path The path.
Returns:
The corresponding IManagedObject.

Definition at line 92 of file Tree.h.

References objs.

ITree* LWH::Tree::findTree ( const std::string &   )  [inline]

LWH cannot get a mounted ITree at a given path in the current ITree.

Returns:
0 always.

Definition at line 101 of file Tree.h.

bool LWH::Tree::cd ( const std::string &  dir  )  [inline]

Change to a given directory.

Parameters:
dir The absolute or relative path of the directory we are changing to.
Returns:
false If the path does not exist.

Definition at line 111 of file Tree.h.

References cwd, dirs, fullpath(), pth2str(), purgepath(), str2pth(), and sts().

std::string LWH::Tree::pwd (  )  const [inline]

Get the path of the current working directory.

Returns:
The path of the current working directory.

Definition at line 145 of file Tree.h.

References cwd.

bool LWH::Tree::ls ( const std::string &  = ".",
bool  = false,
std::ostream &  = std::cout 
) const [inline]

Not implemented in LWH.

Returns:
false always.

Definition at line 154 of file Tree.h.

bool LWH::Tree::mkdir ( const std::string &  dir  )  [inline]

Create a new directory.

Given a path only the last directory in it is created if all the intermediate subdirectories already exist.

Parameters:
dir The absolute or relative path of the new directory.
Returns:
false If a subdirectory within the path does not exist or it is not a directory. Also if the directory already exists.

Definition at line 182 of file Tree.h.

References dirs, fullpath(), purgepath(), str2pth(), and sts().

bool LWH::Tree::mkdirs ( const std::string &  dir  )  [inline]

Create a directory recursively.

Given a path the last directory and all the intermediate non-existing subdirectories are created.

Parameters:
dir The absolute or relative path of the new directory.
Returns:
false If an intermediate subdirectory is not a directory, or if the directory already exists.

Definition at line 198 of file Tree.h.

References fullpath(), purgepath(), str2pth(), and sts().

Referenced by mkdirs().

bool LWH::Tree::mkdirs ( Path  p  )  [inline]

Create a directory recursively.

Given a Path the last directory and all the intermediate non-existing subdirectories are created.

Parameters:
p The full Path of the new directory.
Returns:
false If an intermediate subdirectory is not a directory, or if the directory already exists.

Definition at line 209 of file Tree.h.

References dirs, and mkdirs().

bool LWH::Tree::rmdir ( const std::string &  dir  )  [inline]

Remove a directory and all the contents underneeth.

Parameters:
dir The absolute or relative path of the directory to be removed.
Returns:
false If path does not exist or if it is not a directory or if the directory is not empty.

Definition at line 222 of file Tree.h.

References dirs, fullpath(), objs, purgepath(), str2pth(), and sts().

bool LWH::Tree::rm ( const std::string &  path  )  [inline]

Remove and delete an IManagedObject by specifying its path.

Parameters:
path The absolute or relative path of the IManagedObject to be removed.
Returns:
false If path does not exist.

Definition at line 237 of file Tree.h.

References fullpath(), and objs.

Referenced by LWH::HistogramFactory::destroy(), and LWH::DataPointSetFactory::destroy().

std::string LWH::Tree::findPath ( const IManagedObject &  o  )  const [inline]

Get the full path of an IManagedObject.

Parameters:
o The IManagedObject whose path is to be returned.
Returns:
The object's absolute path. If the object does not exist, an empty string is returned.

Definition at line 251 of file Tree.h.

References objs.

Referenced by LWH::HistogramFactory::destroy(), and LWH::DataPointSetFactory::destroy().

bool LWH::Tree::mv ( const std::string &  oldp,
const std::string &  newp 
) [inline]

Move an IManagedObject or a directory from one directory to another.

Parameters:
oldp The path of the IManagedObject [not direcoty] to be moved.
newp The path of the diretory in which the object has to be moved to.
Returns:
false If either path does not exist.

Definition at line 264 of file Tree.h.

References dirs, fullpath(), insert(), objs, pth2str(), purgepath(), str2pth(), and sts().

bool LWH::Tree::commit (  )  [inline]

Print all histograms to the current filename.

Returns:
false if something went wrong.

Definition at line 281 of file Tree.h.

References flat, name, objs, LWH::ManagedObject::writeFLAT(), and LWH::ManagedObject::writeXML().

Referenced by close().

bool LWH::Tree::cp ( const std::string &  ,
const std::string &  ,
bool  = false 
) [inline]

Not implemented in LWH.

Returns:
false always.

Definition at line 314 of file Tree.h.

bool LWH::Tree::symlink ( const std::string &  ,
const std::string &   
) [inline]

Not implemented in LWH.

Returns:
false always.

Definition at line 322 of file Tree.h.

bool LWH::Tree::mount ( const std::string &  ,
ITree &  ,
const std::string &   
) [inline]

Not implemented in LWH.

Returns:
false always.

Definition at line 330 of file Tree.h.

bool LWH::Tree::unmount ( const std::string &   )  [inline]

Not implemented in LWH.

Returns:
false always.

Definition at line 338 of file Tree.h.

void* LWH::Tree::cast ( const std::string &   )  const [inline]

Not implemented in LWH.

Returns:
null pointer always.

Definition at line 353 of file Tree.h.

std::string LWH::Tree::sts ( std::string  s  )  const [inline, protected]

Strip trailing slash.

Definition at line 360 of file Tree.h.

Referenced by cd(), mkdir(), mkdirs(), mv(), and rmdir().

std::string LWH::Tree::fullpath ( std::string  d  )  const [inline, protected]

Get proper full path from possibly relative path.

Definition at line 373 of file Tree.h.

References cwd, pth2str(), purgepath(), and str2pth().

Referenced by cd(), insert(), mkdir(), mkdirs(), mv(), rm(), and rmdir().

Path LWH::Tree::str2pth ( std::string  s  )  const [inline, protected]

Convert a string containing a path to a Path object.

Definition at line 379 of file Tree.h.

Referenced by cd(), fullpath(), insert(), mkdir(), mkdirs(), mv(), and rmdir().

std::string LWH::Tree::pth2str ( const Path pth  )  const [inline, protected]

Convert a Path object to a corresponding string.

Definition at line 394 of file Tree.h.

Referenced by cd(), fullpath(), insert(), and mv().

Path LWH::Tree::purgepath ( const Path pth  )  const [inline, protected]

Remove '.

.' and '.' components of the given Path object.

Definition at line 401 of file Tree.h.

Referenced by cd(), fullpath(), insert(), mkdir(), mkdirs(), mv(), and rmdir().


Friends And Related Function Documentation

friend class AnalysisFactory [friend]

The AnalysisFactory is a friend.

Definition at line 37 of file Tree.h.


Member Data Documentation

std::string LWH::Tree::name [private]

The filename to print histograms to.

Definition at line 413 of file Tree.h.

Referenced by commit(), and storeName().

bool LWH::Tree::flat [private]

If true write histograms in FLAT format, otherwise in XML.

Definition at line 416 of file Tree.h.

Referenced by commit().

The set of defined directories.

Definition at line 419 of file Tree.h.

Referenced by cd(), insert(), mkdir(), mkdirs(), mv(), rmdir(), and Tree().

The set of defined objects.

Definition at line 422 of file Tree.h.

Referenced by commit(), find(), findPath(), insert(), mv(), rm(), rmdir(), and ~Tree().

std::string LWH::Tree::cwd [private]

The current working directory.

Definition at line 425 of file Tree.h.

Referenced by cd(), fullpath(), and pwd().

bool LWH::Tree::overwrite [private]

Overwrite strategy.

Definition at line 428 of file Tree.h.

Referenced by insert(), and setOverwrite().


The documentation for this class was generated from the following file:

Generated on Thu Apr 29 12:42:56 2010 for ThePEG by  doxygen 1.5.5