Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   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)
 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)
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)
void * addr (void) const
 Return the base address.

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

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

int sync (ssize_t len=-1, int flags=MS_SYNC)
int sync (void *addr, size_t len, int flags=MS_SYNC)
int protect (ssize_t len=-1, int prot=PROT_RDWR)
int protect (void *addr, size_t len, int prot=PROT_RDWR)
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)
 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_


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

ACE_INLINE int ACE_Mem_Map::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 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 <addr> 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 <addr_>.

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

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 on Fri Apr 2 16:50:14 2004 for ACE by doxygen1.2.18