Public Types | Public Member Functions | Public Attributes | Private Member Functions

ACE_MMAP_Memory_Pool_Options Class Reference

Helper class for MMAP Memory Pool constructor options. More...

#include <MMAP_Memory_Pool.h>

List of all members.

Public Types

enum  { FIRSTCALL_FIXED = 0, ALWAYS_FIXED = 1, NEVER_FIXED = 2 }

Public Member Functions

 ACE_MMAP_Memory_Pool_Options (const void *base_addr=ACE_DEFAULT_BASE_ADDR, int use_fixed_addr=ALWAYS_FIXED, bool write_each_page=true, size_t minimum_bytes=0, u_int flags=0, bool guess_on_fault=true, LPSECURITY_ATTRIBUTES sa=0, mode_t file_mode=ACE_DEFAULT_FILE_PERMS, bool unique_=false, bool install_signal_handler=true)
 Constructor.

Public Attributes

const void * base_addr_
 Base address of the memory-mapped backing store.
int use_fixed_addr_
bool write_each_page_
size_t minimum_bytes_
 What the minimim bytes of the initial segment should be.
u_int flags_
 Any special flags that need to be used for mmap.
bool guess_on_fault_
LPSECURITY_ATTRIBUTES sa_
 Pointer to a security attributes object. Only used on NT.
mode_t file_mode_
 File mode for mmaped file, if it is created.
bool unique_
 Do we want an unique backing store name?
bool install_signal_handler_
 Should we install a signal handler.

Private Member Functions

 ACE_MMAP_Memory_Pool_Options (const ACE_MMAP_Memory_Pool_Options &)
ACE_MMAP_Memory_Pool_Optionsoperator= (const ACE_MMAP_Memory_Pool_Options &)

Detailed Description

Helper class for MMAP Memory Pool constructor options.

This should be a nested class, but that breaks too many compilers.

Definition at line 40 of file MMAP_Memory_Pool.h.


Member Enumeration Documentation

anonymous enum
Enumerator:
FIRSTCALL_FIXED 

The base address from the first call to mmap will be used for subsequent calls to mmap.

ALWAYS_FIXED 

The base address specified in base_addr will be used in all calls to mmap.

NEVER_FIXED 

The base address will be selected by the OS for each call to mmap. Caution should be used with this mode since a call that requires the backing store to grow may change pointers that are cached by the application.

Definition at line 43 of file MMAP_Memory_Pool.h.

  {
    /**
     * The base address from the first call to mmap will be used for subsequent
     * calls to mmap.
     */
    FIRSTCALL_FIXED = 0,

    /**
     * The base address specified in base_addr will be used in all calls to
     * mmap.
     */
    ALWAYS_FIXED = 1,

    /**
     * The base address will be selected by the OS for each call to mmap.
     * Caution should be used with this mode since a call that requires the
     * backing store to grow may change pointers that are cached by the
     * application.
     */
    NEVER_FIXED = 2
  };


Constructor & Destructor Documentation

ACE_MMAP_Memory_Pool_Options::ACE_MMAP_Memory_Pool_Options ( const void *  base_addr = ACE_DEFAULT_BASE_ADDR,
int  use_fixed_addr = ALWAYS_FIXED,
bool  write_each_page = true,
size_t  minimum_bytes = 0,
u_int  flags = 0,
bool  guess_on_fault = true,
LPSECURITY_ATTRIBUTES  sa = 0,
mode_t  file_mode = ACE_DEFAULT_FILE_PERMS,
bool  unique_ = false,
bool  install_signal_handler = true 
)

Constructor.

Definition at line 459 of file MMAP_Memory_Pool.cpp.

  : base_addr_ (base_addr),
    use_fixed_addr_ (use_fixed_addr),
    write_each_page_ (write_each_page),
    minimum_bytes_ (minimum_bytes),
    flags_ (flags),
    guess_on_fault_ (guess_on_fault),
    sa_ (sa),
    file_mode_ (file_mode),
    unique_ (unique),
    install_signal_handler_ (install_signal_handler)
{
  ACE_TRACE ("ACE_MMAP_Memory_Pool_Options::ACE_MMAP_Memory_Pool_Options");
  // for backwards compatability
  if (base_addr_ == 0 && use_fixed_addr_ == ALWAYS_FIXED)
    use_fixed_addr_ = FIRSTCALL_FIXED;
}

ACE_MMAP_Memory_Pool_Options::ACE_MMAP_Memory_Pool_Options ( const ACE_MMAP_Memory_Pool_Options  )  [private]

Member Function Documentation

ACE_MMAP_Memory_Pool_Options& ACE_MMAP_Memory_Pool_Options::operator= ( const ACE_MMAP_Memory_Pool_Options  )  [private]

Member Data Documentation

Base address of the memory-mapped backing store.

Definition at line 79 of file MMAP_Memory_Pool.h.

File mode for mmaped file, if it is created.

Definition at line 116 of file MMAP_Memory_Pool.h.

Any special flags that need to be used for mmap.

Definition at line 103 of file MMAP_Memory_Pool.h.

Try to remap without knowing the faulting address. This parameter is ignored on platforms that know the faulting address (UNIX with SI_ADDR and Win32).

Definition at line 110 of file MMAP_Memory_Pool.h.

Should we install a signal handler.

Definition at line 122 of file MMAP_Memory_Pool.h.

What the minimim bytes of the initial segment should be.

Definition at line 100 of file MMAP_Memory_Pool.h.

LPSECURITY_ATTRIBUTES ACE_MMAP_Memory_Pool_Options::sa_

Pointer to a security attributes object. Only used on NT.

Definition at line 113 of file MMAP_Memory_Pool.h.

Do we want an unique backing store name?

Definition at line 119 of file MMAP_Memory_Pool.h.

Determines whether we set base_addr_ or if mmap(2) selects it FIRSTCALL_FIXED The base address from the first call to mmap will be used for subsequent calls to mmap ALWAYS_FIXED The base address specified in base_addr will be used in all calls to mmap. NEVER_FIXED The base address will be selected by the OS for each call to mmap. Caution should be used with this mode since a call that requires the backing store to grow may change pointers that are cached by the application.

Definition at line 93 of file MMAP_Memory_Pool.h.

Should each page be written eagerly to avoid surprises later on?

Definition at line 97 of file MMAP_Memory_Pool.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines