#include <Mem_Map.h>
Public Member Functions | |
ACE_Mem_Map (void) | |
Default constructor. | |
ACE_Mem_Map (ACE_HANDLE handle, ssize_t 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, ssize_t length=-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, ssize_t length=-1, int prot=PROT_RDWR, int share=ACE_MAP_PRIVATE, void *addr=0, off_t offset=0, LPSECURITY_ATTRIBUTES sa=0) |
int | map (ssize_t 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 . | |
int | map (const ACE_TCHAR *filename, ssize_t length=-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 . | |
~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 if necessary and unmap the mapping. | |
int | close_handle (void) |
Close down the 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 (ssize_t len=-1) |
Unmap the region starting at . | |
int | unmap (void *addr, ssize_t len) |
Unmap the region starting at . | |
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 . | |
const ACE_TCHAR * | filename (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 Member Functions | |
int | map_it (ACE_HANDLE handle, ssize_t 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. | |
bool | close_handle_ |
This class works with both the mmap(2) UNIX system and the Win32 family of memory mapping system calls.
Definition at line 40 of file Mem_Map.h.
|
Default constructor.
Definition at line 275 of file Mem_Map.cpp. References ACE_TRACE, MAP_FAILED, and ACE_OS::memset().
00276 : base_addr_ (MAP_FAILED), 00277 length_ (0), 00278 handle_ (ACE_INVALID_HANDLE), 00279 file_mapping_ (ACE_INVALID_HANDLE), 00280 close_handle_ (false) 00281 { 00282 ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map"); 00283 ACE_OS::memset (this->filename_, 0, sizeof this->filename_); 00284 } |
|
Map a file from an open file descriptor handle. This function will lookup the length of the file if it is not given. Definition at line 321 of file Mem_Map.cpp. References ACE_ERROR, ACE_LIB_TEXT, ACE_TRACE, LM_ERROR, map(), MAP_FAILED, ACE_OS::memset(), and ssize_t.
00328 : base_addr_ (MAP_FAILED), 00329 length_ (0), 00330 handle_ (ACE_INVALID_HANDLE), 00331 file_mapping_ (ACE_INVALID_HANDLE), 00332 close_handle_ (false) 00333 { 00334 ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map"); 00335 00336 ACE_OS::memset (this->filename_, 00337 0, 00338 sizeof this->filename_); 00339 if (this->map (handle, 00340 len, 00341 prot, 00342 share, 00343 addr, 00344 offset, 00345 sa) < 0) 00346 ACE_ERROR ((LM_ERROR, 00347 ACE_LIB_TEXT ("%p\n"), 00348 ACE_LIB_TEXT ("ACE_Mem_Map::ACE_Mem_Map"))); 00349 } |
|
Map a file specified by file_name.
Definition at line 288 of file Mem_Map.cpp. References ACE_ERROR, ACE_LIB_TEXT, ACE_TCHAR, ACE_TRACE, LM_ERROR, map(), MAP_FAILED, and ssize_t.
00297 : base_addr_ (MAP_FAILED), 00298 length_ (0), 00299 handle_ (ACE_INVALID_HANDLE), 00300 file_mapping_ (ACE_INVALID_HANDLE), 00301 close_handle_ (false) 00302 { 00303 ACE_TRACE ("ACE_Mem_Map::ACE_Mem_Map"); 00304 if (this->map (file_name, 00305 len, 00306 flags, 00307 mode, 00308 prot, 00309 share, 00310 addr, 00311 offset, 00312 sa) < 0) 00313 ACE_ERROR ((LM_ERROR, 00314 ACE_LIB_TEXT ("%p\n"), 00315 ACE_LIB_TEXT ("ACE_Mem_Map::ACE_Mem_Map"))); 00316 } |
|
Destructor.
Definition at line 86 of file Mem_Map.cpp. References ACE_TRACE, and close().
|
|
|
|
Return the base address.
Definition at line 81 of file Mem_Map.inl. References ACE_TRACE, and base_addr_. Referenced by ACE_MMAP_Memory_Pool::acquire(), ACE_Filecache_Object::address(), ACE_MMAP_Memory_Pool::init_acquire(), ACE_MMAP_Memory_Pool::map_file(), and ACE_MMAP_Memory_Pool::remap().
00082 { 00083 ACE_TRACE ("ACE_Mem_Map::addr"); 00084 00085 return this->base_addr_; 00086 } |
|
Hook into the underlying VM system.
Definition at line 235 of file Mem_Map.inl. References ACE_TRACE, caddr_t, and ACE_OS::madvise().
00236 { 00237 ACE_TRACE ("ACE_Mem_Map::advise"); 00238 const size_t advise_len = 00239 len < 0 ? this->length_ : static_cast<size_t> (len); 00240 00241 return ACE_OS::madvise ((caddr_t) this->base_addr_, 00242 advise_len, 00243 behavior); 00244 } |
|
Close down the if necessary and unmap the mapping.
Definition at line 77 of file Mem_Map.cpp. References ACE_TRACE, close_handle(), and unmap(). Referenced by ACE_MMAP_Memory_Pool::release(), remove(), and ~ACE_Mem_Map().
00078 { 00079 ACE_TRACE ("ACE_Mem_Map::close"); 00080 00081 this->unmap (); 00082 00083 return this->close_handle (); 00084 } |
|
Close down the internal if necessary. This is mostly necessary on Win32, which has a different handle for file-mapping kernel object. Definition at line 99 of file Mem_Map.inl. References ACE_OS::close(), and file_mapping_. Referenced by map_it(), and unmap().
00100 { 00101 int result = 0; 00102 00103 if (this->file_mapping_ != this->handle_ 00104 && this->file_mapping_ != ACE_INVALID_HANDLE) 00105 { 00106 // On LynxOS, this will result in unlinking of the (hidden) 00107 // shared memory file if there are no more references to it. 00108 result = ACE_OS::close (this->file_mapping_); 00109 this->file_mapping_ = ACE_INVALID_HANDLE; 00110 } 00111 00112 return result; 00113 } |
|
Close down the if necessary.
Definition at line 247 of file Mem_Map.inl. References ACE_OS::close(), and close_handle_. Referenced by close().
00248 { 00249 int result = 0; 00250 00251 if (this->close_handle_) 00252 { 00253 this->close_handle_ = false; 00254 result = ACE_OS::close (this->handle_); 00255 this->handle_ = ACE_INVALID_HANDLE; 00256 } 00257 00258 return result; 00259 } |
|
Dump the state of an object.
Definition at line 60 of file Mem_Map.cpp. References ACE_BEGIN_DUMP, ACE_DEBUG, ACE_END_DUMP, ACE_LIB_TEXT, ACE_TRACE, and LM_DEBUG.
00061 { 00062 #if defined (ACE_HAS_DUMP) 00063 ACE_TRACE ("ACE_Mem_Map::dump"); 00064 00065 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this)); 00066 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("base_addr_ = %x"), this->base_addr_)); 00067 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nfilename_ = %s"), this->filename_)); 00068 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nlength_ = %d"), this->length_)); 00069 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nhandle_ = %d"), this->handle_)); 00070 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nfile_mapping_ = %d"), this->file_mapping_)); 00071 ACE_DEBUG ((LM_DEBUG, ACE_LIB_TEXT ("\nclose_handle_ = %d"), this->close_handle_)); 00072 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP)); 00073 #endif /* ACE_HAS_DUMP */ 00074 } |
|
Return the name of file that is mapped (if any).
Definition at line 21 of file Mem_Map.inl. Referenced by ACE_Shared_Memory_MM::filename().
00022 { 00023 return this->filename_; 00024 } |
|
Return the underlying .
Definition at line 12 of file Mem_Map.inl. References ACE_TRACE. Referenced by ACE_MMAP_Memory_Pool::commit_backing_store_name(), and ACE_Shared_Memory_MM::get_id().
|
|
Map a file specified by .
Definition at line 247 of file Mem_Map.cpp. References ACE_TCHAR, ACE_TRACE, map_it(), open(), and ssize_t.
00256 { 00257 ACE_TRACE ("ACE_Mem_Map::map"); 00258 this->length_ = 0; 00259 00260 if (this->open (file_name, 00261 flags, 00262 mode, 00263 sa) == -1) 00264 return -1; 00265 else 00266 return this->map_it (this->handle (), 00267 len, 00268 prot, 00269 share, 00270 addr, 00271 offset, 00272 sa); 00273 } |
|
Remap the file associated with .
Definition at line 42 of file Mem_Map.inl. References ACE_TRACE, base_addr_, MAP_FAILED, MAP_FIXED, map_it(), and ssize_t.
00048 { 00049 ACE_TRACE ("ACE_Mem_Map::map"); 00050 // If we're already mapped at a particular location then try to 00051 // remap the file using the same base address. 00052 if (addr == 0 && this->base_addr_ != 0 && this->base_addr_ != MAP_FAILED) 00053 { 00054 share |= MAP_FIXED; 00055 addr = this->base_addr_; 00056 } 00057 00058 return this->map_it (this->handle (), length, prot, 00059 share, addr, offset, sa); 00060 } |
|
Map a file from an open file descriptor handle. This function will lookup the length of the file if it is not given. Definition at line 27 of file Mem_Map.inl. References ACE_TRACE, map_it(), and ssize_t. Referenced by ACE_Filecache_Object::ACE_Filecache_Object(), ACE_Mem_Map(), ACE_MMAP_Memory_Pool::init_acquire(), ACE_MMAP_Memory_Pool::map_file(), ACE_Shared_Memory_MM::open(), and ACE_Filecache_Object::release().
|
|
This method does the dirty work of actually calling ::mmap to map the file into memory. Definition at line 97 of file Mem_Map.cpp. References ACE_BIT_ENABLED, ACE_LOFF_T, ACE_TCHAR, ACE_TRACE, base_addr_, close_filemapping_handle(), ACE_OS::filesize(), MAP_FAILED, MAP_SHARED, ACE_OS::mmap(), PROT_WRITE, ACE_OS::pwrite(), ssize_t, to_mapping_name(), and unmap(). Referenced by map().
00104 { 00105 ACE_TRACE ("ACE_Mem_Map::map_it"); 00106 00107 #if defined (ACE_LACKS_AUTO_MMAP_REPLACEMENT) 00108 // If the system does not replace any previous mappings, then 00109 // unmap() before (potentially) mapping to the same location. 00110 int const unmap_result = this->unmap (); 00111 if (unmap_result != 0) 00112 return unmap_result; 00113 #endif /* ACE_LACKS_AUTO_MMAP_REPLACEMENT */ 00114 00115 this->base_addr_ = addr; 00116 this->handle_ = handle; 00117 00118 ACE_LOFF_T const result = ACE_OS::filesize (this->handle_); 00119 00120 // At this point we know <result> is not negative... 00121 size_t const current_file_length = static_cast<size_t> (result); 00122 00123 // Flag to indicate if we need to extend the back store 00124 bool extend_backing_store = false; 00125 00126 // File length requested by user 00127 size_t requested_file_length = 0; 00128 00129 // Check <length_request> 00130 if (length_request == -1) 00131 // Set length to file_request. 00132 this->length_ = current_file_length - offset; 00133 else 00134 { 00135 // File length implicitly requested by user 00136 requested_file_length = length_request + offset; 00137 00138 // Check to see if we need to extend the backing store 00139 if (requested_file_length > current_file_length) 00140 { 00141 // If the length of the mapped region is less than the 00142 // length of the file then we force a complete new remapping 00143 // by setting the descriptor to ACE_INVALID_HANDLE (closing 00144 // down the descriptor if necessary). 00145 this->close_filemapping_handle (); 00146 00147 // Remember to extend the backing store 00148 extend_backing_store = true; 00149 } 00150 00151 // Set length to length_request 00152 this->length_ = length_request; 00153 } 00154 00155 // Check if we need to extend the backing store. 00156 if (extend_backing_store) 00157 { 00158 // Remember than write increases the size by one. 00159 off_t null_byte_position; 00160 if (requested_file_length > 0) 00161 // This will make the file size <requested_file_length> 00162 null_byte_position = 00163 static_cast<off_t> (requested_file_length - 1); 00164 else 00165 // This will make the file size 1 00166 null_byte_position = 0; 00167 00168 if (ACE_OS::pwrite (this->handle_, 00169 "", 00170 1, 00171 null_byte_position) == -1) 00172 return -1; 00173 } 00174 00175 #if defined (ACE_HAS_LYNXOS_BROKEN_MMAP) 00176 // Set flag that indicates whether PROT_WRITE has been enabled. 00177 write_enabled_ = ACE_BIT_ENABLED (prot, PROT_WRITE); 00178 #endif /* ACE_HAS_LYNXOS_BROKEN_MMAP */ 00179 00180 #if defined (ACE_USE_MAPPING_NAME) 00181 if (ACE_BIT_ENABLED (share, MAP_SHARED)) 00182 { 00183 # if defined(__MINGW32__) 00184 const int max_mapping_name_length = 32; 00185 # else 00186 const int max_mapping_name_length = 31; 00187 # endif /* __MINGW32__ */ 00188 ACE_TCHAR file_mapping_name[max_mapping_name_length + 1]; 00189 to_mapping_name (file_mapping_name, 00190 filename_, 00191 max_mapping_name_length + 1); 00192 00193 this->base_addr_ = ACE_OS::mmap (this->base_addr_, 00194 this->length_, 00195 prot, 00196 share, 00197 this->handle_, 00198 offset, 00199 &this->file_mapping_, 00200 sa, 00201 file_mapping_name); 00202 } 00203 else 00204 #endif /* ACE_USE_MAPPING_NAME */ 00205 this->base_addr_ = ACE_OS::mmap (this->base_addr_, 00206 this->length_, 00207 prot, 00208 share, 00209 this->handle_, 00210 offset, 00211 &this->file_mapping_, 00212 sa); 00213 00214 return this->base_addr_ == MAP_FAILED ? -1 : 0; 00215 } |
|
Open the file without mapping it.
Definition at line 218 of file Mem_Map.cpp. References ACE_TCHAR, ACE_TRACE, close_handle_, MAXPATHLEN, ACE_OS::open(), ACE_OS::shm_open(), and ACE_OS::strsncpy(). Referenced by ACE_MMAP_Memory_Pool::init_acquire(), and map().
00222 { 00223 ACE_TRACE ("ACE_Mem_Map::open"); 00224 00225 #if defined(INTEGRITY) || defined (__QNXNTO__) 00226 this->handle_ = ACE_OS::shm_open (file_name, flags, mode, sa); 00227 #elif defined (ACE_OPENVMS) 00228 ACE_OSCALL (::open (file_name, flags, mode, "shr=get,put,upd"), ACE_HANDLE, -1, this->handle_); 00229 #else 00230 this->handle_ = ACE_OS::open (file_name, flags, mode, sa); 00231 #endif /* INTEGRITY */ 00232 00233 if (this->handle_ == ACE_INVALID_HANDLE) 00234 return -1; 00235 else 00236 { 00237 ACE_OS::strsncpy (this->filename_, 00238 file_name, 00239 MAXPATHLEN); 00240 00241 this->close_handle_ = true; 00242 return 0; 00243 } 00244 } |
|
This operator passes back the starting address of the mapped file. Definition at line 65 of file Mem_Map.inl. References ACE_TRACE, base_addr_, and MAP_FAILED.
00066 { 00067 ACE_TRACE ("ACE_Mem_Map::operator"); 00068 00069 if (this->base_addr_ == MAP_FAILED) 00070 return -1; 00071 else 00072 { 00073 addr = this->base_addr_; 00074 return 0; 00075 } 00076 } |
|
|
|
Change the protection of the pages of the mapped region to starting at up to bytes. Definition at line 226 of file Mem_Map.inl. References ACE_TRACE, and ACE_OS::mprotect().
00227 { 00228 ACE_TRACE ("ACE_Mem_Map::protect"); 00229 return ACE_OS::mprotect (addr, len, prot); 00230 } |
|
Change the protection of the pages of the mapped region to starting at up to bytes. If == -1 then change protection of all pages in the mapped region. Definition at line 214 of file Mem_Map.inl. References ACE_TRACE, ACE_OS::mprotect(), and ssize_t. Referenced by ACE_MMAP_Memory_Pool::protect().
00215 { 00216 ACE_TRACE ("ACE_Mem_Map::protect"); 00217 if (len < 0) 00218 len = this->length_; 00219 return ACE_OS::mprotect (this->base_addr_, len, prot); 00220 } |
|
Close and remove the file from the file system.
Definition at line 354 of file Mem_Map.cpp. References ACE_TRACE, close(), ACE_OS::ftruncate(), ACE_OS::shm_unlink(), and ACE_OS::unlink(). Referenced by ACE_MMAP_Memory_Pool::release(), and ACE_Shared_Memory_MM::remove().
00355 { 00356 ACE_TRACE ("ACE_Mem_Map::remove"); 00357 00358 ACE_OS::ftruncate (this->handle_, 0); 00359 this->close (); 00360 00361 if (this->filename_[0] != '\0') 00362 #if defined (__QNXNTO__) 00363 return ACE_OS::shm_unlink (this->filename_); 00364 #else 00365 return ACE_OS::unlink (this->filename_); 00366 #endif /* __QNXNTO__ */ 00367 00368 else 00369 return 0; 00370 } |
|
This function returns the number of bytes currently mapped in the file. Definition at line 92 of file Mem_Map.inl. References ACE_TRACE. Referenced by ACE_MMAP_Memory_Pool::acquire(), ACE_Shared_Memory_MM::get_segment_size(), ACE_MMAP_Memory_Pool::handle_signal(), and ACE_MMAP_Memory_Pool::init_acquire().
|
|
Sync bytes of the memory region to the backing store starting at . Definition at line 203 of file Mem_Map.inl. References ACE_TRACE, and ACE_OS::msync().
00204 { 00205 ACE_TRACE ("ACE_Mem_Map::sync"); 00206 return ACE_OS::msync (addr, len, flags); 00207 } |
|
Sync bytes of the memory region to the backing store starting at . If == -1 then sync the whole region. Definition at line 191 of file Mem_Map.inl. References ACE_TRACE, ACE_OS::msync(), and ssize_t. Referenced by ACE_MMAP_Memory_Pool::sync().
00192 { 00193 ACE_TRACE ("ACE_Mem_Map::sync"); 00194 return ACE_OS::msync (this->base_addr_, 00195 len < 0 ? this->length_ : len, 00196 flags); 00197 } |
|
Unmap the region starting at .
Definition at line 156 of file Mem_Map.inl. References ACE_TRACE, base_addr_, close_filemapping_handle(), ACE_OS::filesize(), ACE_OS::lseek(), ACE_OS::munmap(), ssize_t, and ACE_OS::write().
00157 { 00158 ACE_TRACE ("ACE_Mem_Map::unmap"); 00159 00160 this->close_filemapping_handle (); 00161 00162 #if defined (ACE_HAS_LYNXOS_BROKEN_MMAP) 00163 int writeback_result = 0; 00164 if (write_enabled_) 00165 { 00166 // Write back the contents of the shared memory object to the file. 00167 off_t const filesize = ACE_OS::filesize (handle_); 00168 writeback_result = 00169 ACE_OS::lseek (handle_, 0, 0) != -1 00170 && ACE_OS::write (handle_, 00171 base_addr_, 00172 filesize) == filesize ? 0 : -1; 00173 } 00174 #endif /* ACE_HAS_LYNXOS_BROKEN_MMAP */ 00175 00176 #if defined (ACE_HAS_LYNXOS_BROKEN_MMAP) 00177 return ACE_OS::munmap (addr, 00178 len < 0 ? this->length_ : len) 00179 | writeback_result; 00180 #else /* ! ACE_HAS_LYNXOS_BROKEN_MMAP */ 00181 return ACE_OS::munmap (addr, 00182 len < 0 ? this->length_ : len); 00183 #endif /* ! ACE_HAS_LYNXOS_BROKEN_MMAP */ 00184 } |
|
Unmap the region starting at .
Definition at line 118 of file Mem_Map.inl. References ACE_TRACE, base_addr_, close_filemapping_handle(), ACE_OS::filesize(), ACE_OS::lseek(), MAP_FAILED, ACE_OS::munmap(), ssize_t, and ACE_OS::write(). Referenced by ACE_Shared_Memory_MM::close(), close(), ACE_MMAP_Memory_Pool::map_file(), map_it(), ACE_Filecache_Object::release(), and ACE_Filecache_Object::~ACE_Filecache_Object().
00119 { 00120 ACE_TRACE ("ACE_Mem_Map::unmap"); 00121 00122 this->close_filemapping_handle (); 00123 00124 #if defined (ACE_HAS_LYNXOS_BROKEN_MMAP) 00125 int writeback_result = 0; 00126 if (write_enabled_) 00127 { 00128 // Write back the contents of the shared memory object to the 00129 // file. 00130 off_t const filesize = ACE_OS::filesize (handle_); 00131 writeback_result = 00132 ACE_OS::lseek (handle_, 0, 0) != -1 00133 && ACE_OS::write (handle_, 00134 base_addr_, 00135 (int) filesize) == filesize ? 0 : -1; 00136 } 00137 #endif /* ACE_HAS_LYNXOS_BROKEN_MMAP */ 00138 if (this->base_addr_ != MAP_FAILED) 00139 { 00140 int const result = ACE_OS::munmap (this->base_addr_, 00141 len < 0 ? this->length_ : len); 00142 this->base_addr_ = MAP_FAILED; 00143 return result; 00144 } 00145 else 00146 #if defined (ACE_HAS_LYNXOS_BROKEN_MMAP) 00147 return writeback_result; 00148 #else /* ! ACE_HAS_LYNXOS_BROKEN_MMAP */ 00149 return 0; 00150 #endif /* ! ACE_HAS_LYNXOS_BROKEN_MMAP */ 00151 } |
|
Declare the dynamic allocation hooks.
|
|
Base address of the memory-mapped file.
Definition at line 196 of file Mem_Map.h. Referenced by addr(), map(), map_it(), operator()(), and unmap(). |
|
Keeps track of whether we need to close the handle. This is set if we opened the file. Definition at line 217 of file Mem_Map.h. Referenced by close_handle(), and open(). |
|
HANDLE for the open mapping.
Definition at line 208 of file Mem_Map.h. Referenced by close_filemapping_handle(). |
|
Name of the file that is mapped.
|
|
HANDLE for the open file.
|
|
Length of the mapping.
|