#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 &);
};
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
);
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
);
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
);
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
);
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
);
filename
.
~ACE_Mem_Map (void);
int open (
LPCTSTR filename,
int flags = O_RDWR | O_CREAT,
int mode = ACE_DEFAULT_PERMS
);
int close (void);
handle_
if necessary.
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;