sbuild::stat Class Reference

Get file status. More...

#include <sbuild-util.h>

Collaboration diagram for sbuild::stat:

Collaboration graph
[legend]

List of all members.

Public Types

enum  error_code { FILE, FD }
 Error codes. More...
enum  mode_bits {
  FILE_TYPE_MASK = S_IFMT, FILE_TYPE_SOCKET = S_IFSOCK, FILE_TYPE_LINK = S_IFLNK, FILE_TYPE_REGULAR = S_IFREG,
  FILE_TYPE_BLOCK = S_IFBLK, FILE_TYPE_DIRECTORY = S_IFDIR, FILE_TYPE_CHARACTER = S_IFCHR, FILE_TYPE_FIFO = S_IFIFO,
  PERM_SETUID = S_ISUID, PERM_SETGIT = S_ISGID, PERM_STICKY = S_ISVTX, PERM_USER_MASK = S_IRWXU,
  PERM_USER_READ = S_IRUSR, PERM_USER_WRITE = S_IWUSR, PERM_USER_EXECUTE = S_IXUSR, PERM_GROUP_MASK = S_IRWXG,
  PERM_GROUP_READ = S_IRGRP, PERM_GROUP_WRITE = S_IWGRP, PERM_GROUP_EXECUTE = S_IXGRP, PERM_OTHER_MASK = S_IRWXO,
  PERM_OTHER_READ = S_IROTH, PERM_OTHER_WRITE = S_IWOTH, PERM_OTHER_EXECUTE = S_IXOTH
}
 Mode bits. More...
typedef custom_error< error_codeerror
 Exception type.

Public Member Functions

 stat (std::string const &file)
 The constructor.
 stat (std::string const &file, int fd)
 The constructor.
 stat (int fd)
 The constructor.
virtual ~stat ()
 The destructor.
void check () const
 Check if the file status was obtained.
struct::stat const & get_detail ()
 Get the struct stat used internally.
dev_t device () const
 Get the device the file resides on.
ino_t inode () const
 Get the inode of the file.
mode_t mode () const
 Get the mode of the file.
nlink_t links () const
 Get the number of hard links to the file.
uid_t uid () const
 Get the user id owning the file.
gid_t gid () const
 Get the group id owning the file.
off_t size () const
 Get the file size.
blksize_t blocksize () const
 Get the file block size.
blkcnt_t blocks () const
 Get the file block count.
time_t atime () const
 Get the file access time.
time_t mtime () const
 Get the file modification time.
time_t ctime () const
 Get the file creation time.
bool is_regular () const
 Is the file a regular file?
bool is_directory () const
 Is the file a directory?
bool is_character () const
 Is the file a character device?
bool is_block () const
 Is the file a block device?
bool is_fifo () const
 Is the file a named pipe (FIFO)?
bool is_link () const
 Is the file a symbolic link?
bool is_socket () const
 Is the file a socket?
bool check_mode (mode_bits mask) const
 Check if particular mode bits are set.

Private Attributes

std::string file
 The filename being checked (if specified).
int fd
 The file descriptor being checked (if specified).
int errorno
 The error number set after stat(2) error.
struct::stat status
 The stat(2) results.


Detailed Description

Get file status.

stat(2) wrapper.


Member Typedef Documentation

typedef custom_error<error_code> sbuild::stat::error

Exception type.


Member Enumeration Documentation

enum sbuild::stat::error_code

Error codes.

Enumerator:
FILE  Failed to stat file.
FD  Failed to stat file descriptor.

enum sbuild::stat::mode_bits

Mode bits.

Enumerator:
FILE_TYPE_MASK  Mask for file type bit fields.
FILE_TYPE_SOCKET  Socket file type.
FILE_TYPE_LINK  Symbolic link file type.
FILE_TYPE_REGULAR  Regular file type.
FILE_TYPE_BLOCK  Block device file type.
FILE_TYPE_DIRECTORY  Directory file type.
FILE_TYPE_CHARACTER  Character device file type.
FILE_TYPE_FIFO  Named pipe (FIFO) file type.
PERM_SETUID  Set user ID permission.
PERM_SETGIT  Set group ID permission.
PERM_STICKY  Sticky permission.
PERM_USER_MASK  Mask for user permissions.
PERM_USER_READ  User read permission.
PERM_USER_WRITE  User write permission.
PERM_USER_EXECUTE  User execute permission.
PERM_GROUP_MASK  Mask for group permissions.
PERM_GROUP_READ  Group read permission.
PERM_GROUP_WRITE  Group write permission.
PERM_GROUP_EXECUTE  Group execute permission.
PERM_OTHER_MASK  Mask for other permissions.
PERM_OTHER_READ  Other read permission.
PERM_OTHER_WRITE  Other write permission.
PERM_OTHER_EXECUTE  Other execute permission.


Constructor & Destructor Documentation

sbuild::stat::stat ( std::string const &  file  ) 

The constructor.

Parameters:
file the filename to use.

sbuild::stat::stat ( std::string const &  file,
int  fd 
)

The constructor.

Parameters:
file the filename to use (only used for error reporting).
fd the file descriptor to use.

sbuild::stat::stat ( int  fd  ) 

The constructor.

Parameters:
fd the file descriptor to use.

sbuild::stat::~stat (  )  [virtual]

The destructor.


Member Function Documentation

void sbuild::stat::check (  )  const [inline]

Check if the file status was obtained.

An error will be thrown if stat(2) failed to get the file status.

struct ::stat const& sbuild::stat::get_detail (  )  [inline]

Get the struct stat used internally.

This is returned by stat(2).

Returns:
the stat struct.

dev_t sbuild::stat::device (  )  const [inline]

Get the device the file resides on.

Returns:
the device.

ino_t sbuild::stat::inode (  )  const [inline]

Get the inode of the file.

Returns:
the inode.

mode_t sbuild::stat::mode (  )  const [inline]

Get the mode of the file.

Returns:
the mode.

nlink_t sbuild::stat::links (  )  const [inline]

Get the number of hard links to the file.

Returns:
the hard link count.

uid_t sbuild::stat::uid (  )  const [inline]

Get the user id owning the file.

Returns:
the uid.

gid_t sbuild::stat::gid (  )  const [inline]

Get the group id owning the file.

Returns:
the uid.

off_t sbuild::stat::size (  )  const [inline]

Get the file size.

Returns:
the file size.

blksize_t sbuild::stat::blocksize (  )  const [inline]

Get the file block size.

Returns:
the block size.

blkcnt_t sbuild::stat::blocks (  )  const [inline]

Get the file block count.

Returns:
the block count.

time_t sbuild::stat::atime (  )  const [inline]

Get the file access time.

Returns:
the access time.

time_t sbuild::stat::mtime (  )  const [inline]

Get the file modification time.

Returns:
the modification time.

time_t sbuild::stat::ctime (  )  const [inline]

Get the file creation time.

Returns:
the creation time.

bool sbuild::stat::is_regular (  )  const [inline]

Is the file a regular file?

Returns:
true if regular, otherwise false.

bool sbuild::stat::is_directory (  )  const [inline]

Is the file a directory?

Returns:
true if a directory, otherwise false.

bool sbuild::stat::is_character (  )  const [inline]

Is the file a character device?

Returns:
true if a character device, otherwise false.

bool sbuild::stat::is_block (  )  const [inline]

Is the file a block device?

Returns:
true if a block device, otherwise false.

bool sbuild::stat::is_fifo (  )  const [inline]

Is the file a named pipe (FIFO)?

Returns:
true if a named pipe, otherwise false.

bool sbuild::stat::is_link (  )  const [inline]

Is the file a symbolic link?

Returns:
true if a symbolic link, otherwise false.

bool sbuild::stat::is_socket (  )  const [inline]

Is the file a socket?

Returns:
true if a socket, otherwise false.

bool sbuild::stat::check_mode ( mode_bits  mask  )  const [inline]

Check if particular mode bits are set.

Parameters:
mask A bitmask containing the bits to check are set.
Returns:
true if all the bits in mask are set, otherwise false.


Member Data Documentation

std::string sbuild::stat::file [private]

The filename being checked (if specified).

int sbuild::stat::fd [private]

The file descriptor being checked (if specified).

int sbuild::stat::errorno [private]

The error number set after stat(2) error.

struct ::stat sbuild::stat::status [private]

The stat(2) results.


The documentation for this class was generated from the following files:
Generated on Mon Jan 21 00:38:26 2008 for sbuild by  doxygen 1.5.4