File Class Reference

A stream file class. More...

#include <yateclass.h>

Inheritance diagram for File:
Stream

List of all members.

Public Member Functions

 File ()
 File (HANDLE handle)
virtual ~File ()
virtual bool openPath (const char *name, bool canWrite=false, bool canRead=true, bool create=false, bool append=false, bool binary=false, bool pubReadable=false, bool pubWritable=false)
virtual bool terminate ()
void attach (HANDLE handle)
HANDLE detach ()
HANDLE handle () const
virtual bool canRetry () const
virtual bool valid () const
virtual bool setBlocking (bool block=true)
virtual int64_t length ()
virtual int64_t seek (SeekPos pos, int64_t offset=0)
virtual int writeData (const void *buffer, int length)
virtual int readData (void *buffer, int length)
bool getFileTime (unsigned int &secEpoch)
virtual bool md5 (String &buffer)

Static Public Member Functions

static HANDLE invalidHandle ()
static bool setFileTime (const char *name, unsigned int secEpoch, int *error=0)
static bool getFileTime (const char *name, unsigned int &secEpoch, int *error=0)
static bool exists (const char *name, int *error=0)
static bool rename (const char *oldFile, const char *newFile, int *error=0)
static bool remove (const char *name, int *error=0)
static bool md5 (const char *name, String &buffer, int *error=0)
static bool mkDir (const char *path, int *error=0)
static bool rmDir (const char *path, int *error=0)
static bool listDirectory (const char *path, ObjList *dirs, ObjList *files, int *error=0)
static bool createPipe (File &reader, File &writer)

Protected Member Functions

void copyError ()

Protected Attributes

HANDLE m_handle

Detailed Description

A stream file class.

Class to encapsulate a system dependent file in a system independent abstraction


Constructor & Destructor Documentation

File (  ) 

Default constructor, creates a closed file

File ( HANDLE  handle  ) 

Constructor from an existing handle

Parameters:
handle Operating system handle to an open file
virtual ~File (  )  [virtual]

Destructor, closes the file


Member Function Documentation

void attach ( HANDLE  handle  ) 

Attach an existing handle to the file, closes any existing first

Parameters:
handle Operating system handle to an open file
virtual bool canRetry (  )  const [virtual]

Check if the last error code indicates a retryable condition

Returns:
True if error was temporary and operation should be retried

Reimplemented from Stream.

void copyError (  )  [protected]

Copy the last error code from the operating system

static bool createPipe ( File reader,
File writer 
) [static]

Create a pair of unidirectionally pipe connected streams

Parameters:
reader Reference to a File that becomes the reading side of the pipe
writer Reference to a File that becomes the writing side of the pipe
Returns:
True is the pipe was created successfully
HANDLE detach (  ) 

Detaches the object from the file handle

Returns:
The handle previously owned by this object
static bool exists ( const char *  name,
int *  error = 0 
) [static]

Check if a file exists

Parameters:
name The file to check
error Optional pointer to error code to be filled on failure
Returns:
True if the file exists
static bool getFileTime ( const char *  name,
unsigned int &  secEpoch,
int *  error = 0 
) [static]

Retrieve a file's modification time

Parameters:
name Path and name of the file
secEpoch File modification time (seconds since Epoch)
error Optional pointer to error code to be filled on failure
Returns:
True on success
bool getFileTime ( unsigned int &  secEpoch  ) 

Retrive the file's modification time (the file must be already opened)

Parameters:
secEpoch File creation time (seconds since Epoch)
Returns:
True on success
HANDLE handle (  )  const [inline]

Get the operating system handle to the file

Returns:
File handle
static HANDLE invalidHandle (  )  [static]

Get the operating system specific handle value for an invalid file

Returns:
Handle value for an invalid file
virtual int64_t length (  )  [virtual]

Find the length of the file if it has one

Returns:
Length of the file or zero if length is not defined

Reimplemented from Stream.

static bool listDirectory ( const char *  path,
ObjList dirs,
ObjList files,
int *  error = 0 
) [static]

Enumerate a folder (directory) content. Fill the given lists with children item names

