libdar::path Class Reference
[API]

the class path is here to manipulate paths in the Unix notation: using'/' More...

#include <path.hpp>

List of all members.

Public Member Functions

 path (std::string s)
 constructor from a string
 path (const char *s)
 constructor from a char *
 path (const path &ref)
 copy constructor
pathoperator= (const path &ref)
 assignment operator
bool operator== (const path &ref) const
 comparison operator
std::string basename () const
 this function returns the basename that's it the right most member of a path
void reset_read ()
 reset for read_subdir. next call to read_subdir is the most global
bool read_subdir (std::string &r)
 sequentially read the elements that compose the path
bool is_relative () const
 whether the path is relative or absolute (= start with a /)
bool pop (std::string &arg)
 remove and gives in argument the basename of the path
bool pop_front (std::string &arg)
 remove and gives in argument the outer most member of the path
path operator+ (const path &arg) const
 add a path to the current path. The added path *must* be a relative path
pathoperator+= (const path &arg)
 add a path to the current path. The added path *must* be a relative path
bool is_subdir_of (const path &p, bool case_sensit) const
 test whether the current object is a subdir of the method's argument
std::string display () const
 the returned string is the representation of the current object in Unix notation
unsigned int degre () const
 returns the number of member in the path


Detailed Description

the class path is here to manipulate paths in the Unix notation: using'/'

several operations are provided as well as convertion functions

Definition at line 48 of file path.hpp.


Constructor & Destructor Documentation

libdar::path::path ( std::string  s  ) 

constructor from a string

This realizes the string to path convertion function

Note:
empty string is not a valid string (exception thrown)

Referenced by path().

libdar::path::path ( const char *  s  )  [inline]

constructor from a char *

this realizes the char * to path convertion function

Note:
empty string is not a valid string (exception thrown)

Definition at line 61 of file path.hpp.

References path().


Member Function Documentation

unsigned int libdar::path::degre (  )  const [inline]

returns the number of member in the path

Note:
a absolute path counts one more that its relative brother

Definition at line 138 of file path.hpp.

bool libdar::path::is_subdir_of ( const path p,
bool  case_sensit 
) const

test whether the current object is a subdir of the method's argument

Parameters:
[in] p the path to test with
[in] case_sensit whether the test must be in case sensitive manner or not

path libdar::path::operator+ ( const path arg  )  const [inline]

add a path to the current path. The added path *must* be a relative path

Parameters:
[in] arg the relative path to add
Returns:
the resulting path, (the current object is not modified, where from the "const" qualifier)
Note:
arg can be a string also, which is converted to a path on the fly

Definition at line 115 of file path.hpp.

path& libdar::path::operator+= ( const path arg  ) 

add a path to the current path. The added path *must* be a relative path

Parameters:
[in] arg the relative path to add
Returns:
the value of the current (modified) object: "*this".

bool libdar::path::pop ( std::string &  arg  ) 

remove and gives in argument the basename of the path

Parameters:
[out] arg the basename of the path
Returns:
false if the operation was not possible (no sub-directory to pop)
Note:
if the path is absolute the remaing value is '/' when no pop is anymore possible while it is the first component of the original path if the path was relative. a empty path is not a valide value

bool libdar::path::pop_front ( std::string &  arg  ) 

remove and gives in argument the outer most member of the path

Parameters:
[out] arg the value of the outer element of the path
Returns:
true if the pop_front operation was possible and arg could be set.
Note:
removes and returns the first directory of the path, when just the basename is present returns false, if the path is absolute, the first call change it to relative (except if equal to "/" then return false)

bool libdar::path::read_subdir ( std::string &  r  ) 

sequentially read the elements that compose the path

Parameters:
[out] r the next element of the path
Returns:
true if a next element could be read
Note:
the reading starts at the root and ends with the basename of the path


The documentation for this class was generated from the following file:
Generated on Fri Jul 21 19:31:21 2006 for Disk ARchive by  doxygen 1.4.7