ACE_Shared_Memory_SV Class Reference

Shared memory wrapper based on System V shared memory. More...

#include <Shared_Memory_SV.h>

Inheritance diagram for ACE_Shared_Memory_SV:

Inheritance graph
[legend]
Collaboration diagram for ACE_Shared_Memory_SV:

Collaboration graph
[legend]
List of all members.

Public Types

enum  { ACE_CREATE = IPC_CREAT, ACE_OPEN = 0 }

Public Member Functions

 ACE_Shared_Memory_SV (void)
 ACE_Shared_Memory_SV (key_t id, int length, int create=ACE_Shared_Memory_SV::ACE_OPEN, int perms=ACE_DEFAULT_FILE_PERMS, void *addr=0, int flags=0)
int open (key_t id, int length, int create=ACE_Shared_Memory_SV::ACE_OPEN, int perms=ACE_DEFAULT_FILE_PERMS, void *addr=0, int flags=0)
virtual int close (void)
 Close down the shared memory segment.

virtual int remove (void)
 Remove the underlying shared memory segment.

virtual void * malloc (size_t=0)
 Create a new chuck of memory containing bytes.

virtual int free (void *p)
 Free a chuck of memory allocated by <ACE_Shared_Memory_SV::malloc>.

virtual int get_segment_size (void) const
 Return the size of the shared memory segment.

virtual ACE_HANDLE get_id (void) const
void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Private Attributes

ACE_SV_Shared_Memory shared_memory_

Detailed Description

Shared memory wrapper based on System V shared memory.

This class provides a very simple-minded shared memory manager. We strongly recommend that you do NOT use this class. Instead, please use ACE_Malloc, which has much more powerful capabilities.

Definition at line 37 of file Shared_Memory_SV.h.


Member Enumeration Documentation

anonymous enum
 

Enumeration values:
ACE_CREATE 
ACE_OPEN 

Definition at line 40 of file Shared_Memory_SV.h.

00041     {
00042       ACE_CREATE = IPC_CREAT,
00043       ACE_OPEN = 0
00044     };


Constructor & Destructor Documentation

ACE_INLINE ACE_Shared_Memory_SV::ACE_Shared_Memory_SV void   ) 
 

Definition at line 25 of file Shared_Memory_SV.inl.

References ACE_TRACE.

00026 {
00027   ACE_TRACE ("ACE_Shared_Memory_SV::ACE_Shared_Memory_SV");
00028 }

ACE_Shared_Memory_SV::ACE_Shared_Memory_SV key_t  id,
int  length,
int  create = ACE_Shared_Memory_SV::ACE_OPEN,
int  perms = ACE_DEFAULT_FILE_PERMS,
void *  addr = 0,
int  flags = 0
 

Definition at line 27 of file Shared_Memory_SV.cpp.

References ACE_TRACE.

00033   : shared_memory_ (id, length, create, perms, addr, flags)
00034 {
00035   ACE_TRACE ("ACE_Shared_Memory_SV::ACE_Shared_Memory_SV");
00036 }


Member Function Documentation

int ACE_Shared_Memory_SV::close void   )  [virtual]
 

Close down the shared memory segment.

Implements ACE_Shared_Memory.

Definition at line 61 of file Shared_Memory_SV.cpp.

References ACE_TRACE, and ACE_SV_Shared_Memory::detach().

00062 {
00063   ACE_TRACE ("ACE_Shared_Memory_SV::close");
00064   return shared_memory_.detach ();
00065 }

ACE_BEGIN_VERSIONED_NAMESPACE_DECL void ACE_Shared_Memory_SV::dump void   )  const
 

Dump the state of an object.

Definition at line 20 of file Shared_Memory_SV.cpp.

References ACE_TRACE.

00021 {
00022 #if defined (ACE_HAS_DUMP)
00023   ACE_TRACE ("ACE_Shared_Memory_SV::dump");
00024 #endif /* ACE_HAS_DUMP */
00025 }

int ACE_Shared_Memory_SV::free void *  p  )  [virtual]
 

Free a chuck of memory allocated by <ACE_Shared_Memory_SV::malloc>.

Implements ACE_Shared_Memory.

Definition at line 82 of file Shared_Memory_SV.cpp.

References ACE_TRACE.

00083 {
00084   ACE_TRACE ("ACE_Shared_Memory_SV::free");
00085   return p != 0;
00086 }

ACE_HANDLE ACE_Shared_Memory_SV::get_id void   )  const [virtual]
 

Return the ID of the shared memory segment (i.e., a System V shared memory internal id).

Implements ACE_Shared_Memory.

Definition at line 75 of file Shared_Memory_SV.cpp.

References ACE_TRACE, and ACE_SV_Shared_Memory::get_id().

00076 {
00077   ACE_TRACE ("ACE_Shared_Memory_SV::get_id");
00078   return this->shared_memory_.get_id ();
00079 }

int ACE_Shared_Memory_SV::get_segment_size void   )  const [virtual]
 

Return the size of the shared memory segment.

Implements ACE_Shared_Memory.

Definition at line 41 of file Shared_Memory_SV.cpp.

References ACE_TRACE, and ACE_SV_Shared_Memory::get_segment_size().

00042 {
00043   ACE_TRACE ("ACE_Shared_Memory_SV::get_segment_size");
00044   // This cast is ok since the 'open' method for this class allows only
00045   // an 'int' size. Therefore, this case should not lose information.
00046   return static_cast<int> (this->shared_memory_.get_segment_size ());
00047 }

void * ACE_Shared_Memory_SV::malloc size_t  = 0  )  [virtual]
 

Create a new chuck of memory containing bytes.

Implements ACE_Shared_Memory.

Definition at line 68 of file Shared_Memory_SV.cpp.

References ACE_TRACE, and ACE_SV_Shared_Memory::get_segment_ptr().

00069 {
00070   ACE_TRACE ("ACE_Shared_Memory_SV::malloc");
00071   return this->shared_memory_.get_segment_ptr ();
00072 }

ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE int ACE_Shared_Memory_SV::open key_t  id,
int  length,
int  create = ACE_Shared_Memory_SV::ACE_OPEN,
int  perms = ACE_DEFAULT_FILE_PERMS,
void *  addr = 0,
int  flags = 0
 

Definition at line 10 of file Shared_Memory_SV.inl.

References ACE_TRACE, and ACE_SV_Shared_Memory::open_and_attach().

00016 {
00017   ACE_TRACE ("ACE_Shared_Memory_SV::open");
00018   return shared_memory_.open_and_attach (id, length, create,
00019                                          perms, addr, flags);
00020 }

int ACE_Shared_Memory_SV::remove void   )  [virtual]
 

Remove the underlying shared memory segment.

Implements ACE_Shared_Memory.

Definition at line 52 of file Shared_Memory_SV.cpp.

References ACE_TRACE, and ACE_SV_Shared_Memory::remove().

00053 {
00054   ACE_TRACE ("ACE_Shared_Memory_SV::remove");
00055   return shared_memory_.remove ();
00056 }


Member Data Documentation

ACE_Shared_Memory_SV::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Definition at line 86 of file Shared_Memory_SV.h.

ACE_SV_Shared_Memory ACE_Shared_Memory_SV::shared_memory_ [private]
 

This version is implemented with System V shared memory segments.

Definition at line 91 of file Shared_Memory_SV.h.


The documentation for this class was generated from the following files:
Generated on Thu Nov 9 11:29:35 2006 for ACE by doxygen 1.3.6