Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

PathInfo Class Reference

Wrapper class for ::stat/::lstat and other file/directory related operations. More...

#include <PathInfo.h>

List of all members.

Public Types

typedef std::list< direntrydircontent
enum  Mode { STAT, LSTAT }
enum  file_type {
  NOT_AVAIL = 0x00, NOT_EXIST = 0x01, T_FILE = 0x02, T_DIR = 0x04,
  T_CHARDEV = 0x08, T_BLOCKDEV = 0x10, T_FIFO = 0x20, T_LINK = 0x40,
  T_SOCKET = 0x80
}
enum  ZIP_TYPE { ZT_NONE, ZT_GZ, ZT_BZ2 }

Public Member Functions

 PathInfo (const Pathname &path="", Mode initial=STAT)
 PathInfo (const std::string &path, Mode initial=STAT)
 PathInfo (const char *path, Mode initial=STAT)
virtual ~PathInfo ()
const Pathnamepath () const
const std::string & asString () const
Mode mode () const
int error () const
void setPath (const Pathname &path)
void setMode (Mode mode)
bool stat (const Pathname &path)
bool lstat (const Pathname &path)
bool operator() (const Pathname &path)
bool stat ()
bool lstat ()
bool operator() ()
bool isExist () const
file_type fileType () const
bool isFile () const
bool isDir () const
bool isLink () const
bool isChr () const
bool isBlk () const
bool isFifo () const
bool isSock () const
nlink_t nlink () const
uid_t owner () const
gid_t group () const
bool isRUsr () const
bool isWUsr () const
bool isXUsr () const
bool isR () const
bool isW () const
bool isX () const
bool isRGrp () const
bool isWGrp () const
bool isXGrp () const
bool isROth () const
bool isWOth () const
bool isXOth () const
bool isUid () const
bool isGid () const
bool isVtx () const
mode_t uperm () const
mode_t gperm () const
mode_t operm () const
mode_t perm () const
bool isPerm (mode_t m) const
bool hasPerm (mode_t m) const
mode_t st_mode () const
mode_t userMay () const
bool userMayR () const
bool userMayW () const
bool userMayX () const
bool userMayRW () const
bool userMayRX () const
bool userMayWX () const
bool userMayRWX () const
dev_t dev () const
dev_t rdev () const
ino_t ino () const
off_t size () const
unsigned long blksize () const
unsigned long blocks () const
time_t atime () const
time_t mtime () const
time_t ctime () const

Static Public Member Functions

int mkdir (const Pathname &path, unsigned mode=0755)
int assert_dir (const Pathname &path, unsigned mode=0755)
int rmdir (const Pathname &path)
int recursive_rmdir (const Pathname &path)
int clean_dir (const Pathname &path)
int copy_dir (const Pathname &srcpath, const Pathname &destpath)
int readdir (std::list< std::string > &retlist, const Pathname &path, bool dots=true)
int readdir (dircontent &retlist, const Pathname &path, bool dots=true, Mode statmode=STAT)
int unlink (const Pathname &path)
int rename (const Pathname &oldpath, const Pathname &newpath)
int copy (const Pathname &file, const Pathname &dest)
int symlink (const Pathname &oldpath, const Pathname &newpath)
int hardlink (const Pathname &oldpath, const Pathname &newpath)
int copy_file2dir (const Pathname &file, const Pathname &dest)
int chmod (const Pathname &path, mode_t mode)
ZIP_TYPE zipType (const Pathname &file)

Private Attributes

Pathname path_t
stat statbuf_C
Mode mode_e
int error_i

Friends

std::ostream & operator<< (std::ostream &str, const PathInfo &obj)
std::ostream & operator<< (std::ostream &str, file_type obj)


Detailed Description

Wrapper class for ::stat/::lstat and other file/directory related operations.


Member Typedef Documentation

typedef std::list<direntry> PathInfo::dircontent
 


Member Enumeration Documentation

enum PathInfo::file_type
 

Enumeration values:
NOT_AVAIL 
NOT_EXIST 
T_FILE 
T_DIR 
T_CHARDEV 
T_BLOCKDEV 
T_FIFO 
T_LINK 
T_SOCKET 

enum PathInfo::Mode
 

Enumeration values:
STAT 
LSTAT 

enum PathInfo::ZIP_TYPE
 

Test whether a file is compressed (gzip/bzip2).

Returns:
ZT_GZ, ZT_BZ2 if file is compressed, otherwise ZT_NONE.
Enumeration values:
ZT_NONE 
ZT_GZ 
ZT_BZ2 


Constructor & Destructor Documentation

PathInfo::PathInfo const Pathname path = "",
Mode  initial = STAT
 

PathInfo::PathInfo const std::string &  path,
Mode  initial = STAT
 

PathInfo::PathInfo const char *  path,
Mode  initial = STAT
 

PathInfo::~PathInfo  )  [virtual]
 


Member Function Documentation

int PathInfo::assert_dir const Pathname path,
unsigned  mode = 0755
[static]
 

Like 'mkdir -p'. No error if directory exists. Make parent directories as needed. mode specifies the permissions to use, if directories have to be created. It is modified by the process's umask in the usual way.

Returns:
0 on success, errno on failure

const std::string& PathInfo::asString  )  const [inline]
 

time_t PathInfo::atime  )  const [inline]
 

unsigned long PathInfo::blksize  )  const [inline]
 

unsigned long PathInfo::blocks  )  const [inline]
 

int PathInfo::chmod const Pathname path,
mode_t  mode
[static]
 

Like '::chmod'. The mode of the file given by path is changed.

Returns:
0 on success, errno on failure

int PathInfo::clean_dir const Pathname path  )  [static]
 

Like 'rm -r DIR/ *'. Delete directory contents, but keep the directory itself.

Returns:
0 on success, ENOTDIR if path is not a directory, otherwise the commands return value.

int PathInfo::copy const Pathname file,
const Pathname dest
[static]
 

Like 'cp file dest'. Copy file to destination file.

Returns:
0 on success, EINVAL if file is not a file, EISDIR if destiantion is a directory, otherwise the commands return value.

int PathInfo::copy_dir const Pathname srcpath,
const Pathname destpath
[static]
 

Like 'cp -a srcpath destpath'. Copy directory tree. srcpath/destpath must be directories. 'basename srcpath' must not exist in destpath.

Returns:
0 on success, ENOTDIR if srcpath/destpath is not a directory, EEXIST if 'basename srcpath' exists in destpath, otherwise the commands return value.

int PathInfo::copy_file2dir const Pathname file,
const Pathname dest
[static]
 

Like 'cp file dest'. Copy file to dest dir.

Returns:
0 on success, EINVAL if file is not a file, ENOTDIR if dest is no directory, otherwise the commands return value.

time_t PathInfo::ctime  )  const [inline]
 

dev_t PathInfo::dev  )  const [inline]
 

int PathInfo::error  )  const [inline]
 

PathInfo::file_type PathInfo::fileType  )  const
 

mode_t PathInfo::gperm  )  const [inline]
 

gid_t PathInfo::group  )  const [inline]
 

int PathInfo::hardlink const Pathname oldpath,
const Pathname newpath
[static]
 

Like '::link'. Creates a hard link named newpath to an existing file oldpath. If newpath exists it will not be overwritten.

Returns:
0 on success, errno on failure.

bool PathInfo::hasPerm mode_t  m  )  const [inline]
 

ino_t PathInfo::ino  )  const [inline]
 

bool PathInfo::isBlk  )  const [inline]
 

bool PathInfo::isChr  )  const [inline]
 

bool PathInfo::isDir  )  const [inline]
 

bool PathInfo::isExist  )  const [inline]
 

bool PathInfo::isFifo  )  const [inline]
 

bool PathInfo::isFile  )  const [inline]
 

bool PathInfo::isGid  )  const [inline]
 

bool PathInfo::isLink  )  const [inline]
 

bool PathInfo::isPerm mode_t  m  )  const [inline]
 

bool PathInfo::isR  )  const [inline]
 

bool PathInfo::isRGrp  )  const [inline]
 

bool PathInfo::isROth  )  const [inline]
 

bool PathInfo::isRUsr  )  const [inline]
 

bool PathInfo::isSock  )  const [inline]
 

bool PathInfo::isUid  )  const [inline]
 

bool PathInfo::isVtx  )  const [inline]
 

bool PathInfo::isW  )  const [inline]
 

bool PathInfo::isWGrp  )  const [inline]
 

bool PathInfo::isWOth  )  const [inline]
 

bool PathInfo::isWUsr  )  const [inline]
 

bool PathInfo::isX  )  const [inline]
 

bool PathInfo::isXGrp  )  const [inline]
 

bool PathInfo::isXOth  )  const [inline]
 

bool PathInfo::isXUsr  )  const [inline]
 

bool PathInfo::lstat  )  [inline]
 

bool PathInfo::lstat const Pathname path  )  [inline]
 

int PathInfo::mkdir const Pathname path,
unsigned  mode = 0755
[static]
 

Like '::mkdir'. Attempt to create a new directory named path. mode specifies the permissions to use. It is modified by the process's umask in the usual way.

Returns:
0 on success, errno on failure

Mode PathInfo::mode  )  const [inline]
 

time_t PathInfo::mtime  )  const [inline]
 

nlink_t PathInfo::nlink  )  const [inline]
 

bool PathInfo::operator()  ) 
 

bool PathInfo::operator() const Pathname path  )  [inline]
 

mode_t PathInfo::operm  )  const [inline]
 

uid_t PathInfo::owner  )  const [inline]
 

const Pathname& PathInfo::path  )  const [inline]
 

mode_t PathInfo::perm  )  const [inline]
 

dev_t PathInfo::rdev  )  const [inline]
 

int PathInfo::readdir dircontent retlist,
const Pathname path,
bool  dots = true,
Mode  statmode = STAT
[static]
 

Return content of directory via retlist. If dots is false entries starting with '.' are not reported. "." and ".." are never reported.

The type of individual directory entries is determined accoding to statmode (i.e. via stat or lstat).

Returns:
0 on success, errno on failure.

int PathInfo::readdir std::list< std::string > &  retlist,
const Pathname path,
bool  dots = true
[static]
 

Return content of directory via retlist. If dots is false entries starting with '.' are not reported. "." and ".." are never reported.

Returns:
0 on success, errno on failure.

int PathInfo::recursive_rmdir const Pathname path  )  [static]
 

Like 'rm -r DIR'. Delete a directory, recursively removing its contents.

Returns:
0 on success, ENOTDIR if path is not a directory, otherwise the commands return value.

int PathInfo::rename const Pathname oldpath,
const Pathname newpath
[static]
 

Like '::rename'. Renames a file, moving it between directories if required.

Returns:
0 on success, errno on failure

int PathInfo::rmdir const Pathname path  )  [static]
 

Like '::rmdir'. Delete a directory, which must be empty.

Returns:
0 on success, errno on failure

void PathInfo::setMode Mode  mode  )  [inline]
 

void PathInfo::setPath const Pathname path  )  [inline]
 

off_t PathInfo::size  )  const [inline]
 

mode_t PathInfo::st_mode  )  const [inline]
 

bool PathInfo::stat  )  [inline]
 

bool PathInfo::stat const Pathname path  )  [inline]
 

int PathInfo::symlink const Pathname oldpath,
const Pathname newpath
[static]
 

Like '::symlink'. Creates a symbolic link named newpath which contains the string oldpath. If newpath exists it will not be overwritten.

Returns:
0 on success, errno on failure.

int PathInfo::unlink const Pathname path  )  [static]
 

Like '::unlink'. Delete a file (symbolic link, socket, fifo or device).

Returns:
0 on success, errno on failure

mode_t PathInfo::uperm  )  const [inline]
 

mode_t PathInfo::userMay  )  const
 

bool PathInfo::userMayR  )  const [inline]
 

bool PathInfo::userMayRW  )  const [inline]
 

bool PathInfo::userMayRWX  )  const [inline]
 

bool PathInfo::userMayRX  )  const [inline]
 

bool PathInfo::userMayW  )  const [inline]
 

bool PathInfo::userMayWX  )  const [inline]
 

bool PathInfo::userMayX  )  const [inline]
 

PathInfo::ZIP_TYPE PathInfo::zipType const Pathname file  )  [static]
 


Friends And Related Function Documentation

std::ostream& operator<< std::ostream &  str,
PathInfo::file_type  obj
[friend]
 

std::ostream& operator<< std::ostream &  str,
const PathInfo obj
[friend]
 


Member Data Documentation

int PathInfo::error_i [private]
 

Mode PathInfo::mode_e [private]
 

Pathname PathInfo::path_t [private]
 

struct stat PathInfo::statbuf_C [private]
 


The documentation for this class was generated from the following files:
Generated on Thu Feb 23 23:56:11 2006 for liby2util by doxygen 1.3.6