ACE  6.1.9
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
ACE_MEM_SAP Class Referenceabstract

Defines the methods of shared memory management for shared memory transport. More...

#include <MEM_SAP.h>

Inheritance diagram for ACE_MEM_SAP:
Inheritance graph
[legend]
Collaboration diagram for ACE_MEM_SAP:
Collaboration graph
[legend]

Public Types

typedef ACE_Malloc_T
< ACE_MMAP_MEMORY_POOL,
ACE_Process_Mutex,
ACE_PI_Control_Block
MALLOC_TYPE
 
typedef
ACE_MMAP_Memory_Pool_Options 
MALLOC_OPTIONS
 

Public Member Functions

virtual ~ACE_MEM_SAP (void)
 Destructor. More...
 
virtual int init (ACE_HANDLE handle, const ACE_TCHAR *name, MALLOC_OPTIONS *options)=0
 
virtual int fini ()
 
virtual ssize_t recv_buf (ACE_MEM_SAP_Node *&buf, int flags, const ACE_Time_Value *timeout)=0
 
virtual ssize_t send_buf (ACE_MEM_SAP_Node *buf, int flags, const ACE_Time_Value *timeout)=0
 
ACE_MEM_SAP_Nodeacquire_buffer (const ssize_t size)
 
int release_buffer (ACE_MEM_SAP_Node *buf)
 
void dump (void) const
 Dump the state of an object. More...
 

Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks. More...
 

Protected Member Functions

int create_shm_malloc (const ACE_TCHAR *name, MALLOC_OPTIONS *options)
 
int close_shm_malloc (void)
 
 ACE_MEM_SAP (void)
 Constructor. Prevent this class from being instantiated. More...
 

Protected Attributes

ACE_HANDLE handle_
 
MALLOC_TYPEshm_malloc_
 Data exchange channel. More...
 

Detailed Description

Defines the methods of shared memory management for shared memory transport.

Member Typedef Documentation

Constructor & Destructor Documentation

ACE_MEM_SAP::~ACE_MEM_SAP ( void  )
virtual

Destructor.

ACE_MEM_SAP::ACE_MEM_SAP ( void  )
protected

Constructor. Prevent this class from being instantiated.

Member Function Documentation

ACE_MEM_SAP_Node * ACE_MEM_SAP::acquire_buffer ( const ssize_t  size)
inline

request a buffer of size size. Return 0 if the <shm_malloc_> is not initialized.

int ACE_MEM_SAP::close_shm_malloc ( void  )
protected

Close down the share memory pool. Clean up the mmap file if we are the last one using it.

int ACE_MEM_SAP::create_shm_malloc ( const ACE_TCHAR name,
MALLOC_OPTIONS options 
)
protected

Create a new shm_malloc object. Return 0 if succeed and -1 otherwise. This method should only be called from an acceptor class that wants to create a new memory pool for inter process communication.

void ACE_MEM_SAP::dump ( void  ) const

Dump the state of an object.

int ACE_MEM_SAP::fini ( void  )
virtual

Finalizing the MEM_SAP object. This method doesn't invoke the <remove> method.

virtual int ACE_MEM_SAP::init ( ACE_HANDLE  handle,
const ACE_TCHAR name,
MALLOC_OPTIONS options 
)
pure virtual

Initialize the MEM_SAP object.

Implemented in ACE_MT_MEM_IO, and ACE_Reactive_MEM_IO.

virtual ssize_t ACE_MEM_SAP::recv_buf ( ACE_MEM_SAP_Node *&  buf,
int  flags,
const ACE_Time_Value timeout 
)
pure virtual

Fetch location of next available data into <recv_buffer_>. As this operation read the address of the data off the socket using ACE::recv, timeout only applies to ACE::recv.

Implemented in ACE_MT_MEM_IO, and ACE_Reactive_MEM_IO.

int ACE_MEM_SAP::release_buffer ( ACE_MEM_SAP_Node buf)
inline

release a buffer pointed by buf. Return -1 if the <shm_malloc_> is not initialized.

virtual ssize_t ACE_MEM_SAP::send_buf ( ACE_MEM_SAP_Node buf,
int  flags,
const ACE_Time_Value timeout 
)
pure virtual

Wait to to timeout amount of time to send buf. If <send> times out a -1 is returned with errno == ETIME. If it succeeds the number of bytes sent is returned.

Implemented in ACE_MT_MEM_IO, and ACE_Reactive_MEM_IO.

Member Data Documentation

ACE_MEM_SAP::ACE_ALLOC_HOOK_DECLARE

Declare the dynamic allocation hooks.

ACE_HANDLE ACE_MEM_SAP::handle_
protected
MALLOC_TYPE* ACE_MEM_SAP::shm_malloc_
protected

Data exchange channel.


The documentation for this class was generated from the following files: