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. More...
| 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. More...
| 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>. More...
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. More...
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_>. More...
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>. More...
| ~ACE_Mem_Map (void)
| Destructor. More...
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. More...
int | close (void)
| Close down the <handle_> if necessary and unmap the mapping. More...
int | close_handle (void)
| Close down the <handle_> if necessary. More...
int | close_filemapping_handle (void)
| Close down the internal <file_mapping_> if necessary. More...
int | operator() (void *&addr)
| This operator passes back the starting address of the mapped file. More...
void * | addr (void) const
| Return the base address. More...
size_t | size (void) const
| This function returns the number of bytes currently mapped in the file. More...
int | unmap (int len=-1)
| Unmap the region starting at <base_addr_>. More...
int | unmap (void *addr, int len)
| Unmap the region starting at <addr_>. More...
int | sync (ssize_t len=-1, int flags=MS_SYNC)
| Sync <len> bytes of the memory region to the backing store starting at <base_addr_>. More...
int | sync (void *addr, size_t len, int flags=MS_SYNC)
| Sync <len> bytes of the memory region to the backing store starting at <addr_>. More...
int | 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. More...
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 <addr> up to <len> bytes. More...
int | remove (void)
| Close and remove the file from the file system. More...
int | advise (int behavior, int len=-1)
| Hook into the underlying VM system. More...
ACE_HANDLE | handle (void) const
| Return the underlying <handle_>. More...
const ACE_TCHAR * | filename (void) const
| Return the name of file that is mapped (if any). More...
void | dump (void) const
| Dump the state of an object. More...
## Public Attributes
| ACE_ALLOC_HOOK_DECLARE
| Declare the dynamic allocation hooks. More...
## 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. More...
| 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. More...
ACE_TCHAR | filename_ [MAXPATHLEN+1]
| Name of the file that is mapped. More...
size_t | length_
| Length of the mapping. More...
ACE_HANDLE | handle_
| HANDLE for the open file. More...
ACE_HANDLE | file_mapping_
| HANDLE for the open mapping. More...
int | close_handle_
| Keeps track of whether we need to close the handle. This is set if we opened the file. More...

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

ACE_Mem_Map::ACE_Mem_Map | ( | const ACE_TCHAR * | file_name,
|  | 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 * | file_name,
|  | 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 | length_request = -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 * | file_name,
|  | 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:

- Mem_Map.h
- Mem_Map.cpp
- Mem_Map.i