Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

ACE_Mem_Map Class Reference

C++ interface OS memory mapping system call. More...

#include <Mem_Map.h>

List of all members.

Public Methods

 ACE_Mem_Map (void)
 Default constructor.

 ACE_Mem_Map (ACE_HANDLE handle, int length = -1, int prot = PROT_RDWR, int share = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 Map a file from an open file descriptor <handle>. This function will lookup the length of the file if it is not given.

 ACE_Mem_Map (const ACE_TCHAR *filename, int len = -1, int flags = O_RDWR | O_CREAT, int mode = ACE_DEFAULT_FILE_PERMS, int prot = PROT_RDWR, int share = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 Map a file specified by <file_name>.

int map (ACE_HANDLE handle, int length = -1, int prot = PROT_RDWR, int share = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 Map a file from an open file descriptor <handle>. This function will lookup the length of the file if it is not given.

int map (int length = -1, int prot = PROT_RDWR, int share = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 Remap the file associated with <handle_>.

int map (const ACE_TCHAR *filename, int len = -1, int flags = O_RDWR | O_CREAT, int mode = ACE_DEFAULT_FILE_PERMS, int prot = PROT_RDWR, int share = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 Map a file specified by <filename>.

 ~ACE_Mem_Map (void)
 Destructor.

int open (const ACE_TCHAR *filename, int flags = O_RDWR | O_CREAT, int mode = ACE_DEFAULT_FILE_PERMS, LPSECURITY_ATTRIBUTES sa = 0)
 Open the file without mapping it.

int close (void)
 Close down the <handle_> if necessary and unmap the mapping.

int close_handle (void)
 Close down the <handle_> if necessary.

int close_filemapping_handle (void)
int operator() (void *&addr)
 This operator passes back the starting address of the mapped file.

void* addr (void) const
 Return the base address.

size_t size (void) const
 This function returns the number of bytes currently mapped in the file.

int unmap (int len = -1)
 Unmap the region starting at <base_addr_>.

int unmap (void *addr, int len)
 Unmap the region starting at .

int sync (ssize_t len = -1, int flags = MS_SYNC)
int sync (void *addr, size_t len, int flags = MS_SYNC)
 Sync <len> bytes of the memory region to the backing store starting at .

int protect (ssize_t len = -1, int prot = PROT_RDWR)
int protect (void *addr, size_t len, int prot = PROT_RDWR)
 Change the protection of the pages of the mapped region to <prot> starting at up to <len> bytes.

int remove (void)
 Close and remove the file from the file system.

int advise (int behavior, int len = -1)
 Hook into the underlying VM system.

ACE_HANDLE handle (void) const
 Return the underlying <handle_>.

const ACE_TCHARfilename (void) const
 Return the name of file that is mapped (if any).

void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Private Methods

int map_it (ACE_HANDLE handle, int len = -1, int prot = PROT_RDWR, int share = MAP_SHARED, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0)
 This method does the dirty work of actually calling mmap to map the file into memory.

 ACE_Mem_Map (const ACE_Mem_Map &)
void operator= (const ACE_Mem_Map &)

Private Attributes

void* base_addr_
 Base address of the memory-mapped file.

ACE_TCHAR filename_ [MAXPATHLEN + 1]
 Name of the file that is mapped.

size_t length_
 Length of the mapping.

ACE_HANDLE handle_
 HANDLE for the open file.

ACE_HANDLE file_mapping_
 HANDLE for the open mapping.

int close_handle_
 Keeps track of whether we need to close the handle. This is set if we opened the file.


Detailed Description

C++ interface OS memory mapping system call.

This class works with both the mmap(2) UNIX system and the Win32 family of memory mapping system calls.


Constructor & Destructor Documentation

ACE_Mem_Map::ACE_Mem_Map ( void )
 

Default constructor.

ACE_Mem_Map::ACE_Mem_Map ( ACE_HANDLE handle,
int length = -1,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Map a file from an open file descriptor <handle>. This function will lookup the length of the file if it is not given.

ACE_Mem_Map::ACE_Mem_Map ( const ACE_TCHAR * filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_FILE_PERMS,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Map a file specified by <file_name>.

ACE_Mem_Map::~ACE_Mem_Map ( void )
 

Destructor.

ACE_Mem_Map::ACE_Mem_Map ( const ACE_Mem_Map & ) [private]
 


Member Function Documentation

ACE_INLINE void * ACE_Mem_Map::addr ( void ) const
 

Return the base address.

ACE_INLINE int ACE_Mem_Map::advise ( int behavior,
int len = -1 )
 

Hook into the underlying VM system.

int ACE_Mem_Map::close ( void )
 

Close down the <handle_> if necessary and unmap the mapping.

ACE_INLINE int ACE_Mem_Map::close_filemapping_handle ( void )
 

Close down the internal <file_mapping_> if necessary. This is mostly necessary on Win32, which has a different handle for file-mapping kernel object.

ACE_INLINE int ACE_Mem_Map::close_handle ( void )
 

Close down the <handle_> if necessary.

void ACE_Mem_Map::dump ( void ) const
 

Dump the state of an object.

ACE_INLINE const ACE_TCHAR * ACE_Mem_Map::filename ( void ) const
 

Return the name of file that is mapped (if any).

ACE_INLINE ACE_HANDLE ACE_Mem_Map::handle ( void ) const
 

Return the underlying <handle_>.

int ACE_Mem_Map::map ( const ACE_TCHAR * filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_FILE_PERMS,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Map a file specified by <filename>.

ACE_INLINE int ACE_Mem_Map::map ( int len = -1,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Remap the file associated with <handle_>.

ACE_INLINE int ACE_Mem_Map::map ( ACE_HANDLE handle,
int len = -1,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Map a file from an open file descriptor <handle>. This function will lookup the length of the file if it is not given.

int ACE_Mem_Map::map_it ( ACE_HANDLE handle,
int len = -1,
int prot = PROT_RDWR,
int share = MAP_SHARED,
void * addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0 ) [private]
 

This method does the dirty work of actually calling mmap to map the file into memory.

int ACE_Mem_Map::open ( const ACE_TCHAR * filename,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_FILE_PERMS,
LPSECURITY_ATTRIBUTES sa = 0 )
 

Open the file without mapping it.

ACE_INLINE int ACE_Mem_Map::operator() ( void *& addr )
 

This operator passes back the starting address of the mapped file.

void ACE_Mem_Map::operator= ( const ACE_Mem_Map & ) [private]
 

ACE_INLINE int ACE_Mem_Map::protect ( void * addr,
size_t len,
int prot = PROT_RDWR )
 

Change the protection of the pages of the mapped region to <prot> starting at up to <len> bytes.

ACE_INLINE int ACE_Mem_Map::protect ( ssize_t len = -1,
int prot = PROT_RDWR )
 

Change the protection of the pages of the mapped region to <prot> starting at <base_addr_> up to <len> bytes. If <len> == -1 then change protection of all pages in the mapped region.

int ACE_Mem_Map::remove ( void )
 

Close and remove the file from the file system.

ACE_INLINE size_t ACE_Mem_Map::size ( void ) const
 

This function returns the number of bytes currently mapped in the file.

ACE_INLINE int ACE_Mem_Map::sync ( void * addr,
size_t len,
int flags = MS_SYNC )
 

Sync <len> bytes of the memory region to the backing store starting at .

ACE_INLINE int ACE_Mem_Map::sync ( ssize_t len = -1,
int flags = MS_SYNC )
 

Sync <len> bytes of the memory region to the backing store starting at <base_addr_>. If <len> == -1 then sync the whole region.

ACE_INLINE int ACE_Mem_Map::unmap ( void * addr,
int len )
 

Unmap the region starting at .

ACE_INLINE int ACE_Mem_Map::unmap ( int len = -1 )
 

Unmap the region starting at <base_addr_>.


Member Data Documentation

ACE_Mem_Map::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

void * ACE_Mem_Map::base_addr_ [private]
 

Base address of the memory-mapped file.

int ACE_Mem_Map::close_handle_ [private]
 

Keeps track of whether we need to close the handle. This is set if we opened the file.

ACE_HANDLE ACE_Mem_Map::file_mapping_ [private]
 

HANDLE for the open mapping.

ACE_TCHAR ACE_Mem_Map::filename_[MAXPATHLEN+1] [private]
 

Name of the file that is mapped.

ACE_HANDLE ACE_Mem_Map::handle_ [private]
 

HANDLE for the open file.

size_t ACE_Mem_Map::length_ [private]
 

Length of the mapping.


The documentation for this class was generated from the following files:
Generated at Wed Nov 21 10:31:20 2001 for ACE by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000