A stream file class.  
 More...
#include <yateclass.h>
|  | 
|  | 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) | 
|  | 
| virtual | ~Stream () | 
|  | 
| int | error () const | 
|  | 
| virtual bool | inProgress () const | 
|  | 
| int | writeData (const char *str) | 
|  | 
| int | writeData (const String &str) | 
|  | 
| int | writeData (const DataBlock &buf) | 
|  | 
| int64_t | seek (int64_t offset) | 
|  | 
|  | 
| 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, int mode=-1) | 
|  | 
| 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) | 
|  | 
| static bool | allocPipe (Stream *&reader, Stream *&writer) | 
|  | 
| static bool | allocPair (Stream *&str1, Stream *&str2) | 
|  | 
| static bool | supportsPipes () | 
|  | 
| static bool | supportsPairs () | 
|  | 
|  | 
| HANDLE | m_handle | 
|  | 
| int | m_error | 
|  | 
|  | 
| enum | SeekPos { SeekBegin, 
SeekEnd, 
SeekCurrent
 } | 
|  | 
A stream file class. 
Class to encapsulate a system dependent file in a system independent abstraction 
Default constructor, creates a closed file 
 
 
Constructor from an existing handle 
- Parameters
- 
  
    | handle | Operating system handle to an open file |  
 
 
 
Destructor, closes the file 
 
 
      
        
          | 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.
 
 
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 
 
 
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 
 
 
      
        
          | bool getFileTime | ( | unsigned int & | secEpoch | ) |  | 
      
 
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 
 
 
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 
 
 
  
  | 
        
          | 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, |  
          |  |  | int | mode = -1 |  
          |  | ) |  |  |  | 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 |  | mode | Optional file mode, ignored on some platforms |  
 
- 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: