A stream file class.
More...
#include <yateclass.h>
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
Default constructor, creates a closed file
| File |
( |
HANDLE |
handle | ) |
[explicit] |
Constructor from an existing handle
- Parameters:
-
| handle | Operating system handle to an open file |
| virtual ~File |
( |
| ) |
[virtual] |
Destructor, closes the file
Member Function Documentation
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.
Copy the last error code from the operating system
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
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
Retrieve the file's modification time (the file must be already opened)
- Parameters:
-
| secEpoch | File creation time (seconds since Epoch) |
- Returns:
- True on success
| 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
| HANDLE handle |
( |
| ) |
const [inline] |
Get the operating system handle to the file
- Returns:
- File handle
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.
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
| 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:
-
- 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
| 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
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: