#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 = ACE_MAP_PRIVATE, void *addr = 0, off_t offset = 0, LPSECURITY_ATTRIBUTES sa = 0 );ACE_Mem_Map ( LPCTSTR 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 );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 );int map ( LPCTSTR 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 );~ACE_Mem_Map (void);int open ( LPCTSTR filename, int flags = O_RDWR | O_CREAT, int mode = ACE_DEFAULT_FILE_PERMS, LPSECURITY_ATTRIBUTES sa = 0 );int close (void);int close_handle (void);int close_filemapping_handle (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 write_enabled_;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 offset = 0, LPSECURITY_ATTRIBUTES sa = 0 );inline ACE_UNIMPLEMENTED_FUNC (ACE_Mem_Map (const ACE_Mem_Map &));};
ACE_Mem_Map (void);
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
);
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_FILE_PERMS,
int prot = PROT_RDWR,
int share = ACE_MAP_PRIVATE,
void *addr = 0,
off_t offset = 0,
LPSECURITY_ATTRIBUTES sa = 0
);
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
);
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
);
handle_.
int map (
LPCTSTR 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
);
filename.
~ACE_Mem_Map (void);
int open (
LPCTSTR filename,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_FILE_PERMS,
LPSECURITY_ATTRIBUTES sa = 0
);
int close (void);
handle_ if necessary and unmap the mapping.
int close_handle (void);
handle_ if necessary.
int close_filemapping_handle (void);
file_mapping_ if necessary. This is
mostly necessary on Win32, which has a different handle for
file-mapping kernel object.
int operator () (void *&addr);
void *addr (void) const;
size_t size (void) const;
int unmap (int len = -1);
base_addr_.
int unmap (void *addr, int len);
addr_.
int sync (ssize_t len = -1, int flags = MS_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);
len bytes of the memory region to the backing store
starting at addr_.
int protect (ssize_t len = -1, int prot = PROT_RDWR);
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);
prot
starting at addr up to len bytes.
int remove (void);
int advise (int behavior, int len = -1);
ACE_HANDLE handle (void) const;
handle_.
const TCHAR *filename (void) const;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
inline ACE_UNIMPLEMENTED_FUNC (ACE_Mem_Map (const ACE_Mem_Map &));