#include <Memory_Pool.h>
Inheritance diagram for ACE_Shared_Memory_Pool:
Public Types | |
typedef ACE_Shared_Memory_Pool_Options | OPTIONS |
Public Methods | |
ACE_Shared_Memory_Pool (const ACE_TCHAR *backing_store_name=0, const OPTIONS *options=0) | |
Initialize the pool. | |
virtual | ~ACE_Shared_Memory_Pool (void) |
virtual void * | init_acquire (size_t nbytes, size_t &rounded_bytes, int &first_time) |
Ask system for initial chunk of local memory. | |
virtual void * | acquire (size_t nbytes, size_t &rounded_bytes) |
virtual int | release (int destroy=1) |
Instruct the memory pool to release all of its resources. | |
virtual int | sync (ssize_t len=-1, int flags=MS_SYNC) |
virtual int | sync (void *addr, size_t len, int flags=MS_SYNC) |
Sync the memory region to the backing store starting at <addr_>. | |
virtual int | protect (ssize_t len=-1, int prot=PROT_RDWR) |
virtual int | protect (void *addr, size_t len, int prot=PROT_RDWR) |
virtual void * | base_addr (void) const |
virtual void | dump (void) const |
Dump the state of an object. | |
Public Attributes | |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
Protected Methods | |
virtual size_t | round_up (size_t nbytes) |
virtual int | commit_backing_store_name (size_t rounded_bytes, off_t &offset) |
virtual int | find_seg (const void *const searchPtr, off_t &offset, size_t &counter) |
Find the segment that contains the searchPtr. | |
virtual int | in_use (off_t &offset, size_t &counter) |
Determine how much memory is currently in use. | |
virtual int | handle_signal (int signum, siginfo_t *, ucontext_t *) |
Protected Attributes | |
void * | base_addr_ |
size_t | file_perms_ |
File permissions to use when creating/opening a segment. | |
size_t | max_segments_ |
Number of shared memory segments in the <SHM_TABLE> table. | |
off_t | minimum_bytes_ |
What the minimim bytes of the initial segment should be. | |
size_t | segment_size_ |
Shared memory segment size. | |
key_t | base_shm_key_ |
Base shared memory key for the segment. | |
ACE_Sig_Handler | signal_handler_ |
Handles SIGSEGV. |
|
|
|
Initialize the pool.
|
|
|
|
Acquire at least NBYTES from the memory pool. ROUNDED_BYTES is the actual number of bytes allocated. Also acquires an internal semaphore that ensures proper serialization of Memory_Pool initialization across processes. |
|
Return the base address of this memory pool, 0 if base_addr never changes. |
|
Commits a new shared memory segment if necessary after an <acquire> or a signal. <offset> is set to the new offset into the backing store. |
|
Dump the state of an object.
|
|
Find the segment that contains the searchPtr.
|
|
Handle SIGSEGV and SIGBUS signals to remap shared memory properly. Reimplemented from ACE_Event_Handler. |
|
Determine how much memory is currently in use.
|
|
Ask system for initial chunk of local memory.
|
|
Change the protection of the pages of the mapped region to <prot> starting at <addr> up to <len> bytes. |
|
Change the protection of the pages of the mapped region to <prot> starting at <this->base_addr_> up to <len> bytes. If <len> == -1 then change protection of all pages in the mapped region. |
|
Instruct the memory pool to release all of its resources.
|
|
Implement the algorithm for rounding up the request to an appropriate chunksize. |
|
Sync the memory region to the backing store starting at <addr_>.
|
|
Sync the memory region to the backing store starting at <this->base_addr_>. |
|
Declare the dynamic allocation hooks.
|
|
Base address of the shared memory segment. If this has the value of 0 then the OS is free to select any address, otherwise this value is what the OS must try to use to map the shared memory segment. |
|
Base shared memory key for the segment.
|
|
File permissions to use when creating/opening a segment.
|
|
Number of shared memory segments in the <SHM_TABLE> table.
|
|
What the minimim bytes of the initial segment should be.
|
|
Shared memory segment size.
|
|
Handles SIGSEGV.
|