ost::MappedFile(3) | Library Functions Manual | ost::MappedFile(3) |
NAME¶
ost::MappedFile - Create and map a disk file into memory.
SYNOPSIS¶
#include <file.h>
Inherits ost::RandomFile.
Public Member Functions¶
MappedFile (const char *fname, Access mode)
Open a file for mapping. MappedFile (const char *fname, Access
mode, size_t size)
Create if not exists, and map a file of specified size into memory.
MappedFile (const char *fname, pos_t offset, size_t size,
Access mode)
Map a portion or all of a specified file in the specified shared memory access
mode. virtual ~MappedFile ()
Release a mapped section of memory associated with a file. void sync
(void)
Synchronize the contents of the mapped portion of memory with the disk file
and wait for completion. void sync (caddr_t address, size_t len)
Synchronize a segment of memory mapped from a segment fetch. 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. void update (caddr_t address, size_t len)
Update a mapped region back to disk as specified by address and length. void
release (caddr_t address, size_t len)
Release (unmap) a memory segment. caddr_t fetch (size_t offset=0)
Fetch a pointer to an offset within the memory mapped portion of the disk
file. caddr_t fetch (off_t pos, size_t len)
Fetch and map a portion of a disk file to a logical memory block. bool
lock (void)
Lock the currently mapped portion of a file. void unlock (void)
Unlock a locked mapped portion of a file. size_t pageAligned (size_t
size)
Compute map size to aligned page boundry.
Additional Inherited Members¶
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. One can map and unmap portions of a file on demand, and update changed memory pages mapped from files immediately through sync().
Author
Map a named disk file into memory.
Constructor & Destructor Documentation¶
ost::MappedFile::MappedFile (const char * fname, Access mode)¶
Open a file for mapping. More than one segment of a file may be mapped into separate regions of memory.
Parameters
mode access mode to map file.
ost::MappedFile::MappedFile (const char * fname, Access mode, size_t size)¶
Create if not exists, and map a file of specified size into memory.
Parameters
mode access mode to map file.
size of file to map.
ost::MappedFile::MappedFile (const char * fname, pos_t offset, size_t size, Access mode)¶
Map a portion or all of a specified file in the specified shared memory access mode. Valid mapping modes include mappedRead, mappedWrite, and mappedReadWrite.
Parameters
offset from start of file to begin mapping in bytes.
size of mapped area in bytes.
mode to map file.
virtual ost::MappedFile::~MappedFile () [virtual]¶
Release a mapped section of memory associated with a file. The mapped area is updated back to disk.
Member Function Documentation¶
caddr_t ost::MappedFile::fetch (off_t pos, size_t len)¶
Fetch and map a portion of a disk file to a logical memory block.
Returns
Parameters
len size of memory segment to map.
caddr_t ost::MappedFile::fetch (size_t offset = 0) [inline]¶
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
bool ost::MappedFile::lock (void)¶
Lock the currently mapped portion of a file.
Returns
size_t ost::MappedFile::pageAligned (size_t size)¶
Compute map size to aligned page boundry.
Parameters
Returns
void ost::MappedFile::release (caddr_t address, size_t len)¶
Release (unmap) a memory segment.
Parameters
len length of memory segment to release.
void ost::MappedFile::sync (caddr_t address, size_t len)¶
Synchronize a segment of memory mapped from a segment fetch.
Parameters
len size of segment.
void ost::MappedFile::sync (void)¶
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 ost::MappedFile::unlock (void)¶
Unlock a locked mapped portion of a file.
void ost::MappedFile::update (caddr_t address, size_t len)¶
Update a mapped region back to disk as specified by address and length.
Parameters
len length of segment.
void ost::MappedFile::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
len length of partial region (example, record length).
Author¶
Generated automatically by Doxygen for GNU CommonC++ from the source code.
Sun Dec 27 2020 | GNU CommonC++ |