logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

ost::MappedFile - Create and map a disk file into memory.

Author

       Generated automatically by Doxygen for GNU CommonC++ from the source code.

GNU CommonC++                                    Sun Dec 27 2020                              ost::MappedFile(3)

Constructor & Destructor Documentation

ost::MappedFile::MappedFile(constchar*fname,Accessmode)
       Open a file for mapping. More than one segment of a file may be mapped into separate regions of memory.

       Parametersfname file name to access for mapping.
           mode access mode to map file.

   ost::MappedFile::MappedFile(constchar*fname,Accessmode,size_tsize)
       Create if not exists, and map a file of specified size into memory.

       Parametersfname file name to access for mapping.
           mode access mode to map file.
           size of file to map.

   ost::MappedFile::MappedFile(constchar*fname,pos_toffset,size_tsize,Accessmode)
       Map a portion or all of a specified file in the specified shared memory access mode. Valid mapping modes
       include mappedRead, mappedWrite, and mappedReadWrite.

       Parametersfname 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.

   virtualost::MappedFile::~MappedFile()[virtual]
       Release a mapped section of memory associated with a file. The mapped area is updated back to disk.

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
           David Sugar dyfet@ostel.com

       Map a named disk file into memory.

Member Function Documentation

caddr_tost::MappedFile::fetch(off_tpos,size_tlen)
       Fetch and map a portion of a disk file to a logical memory block.

       Returns
           pointer to memory segment.

       Parameterspos offset of file segment to map.
           len size of memory segment to map.

   caddr_tost::MappedFile::fetch(size_toffset=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.

       Parametersoffset from start of mapped memory.

   boolost::MappedFile::lock(void)
       Lock the currently mapped portion of a file.

       Returns
           true if pages are locked.

   size_tost::MappedFile::pageAligned(size_tsize)
       Compute map size to aligned page boundry.

       Parameterssize request.

       Returns
           page aligned size.

   voidost::MappedFile::release(caddr_taddress,size_tlen)
       Release (unmap) a memory segment.

       Parametersaddress address of memory segment to release.
           len length of memory segment to release.

   voidost::MappedFile::sync(caddr_taddress,size_tlen)
       Synchronize a segment of memory mapped from a segment fetch.

       Parametersaddress memory address to update.
           len size of segment.

   voidost::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.

   voidost::MappedFile::unlock(void)
       Unlock a locked mapped portion of a file.

   voidost::MappedFile::update(caddr_taddress,size_tlen)
       Update a mapped region back to disk as specified by address and length.

       Parametersaddress address of segment.
           len length of segment.

   voidost::MappedFile::update(size_toffset=0,size_tlen=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.

       Parametersoffset offset into the mapped region of memory.
           len length of partial region (example, record length).

Name

       ost::MappedFile - Create and map a disk file into memory.

Synopsis

       #include <file.h>

       Inherits ost::RandomFile.

   PublicMemberFunctionsMappedFile (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.

   AdditionalInheritedMembers

See Also