UCommon
|
This class defines a database I/O file service that can be shared by multiple processes. More...
#include <file.h>
Public Member Functions | |
Error | append (char *address=NULL, ccxx_size_t length=0) |
Add new data to the end of the file. | |
Error | clear (ccxx_size_t length=0, off_t pos=-1) |
Clear a lock held from a previous fetch operation without updating. | |
Error | fetch (char *address=NULL, ccxx_size_t length=0, off_t position=-1) |
Lock and Fetch a portion of the file into physical memory. | |
off_t | getPosition (void) |
Fetch the current file position marker for this thread. | |
bool | operator++ (void) |
bool | operator-- (void) |
Error | restart (void) |
Restart an existing database; close and re-open. | |
SharedFile (const char *path) | |
Open or create a new database file. | |
SharedFile (const SharedFile &file) | |
Create a shared file as a duplicate of an existing shared file. | |
Error | update (char *address=NULL, ccxx_size_t length=0, off_t position=-1) |
Update a portion of a file from physical memory. | |
virtual | ~SharedFile () |
Close and finish a database file. | |
![]() | |
off_t | getCapacity (void) |
Get current file capacity. | |
Error | getErrorNumber (void) const |
Return current error id. | |
char * | getErrorString (void) const |
Return current error string. | |
bool | initial (void) |
This method should be called right after a RandomFile derived object has been created. | |
operator bool () const | |
bool | operator! (void) const |
virtual | ~RandomFile () |
Destroy a random access file or it's derived class. | |
Additional Inherited Members | ||
![]() | ||
Error | error (char *err) | |
Post an extended string error message. | ||
Error | error (Error errid, char *errstr=NULL) | |
Post an error event. | ||
void | final (void) | |
Close the file. | ||
virtual Attr | initialize (void) | |
This method is used to initialize a newly created file as indicated by the "initial" flag. | ||
RandomFile (const char *name=NULL) | ||
Create an unopened random access file. | ||
RandomFile (const RandomFile &rf) | ||
Default copy constructor. | ||
Error | setCompletion (Complete mode) | |
Used to set file completion modes. | ||
void | setError (bool enable) | |
Used to enable or disable throwing of exceptions on errors. | ||
void | setTemporary (bool enable) | |
Used to set the temporary attribute for the file. | ||
![]() | ||
Access | access | |
int | fd | |
struct { | ||
unsigned count: 16 | ||
bool immediate: 1 | ||
bool initial: 1 | ||
bool temp: 1 | ||
bool thrown: 1 | ||
} | flags | |
char * | pathname | |
![]() | ||
bool | canAccess (const char *path) | |
bool | canModify (const char *path) | |
bool | isDevice (const char *path) | |
bool | isDir (const char *path) | |
bool | isFile (const char *path) | |
time_t | lastAccessed (const char *path) | |
time_t | lastModified (const char *path) | |
This class defines a database I/O file service that can be shared by multiple processes.
Each thread should access a dup of the database object, and mutex locks can be used to preserve transaction integrety if multiple threads are used.
SharedFile is used when a database may be shared between multiple processes. SharedFile automatically applies low level byte-range "file locks", and provides an interface to fetch and release byte-range locked portions of a file.
This class defines a database I/O file service that can be shared by multiple processes.
ost::SharedFile::SharedFile | ( | const char * | path | ) |
Open or create a new database file.
You should also use Initial.
path | pathname of database to open. |
ost::SharedFile::SharedFile | ( | const SharedFile & | file | ) |
Create a shared file as a duplicate of an existing shared file.
file | original file. |
Error ost::SharedFile::append | ( | char * | address = NULL, |
ccxx_size_t | length = 0 ) |
Add new data to the end of the file.
Locks file during append.
address | address to use, or NULL if same as last I/O. |
length | length to use, or 0 if same as last I/O. |
Error ost::SharedFile::clear | ( | ccxx_size_t | length = 0, |
off_t | pos = -1 ) |
Clear a lock held from a previous fetch operation without updating.
length | length to use, or 0 if same as last I/O. |
pos | file position to use or -1 if same as last I/O. |
Error ost::SharedFile::fetch | ( | char * | address = NULL, |
ccxx_size_t | length = 0, | ||
off_t | position = -1 ) |
Lock and Fetch a portion of the file into physical memory.
This can use state information to fetch the current record multiple times.
address | address to use, or NULL if same as last I/O. |
length | length to use, or 0 if same as last I/O. |
position | file position to use -1 if same as last I/O. |
off_t ost::SharedFile::getPosition | ( | void | ) |
Fetch the current file position marker for this thread.
|
inlinevirtual |
Restart an existing database; close and re-open.
Reimplemented from ost::RandomFile.
Error ost::SharedFile::update | ( | char * | address = NULL, |
ccxx_size_t | length = 0, | ||
off_t | position = -1 ) |
Update a portion of a file from physical memory.
This can use state information to commit the last read record. The current lock is also cleared.
address | address to use, or NULL if same as last I/O. |
length | length to use, or 0 if same as last I/O. |
position | file position to use or -1 if same as last I/O. |