ucc::fsys Class Reference

A container for generic and o/s portable threadsafe file system functions. More...

#include <fsys.h>


Public Types

enum  access_t {
  ACCESS_RDONLY, ACCESS_WRONLY, ACCESS_REWRITE, ACCESS_RDWR = ACCESS_REWRITE,
  ACCESS_APPEND, ACCESS_SHARED, ACCESS_DIRECTORY, ACCESS_STREAM,
  ACCESS_RANDOM
}
 Enumerated file access modes.
typedef long offset_t
 File offset type.

Public Member Functions

 fsys ()
 Construct an unattached fsys descriptor.
 fsys (const fsys &descriptor)
 Copy (dup) an existing fsys descriptor.
 fsys (const char *path, access_t access)
 Create a fsys descriptor by opening an existing file or directory.
 fsys (const char *path, access_t access, unsigned permission)
 Create a fsys descriptor by creating a file.
 ~fsys ()
 Close and release a file descriptor.
fd_t operator* () const
 Get the descriptor from the object by pointer reference.
 operator fd_t () const
 Get the descriptor from the object by casting reference.
 operator bool ()
 Test if file descriptor is open.
bool operator! ()
 Test if file descriptor is closed.
void operator= (const fsys &descriptor)
 Assign file descriptor by duplicating another descriptor.
void operator= (fd_t descriptor)
 Assing file descriptor from system descriptor.
int getError (void)
 Get the error number (errno) associated with the descriptor from the last error recorded.
fd_t getHandle (void)
 Get the native system descriptor handle of the file descriptor.
void seek (offset_t offset)
 Set the position of a file descriptor.
void drop (offset_t size=0)
 Drop cached data from start of file.
ssize_t read (void *buffer, size_t count)
 Read data from descriptor or scan directory.
ssize_t write (const void *buffer, size_t count)
 Write data to descriptor.
int stat (struct stat *buffer)
 Get status of open descriptor.
int sync (void)
 Commit changes to the filesystem.
void open (const char *path, access_t access)
 Open a file or directory.
void assign (fd_t descriptor)
 Assign descriptor directly.
void create (const char *path, access_t access, unsigned mode)
 Open a file descriptor directly.
void close (void)
 Close a fsys resource.

Static Public Member Functions

static int changeDir (const char *path)
 Set directory prefix (chdir).
static char * getPrefix (char *path, size_t size)
 Get current directory prefix (pwd).
static int stat (const char *path, struct stat *buffer)
 Stat a file.
static int remove (const char *path)
 Remove a file.
static int rename (const char *oldpath, const char *newpath)
 Rename a file.
static int change (const char *path, unsigned mode)
 Change file access mode.
static int access (const char *path, unsigned mode)
 Test path access.
static bool isfile (const char *path)
 Test if path is a file.
static bool isdir (const char *path)
 Test if path is a directory.
static ssize_t read (fsys &descriptor, void *buffer, size_t count)
 Read data from file descriptor or directory.
static ssize_t write (fsys &descriptor, const void *buffer, size_t count)
 write data to file descriptor.
static void seek (fsys &descriptor, offset_t offset)
 Set the position of a file descriptor.
static void drop (fsys &descriptor, offset_t size)
 Drop cached data from a file descriptor.
static void assign (fsys &object, fd_t descriptor)
 Assign a descriptor directly.
static int createDir (const char *path, unsigned mode)
 Simple direct method to create a directory.
static int removeDir (const char *path)
 Simple direct method to remove a directory.
static void close (fsys &descriptor)
 Close a file descriptor or directory directly.
static void open (fsys &object, const char *path, access_t access)
 Open a file or directory.
static void create (fsys &object, const char *path, access_t access, unsigned mode)
 create a file descriptor or directory directly.
static int load (const char *path)
 Load an unmaged plugin directly.
static void load (fsys &module, const char *path)
 Load a plugin into memory.
static void unload (fsys &module)
 unload a specific plugin.
static void * find (fsys &module, const char *symbol)
 Find symbol in loaded module.

Static Public Attributes

static const offset_t end
 Used to mark "append" in set position operations.

Static Protected Member Functions

static int remapError (void)

Protected Attributes

fd_t fd
void * ptr
int error


Detailed Description

A container for generic and o/s portable threadsafe file system functions.

These are based roughly on their posix equivilents. For libpth, the system calls are wrapped. The native file descriptor or handle may be used, but it is best to use "class fsys" instead because it can capture the errno of a file operation in a threadsafe and platform independent manner, including for mswindows targets.

Definition at line 60 of file fsys.h.


Constructor & Destructor Documentation

ucc::fsys::fsys ( const fsys descriptor  ) 

Copy (dup) an existing fsys descriptor.

Parameters:
descriptor to copy from.

ucc::fsys::fsys ( const char *  path,
access_t  access 
)

Create a fsys descriptor by opening an existing file or directory.

Parameters:
path of file to open for created descriptor.
access mode of file.

ucc::fsys::fsys ( const char *  path,
access_t  access,
unsigned  permission 
)

Create a fsys descriptor by creating a file.

Parameters:
path of file to create for descriptor.
access mode of file access.
permission mode of file.


Member Function Documentation

static int ucc::fsys::access ( const char *  path,
unsigned  mode 
) [static]

Test path access.

Parameters:
path to test.
mode to test for.
Returns:
0 if accessible, -1 if not.

static void ucc::fsys::assign ( fsys object,
fd_t  descriptor 
) [inline, static]

Assign a descriptor directly.

Parameters:
object to assign descriptor to.
descriptor to assign.

Definition at line 356 of file fsys.h.

void ucc::fsys::assign ( fd_t  descriptor  )  [inline]

Assign descriptor directly.

Parameters:
descriptor to assign.

Definition at line 348 of file fsys.h.

static int ucc::fsys::change ( const char *  path,
unsigned  mode 
) [static]

Change file access mode.

Parameters:
path to change.
mode to assign.
Returns:
0 on success, errno on error.

static int ucc::fsys::changeDir ( const char *  path  )  [static]

Set directory prefix (chdir).

Parameters:
path to change to.
Returns:
0 on success, -1 on error.

static void ucc::fsys::close ( fsys descriptor  )  [inline, static]

Close a file descriptor or directory directly.

Parameters:
descriptor to close.

Definition at line 386 of file fsys.h.

Here is the call graph for this function:

static void ucc::fsys::create ( fsys object,
const char *  path,
access_t  access,
unsigned  mode 
) [inline, static]

create a file descriptor or directory directly.

Parameters:
object to assign descriptor for created file.
path of file to create.
access mode of descriptor.
mode of file if created.

Definition at line 410 of file fsys.h.

void ucc::fsys::create ( const char *  path,
access_t  access,
unsigned  mode 
)

Open a file descriptor directly.

Parameters:
path of file to create.
access mode of descriptor.
mode of file if created.

static int ucc::fsys::createDir ( const char *  path,
unsigned  mode 
) [static]

Simple direct method to create a directory.

Parameters:
path of directory to create.
mode of directory.
Returns:
0 if success, else errno.

static void ucc::fsys::drop ( fsys descriptor,
offset_t  size 
) [inline, static]

Drop cached data from a file descriptor.

Parameters:
descriptor to set.
size of region from start of file to drop or all.

Definition at line 334 of file fsys.h.

Here is the call graph for this function:

void ucc::fsys::drop ( offset_t  size = 0  ) 

Drop cached data from start of file.

Parameters:
size of region to drop or until end of file.

static void* ucc::fsys::find ( fsys module,
const char *  symbol 
) [static]

Find symbol in loaded module.

Parameters:
module to search.
symbol to search for.
Returns:
address of symbol or NULL if not found.

int ucc::fsys::getError ( void   )  [inline]

Get the error number (errno) associated with the descriptor from the last error recorded.

Returns:
error number.

Definition at line 181 of file fsys.h.

fd_t ucc::fsys::getHandle ( void   )  [inline]

Get the native system descriptor handle of the file descriptor.

Returns:
native os descriptor.

Definition at line 188 of file fsys.h.

static char* ucc::fsys::getPrefix ( char *  path,
size_t  size 
) [static]

Get current directory prefix (pwd).

Parameters:
path to save directory into.
size of path we can save.
Returns:
path of current directory or NULL.

static bool ucc::fsys::isdir ( const char *  path  )  [static]

Test if path is a directory.

Parameters:
path to test.
Returns:
true if exists and is directory.

static bool ucc::fsys::isfile ( const char *  path  )  [static]

Test if path is a file.

Parameters:
path to test.
Returns:
true if exists and is file.

static void ucc::fsys::load ( fsys module,
const char *  path 
) [static]

Load a plugin into memory.

Parameters:
module for management.
path to plugin.

static int ucc::fsys::load ( const char *  path  )  [static]

Load an unmaged plugin directly.

Parameters:
path to plugin.
Returns:
0 if success, else errno associated with failure.

static void ucc::fsys::open ( fsys object,
const char *  path,
access_t  access 
) [inline, static]

Open a file or directory.

Parameters:
object to assign descriptor for opened file.
path of file to open.
access mode of descriptor.

Definition at line 400 of file fsys.h.

void ucc::fsys::open ( const char *  path,
access_t  access 
)

Open a file or directory.

Parameters:
path of file to open.
access mode of descriptor.

ucc::fsys::operator bool (  )  [inline]

Test if file descriptor is open.

Returns:
true if open.

Definition at line 154 of file fsys.h.

ucc::fsys::operator fd_t (  )  const [inline]

Get the descriptor from the object by casting reference.

Returns:
low level file handle.

Definition at line 147 of file fsys.h.

bool ucc::fsys::operator! (  )  [inline]

Test if file descriptor is closed.

Returns:
true if closed.

Definition at line 161 of file fsys.h.

fd_t ucc::fsys::operator* (  )  const [inline]

Get the descriptor from the object by pointer reference.

Returns:
low level file handle.

Definition at line 140 of file fsys.h.

void ucc::fsys::operator= ( fd_t  descriptor  ) 

Assing file descriptor from system descriptor.

Parameters:
descriptor to dup from.

void ucc::fsys::operator= ( const fsys descriptor  ) 

Assign file descriptor by duplicating another descriptor.

Parameters:
descriptor to dup from.

static ssize_t ucc::fsys::read ( fsys descriptor,
void *  buffer,
size_t  count 
) [inline, static]

Read data from file descriptor or directory.

Parameters:
descriptor to read from.
buffer to read into.
count of bytes to read.
Returns:
bytes transferred, -1 if error.

Definition at line 308 of file fsys.h.

Here is the call graph for this function:

ssize_t ucc::fsys::read ( void *  buffer,
size_t  count 
)

Read data from descriptor or scan directory.

Parameters:
buffer to read into.
count of bytes to read.
Returns:
bytes transferred, -1 if error.

static int ucc::fsys::remove ( const char *  path  )  [static]

Remove a file.

Parameters:
path of file.
Returns:
0 on success, errno on error.

static int ucc::fsys::removeDir ( const char *  path  )  [static]

Simple direct method to remove a directory.

Parameters:
path to remove.
Returns:
0 if success, else errno.

static int ucc::fsys::rename ( const char *  oldpath,
const char *  newpath 
) [static]

Rename a file.

Parameters:
oldpath to rename from.
newpath to rename to.
Returns:
0 on success, errno on error.

static void ucc::fsys::seek ( fsys descriptor,
offset_t  offset 
) [inline, static]

Set the position of a file descriptor.

Parameters:
descriptor to set.
offset from start of file or "end" to append.

Definition at line 326 of file fsys.h.

Here is the call graph for this function:

void ucc::fsys::seek ( offset_t  offset  ) 

Set the position of a file descriptor.

Parameters:
offset from start of file or "end" to append.

static int ucc::fsys::stat ( const char *  path,
struct stat *  buffer 
) [static]

Stat a file.

Parameters:
path of file to stat.
buffer to save stat info.
Returns:
0 on success, errno on error.

int ucc::fsys::stat ( struct stat *  buffer  ) 

Get status of open descriptor.

Parameters:
buffer to save status info in.
Returns:
0 on success, -1 on error.

int ucc::fsys::sync ( void   ) 

Commit changes to the filesystem.

Returns:
0 on success, -1 on error.

static void ucc::fsys::unload ( fsys module  )  [static]

unload a specific plugin.

Parameters:
module to unload

static ssize_t ucc::fsys::write ( fsys descriptor,
const void *  buffer,
size_t  count 
) [inline, static]

write data to file descriptor.

Parameters:
descriptor to write to.
buffer to write from.
count of bytes to write.
Returns:
bytes transferred, -1 if error.

Definition at line 318 of file fsys.h.

Here is the call graph for this function:

ssize_t ucc::fsys::write ( const void *  buffer,
size_t  count 
)

Write data to descriptor.

Parameters:
buffer to write from.
count of bytes to write.
Returns:
bytes transferred, -1 if error.


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

Generated on Wed May 13 08:43:02 2009 for UCommon by  doxygen 1.5.7.1