The purpose of this class is to define a base class for low level random file access that is portable between Win32 and Posix systems.
More...
|
| | RandomFile (const char *name=NULL) |
| | Create an unopened random access file.
|
| |
| | RandomFile (const RandomFile &rf) |
| | Default copy constructor.
|
| |
| Error | error (Error errid, char *errstr=NULL) |
| | Post an error event.
|
| |
| Error | error (char *err) |
| | Post an extended string error message.
|
| |
| void | setError (bool enable) |
| | Used to enable or disable throwing of exceptions on errors.
|
| |
| Error | setCompletion (Complete mode) |
| | Used to set file completion modes.
|
| |
| void | setTemporary (bool enable) |
| | Used to set the temporary attribute for the file.
|
| |
| virtual Attr | initialize (void) |
| | This method is used to initialize a newly created file as indicated by the "initial" flag.
|
| |
| void | final (void) |
| | Close the file.
|
| |
| | Mutex (const char *name=NULL) |
| | The mutex is always initialized as a recursive entity.
|
| |
| virtual | ~Mutex () |
| | Destroying the mutex removes any system resources associated with it.
|
| |
| void | nameMutex (const char *name) |
| | Enable setting of mutex name for deadlock debug.
|
| |
| void | enterMutex (void) |
| | Entering a Mutex locks the mutex for the current thread.
|
| |
| void | enter (void) |
| | Future abi will use enter/leave/test members.
|
| |
| void | leave (void) |
| | Future abi will use enter/leave/test members.
|
| |
| bool | test (void) |
| | Future abi will use enter/leave/test members.
|
| |
| bool | tryEnterMutex (void) |
| | Tries to lock the mutex for the current thread.
|
| |
| void | leaveMutex (void) |
| | Leaving a mutex frees that mutex for use by another thread.
|
| |
|
| enum | Error {
errSuccess = 0
, errNotOpened
, errMapFailed
, errInitFailed
,
errOpenDenied
, errOpenFailed
, errOpenInUse
, errReadInterrupted
,
errReadIncomplete
, errReadFailure
, errWriteInterrupted
, errWriteIncomplete
,
errWriteFailure
, errLockFailure
, errExtended
} |
| |
| enum | Access { accessReadOnly = O_RDONLY
, accessWriteOnly = O_WRONLY
, accessReadWrite = O_RDWR
} |
| |
| enum | Open {
openReadOnly = O_RDONLY
, openWriteOnly = O_WRONLY
, openReadWrite = O_RDWR
, openAppend = O_WRONLY | O_APPEND
,
openSync = O_RDWR
, openTruncate = O_RDWR | O_TRUNC
} |
| |
| enum | Attr { attrInvalid = 0
, attrPrivate = 0400 | 0200
, attrGroup = attrPrivate | 0040 | 0020
, attrPublic = attrGroup | 0004 | 0002
} |
| |
| enum | Mapping { mappedRead = accessReadOnly
, mappedWrite = accessWriteOnly
, mappedReadWrite = accessReadWrite
} |
| |
| enum | Complete { completionImmediate
, completionDelayed
, completionDeferred
} |
| |
| typedef enum Error | Error |
| |
| typedef enum Access | Access |
| |
| typedef enum Open | Open |
| |
| typedef enum Attr | Attr |
| |
| typedef enum Complete | Complete |
| |
| typedef enum Mapping | Mapping |
| |
| static const char * | getExtension (const char *path) |
| |
| static const char * | getFilename (const char *path) |
| |
| static char * | getFilename (const char *path, char *buffer, size_t size=64) |
| |
| static char * | getDirname (const char *path, char *buffer, size_t size=256) |
| |
| static char * | getRealpath (const char *path, char *buffer, size_t size=256) |
| |
| typedef struct ost::File::_fcb | fcb_t |
| |
| enum | Error {
errSuccess = 0
, errNotOpened
, errMapFailed
, errInitFailed
,
errOpenDenied
, errOpenFailed
, errOpenInUse
, errReadInterrupted
,
errReadIncomplete
, errReadFailure
, errWriteInterrupted
, errWriteIncomplete
,
errWriteFailure
, errLockFailure
, errExtended
} |
| |
| enum | Access { accessReadOnly = O_RDONLY
, accessWriteOnly = O_WRONLY
, accessReadWrite = O_RDWR
} |
| |
| enum | Open {
openReadOnly = O_RDONLY
, openWriteOnly = O_WRONLY
, openReadWrite = O_RDWR
, openAppend = O_WRONLY | O_APPEND
,
openSync = O_RDWR
, openTruncate = O_RDWR | O_TRUNC
} |
| |
| enum | Attr { attrInvalid = 0
, attrPrivate = 0400 | 0200
, attrGroup = attrPrivate | 0040 | 0020
, attrPublic = attrGroup | 0004 | 0002
} |
| |
| enum | Mapping { mappedRead = accessReadOnly
, mappedWrite = accessWriteOnly
, mappedReadWrite = accessReadWrite
} |
| |
| enum | Complete { completionImmediate
, completionDelayed
, completionDeferred
} |
| |
| typedef enum Error | Error |
| |
| typedef enum Access | Access |
| |
| typedef enum Open | Open |
| |
| typedef enum Attr | Attr |
| |
| typedef enum Complete | Complete |
| |
| typedef enum Mapping | Mapping |
| |
| static void | setDebug (bool mode) |
| | Enable or disable deadlock debugging.
|
| |
| static const char * | getExtension (const char *path) |
| |
| static const char * | getFilename (const char *path) |
| |
| static char * | getFilename (const char *path, char *buffer, size_t size=64) |
| |
| static char * | getDirname (const char *path, char *buffer, size_t size=256) |
| |
| static char * | getRealpath (const char *path, char *buffer, size_t size=256) |
| |
The purpose of this class is to define a base class for low level random file access that is portable between Win32 and Posix systems.
This class is a foundation both for optimized thread shared and traditional locked file access that is commonly used to build database services, rather than the standard C++ streaming file classes.
- Author
- David Sugar dyfet.nosp@m.@ost.nosp@m.el.co.nosp@m.m
Portable random disk file access.