NAME
ACE_Mem_Map -
C++ interface to the mmap(2) UNIX system call.
SYNOPSIS
#include <ace/Mem_Map.h >
class ACE_Mem_Map
{
public:
ACE_Mem_Map (void);
ACE_Mem_Map (
ACE_HANDLE handle,
int length = -1,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
ACE_Mem_Map (
LPCTSTR filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
int map (
ACE_HANDLE handle,
int length = -1,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
int map (
int length = -1,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
int map (
LPCTSTR filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
~ACE_Mem_Map (void);
int open (
LPCTSTR filename,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS
);
int close (void);
int operator () (void *&addr);
void *addr (void) const;
size_t size (void) const;
int unmap (int len = -1);
int unmap (void *addr, int len);
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);
int advise (int behavior, int len = -1);
ACE_HANDLE handle (void) const;
const TCHAR *filename (void) const;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
void *base_addr_;
TCHAR filename_[MAXPATHLEN + 1];
size_t length_;
ACE_HANDLE handle_;
ACE_HANDLE file_mapping_;
int close_handle_;
int map_it (
ACE_HANDLE handle,
int len = -1,
int prot = PROT_RDWR,
int share = MAP_SHARED,
void *addr = 0,
off_t pos = 0
);
inline ACE_Mem_Map (const ACE_Mem_Map &);
inline void operator = (const ACE_Mem_Map &);
};
Initialization and termination methods.
ACE_Mem_Map (void);
ACE_Mem_Map (
ACE_HANDLE handle,
int length = -1,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 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 (
LPCTSTR filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
Map a file specified by file_name.
int map (
ACE_HANDLE handle,
int length = -1,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 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 = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
Remap the file associated with handle_.
int map (
LPCTSTR filename,
int len = -1,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS,
int prot = PROT_RDWR,
int share = MAP_PRIVATE,
void *addr = 0,
off_t pos = 0
);
Map a file specified by filename.
~ACE_Mem_Map (void);
int open (
LPCTSTR filename,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS
);
Open the file without mapping it.
int close (void);
Close down the handle_ if necessary.
int operator () (void *&addr);
This operator passes back the starting address of the mapped
file.
void *addr (void) const;
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 addr_.
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_. If len == -1 then sync the whole
region.
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_.
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. If len == -1 then
change protection of all pages in the mapped region.
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.
int remove (void);
Close down 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 TCHAR *filename (void) const;
Return the name of file that is mapped (if any).
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
AUTHOR
Doug Schmidt
LIBRARY
ace