class MappedFile
|
map a named disk file into memory.
More... |
|
|
Public Members
- MappedFile (const char *fname, fileaccess_t mode)
- MappedFile (const char *fname, pos_t offset, size_t size, fileaccess_t mode)
- virtual ~MappedFile ()
- inline void Sync (void)
- void Sync (void *address, size_t len)
- void Update (size_t offset = 0, size_t len = 0)
- void Update (void *address, size_t len)
- void Release (void *address, size_t len)
- inline void * Fetch (size_t offset = 0)
- void * Fetch (off_t pos, size_t len)
Detailed Description
Create and map a disk file into memory. This portable class works
under both Posix via mmap and under the win32 API. A mapped file
can be referenced directly by it's memory segment.
MappedFile (const char *fname, fileaccess_t mode)
|
Open a file for mapping. More than one segment of a file
may be mapped into seperate regions of memory.
Parameters:
file | name to access for mapping.
|
access | mode to map file.
|
MappedFile (const char *fname, pos_t offset, size_t size, fileaccess_t mode)
|
Map a portion or all of a specified file in the specified
shared memory access mode. Valid mapping modes include
FILE_MAPPED_READ, FILE_MAPPED_WRITE, and FILE_MAPPED_RDWR.
Parameters:
fname | pathname of file to map into memory.
|
offset | from start of file to begin mapping in bytes.
|
size | of mapped area in bytes.
|
mode | to map file.
|
[virtual]
Release a mapped section of memory associated with a file. The
mapped area is updated back to disk.
Synchronize the contents of the mapped portion of memory with
the disk file and wait for completion. This assures the memory
mapped from the file is written back.
void Sync (void *address, size_t len)
|
Synchronize a segment of memory mapped from a segment fetch.
Parameters:
memory | address to update.
|
size | of segment.
|
void Update (size_t offset = 0, size_t len = 0)
|
Map a portion of the memory mapped from the file back to the
file and do not wait for completion. This is useful when mapping
a database file and updating a single record.
Parameters:
offset | into the mapped region of memory.
|
len | of partial region (example, record length).
|
void Update (void *address, size_t len)
|
Update a mapped region back to disk as specified by address
and length.
Parameters:
address | of segment.
|
length | of segment.
|
void Release (void *address, size_t len)
|
Release (unmap) a memory segment.
Parameters:
address | of memory segment to release.
|
length | of memory segment to release.
|
inline void * Fetch (size_t offset = 0)
|
Fetch a pointer to an offset within the memory mapped portion
of the disk file. This really is used for convience of matching
operations between Update and Fetch, as one could simply have
accessed the base pointer where the file was mapped directly.
Parameters:
offset | from start of mapped memory.
|
void * Fetch (off_t pos, size_t len)
|
Fetch and map a portion of a disk file to a logical memory
block.
Parameters:
offset | of file segment to map.
|
size | of memory segment to map.
|
Returns: pointer to memory segment.
- Author: David Sugar
- Generated: dyfet@home.sys on Tue Apr 18 21:24:04 200.