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

 ACE_CREATE = IPC_CREAT
 ACE_OPEN = 0
enum  { ACE_CREATE = IPC_CREAT, ACE_OPEN = 0 }

Public Member Functions

 ACE_Shared_Memory_SV (void)
 ACE_Shared_Memory_SV (key_t id, size_t 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, size_t 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 size bytes.
virtual int free (void *p)
 Free a chuck of memory allocated by <ACE_Shared_Memory_SV::malloc>.
virtual size_t 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

Enumerator:
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,
size_t  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, ACE_SV_Shared_Memory::detach(), and shared_memory_.

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, ACE_SV_Shared_Memory::get_id(), and shared_memory_.

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

size_t 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, ACE_SV_Shared_Memory::get_segment_size(), and shared_memory_.

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 this->shared_memory_.get_segment_size ();
00047 }

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

Create a new chuck of memory containing size bytes.

Implements ACE_Shared_Memory.

Definition at line 68 of file Shared_Memory_SV.cpp.

References ACE_TRACE, ACE_SV_Shared_Memory::get_segment_ptr(), and shared_memory_.

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,
size_t  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, ACE_SV_Shared_Memory::open_and_attach(), and shared_memory_.

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, ACE_SV_Shared_Memory::remove(), and shared_memory_.

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.

Referenced by close(), get_id(), get_segment_size(), malloc(), open(), and remove().


The documentation for this class was generated from the following files:
Generated on Tue Feb 2 17:35:36 2010 for ACE by  doxygen 1.4.7