Parameters:
path The folder path
dirs List to be filled with child directories. It can be NULL if not requested
files List to be filled with child files. It can be NULL if not requested
error Optional pointer to error code to be filled on failure
Returns:
True on success
static bool md5 ( const char *  name,
String buffer,
int *  error = 0 
) [static]

Build the MD5 hex digest of a file.

Parameters:
name The file to build MD5 from
buffer Destination buffer
error Optional pointer to error code to be filled on failure
Returns:
True on success
virtual bool md5 ( String buffer  )  [virtual]

Build the MD5 hex digest of a file. The file must be opened for read access. This method will move the file pointer

Parameters:
buffer Destination buffer
Returns:
True on success
static bool mkDir ( const char *  path,
int *  error = 0 
) [static]

Create a folder (directory). It only creates the last directory in the path

Parameters:
path The folder path
error Optional pointer to error code to be filled on failure
Returns:
True on success
virtual bool openPath ( const char *  name,
bool  canWrite = false,
bool  canRead = true,
bool  create = false,
bool  append = false,
bool  binary = false,
bool  pubReadable = false,
bool  pubWritable = false 
) [virtual]

Opens a file from the filesystem pathname

Parameters:
name Name of the file according to the operating system's conventions
canWrite Open the file for writing
canRead Open the file for reading
create Create the file if it doesn't exist
append Set the write pointer at the end of an existing file
binary Open the file in binary mode if applicable
pubReadable If the file is created make it public readable
pubWritable If the file is created make it public writable
Returns:
True if the file was successfully opened
virtual int readData ( void *  buffer,
int  length 
) [virtual]

Read data from an open file

Parameters:
buffer Buffer for data transfer
length Length of the buffer
Returns:
Number of bytes transferred, negative if an error occurred

Implements Stream.

static bool remove ( const char *  name,
int *  error = 0 
) [static]

Deletes a file entry from the filesystem

Parameters:
name Absolute path and name of the file to delete
error Optional pointer to error code to be filled on failure
Returns:
True if the file was successfully deleted
static bool rename ( const char *  oldFile,
const char *  newFile,
int *  error = 0 
) [static]

Rename (move) a file (or directory) entry from the filesystem

Parameters:
oldFile Path and name of the file to rename
newFile The new path and name of the file
error Optional pointer to error code to be filled on failure
Returns:
True if the file was successfully renamed (moved)
static bool rmDir ( const char *  path,
int *  error = 0 
) [static]

Remove an empty folder (directory)

Parameters:
path The folder path
error Optional pointer to error code to be filled on failure
Returns:
True on success
virtual int64_t seek ( SeekPos  pos,
int64_t  offset = 0 
) [virtual]

Set the file read/write pointer

Parameters:
pos The seek start as enumeration
offset The number of bytes to move the pointer from starting position
Returns:
The new position of the file read/write pointer. Negative on failure

Reimplemented from Stream.

virtual bool setBlocking ( bool  block = true  )  [virtual]

Set the blocking or non-blocking operation mode of the file

Parameters:
block True if I/O operations should block, false for non-blocking
Returns:
True if operation was successfull, false if an error occured

Reimplemented from Stream.

static bool setFileTime ( const char *  name,
unsigned int  secEpoch,
int *  error = 0 
) [static]

Set a file's modification time.

Parameters:
name Path and name of the file
secEpoch File modification time (seconds since Epoch)
error Optional pointer to error code to be filled on failure
Returns:
True on success
virtual bool terminate (  )  [virtual]

Closes the file handle

Returns:
True if the file was (already) closed, false if an error occured

Implements Stream.

virtual bool valid (  )  const [virtual]

Check if this file is valid

Returns:
True if the file is valid, false if it's invalid or closed

Implements Stream.

virtual int writeData ( const void *  buffer,
int  length 
) [virtual]

Write data to an open file

Parameters:
buffer Buffer for data transfer
length Length of the buffer
Returns:
Number of bytes transferred, negative if an error occurred

Implements Stream.


The documentation for this class was generated from the following file:
Generated on Thu Apr 8 18:19:42 2010 for Yate by  doxygen 1.6.3