# MEM_IO.h File Reference

`#include "ace/ACE_export.h"`
`#include "ace/SOCK.h"`
`#include "ace/MEM_SAP.h"`
`#include "ace/Message_Block.h"`
`#include "ace/Process_Semaphore.h"`
`#include "ace/Process_Mutex.h"`
`#include "ace/MEM_IO.inl"`

Include dependency graph for MEM_IO.h:

This graph shows which files directly or indirectly include this file:

## Classes

class | ACE_Reactive_MEM_IO
class | ACE_MT_MEM_IO
struct | ACE_MT_MEM_IO::MQ_Struct
class | ACE_MT_MEM_IO::Simple_Queue
struct | ACE_MT_MEM_IO::Channel
class | ACE_MEM_IO

Defines the methods for the ACE shared memeory wrapper I/O routines (e.g., send/recv). The shared memory transport uses ACE_SOCK_* class to implement the signaling mechanism so we can easily use the new mechanism with the Reactor pattern (which uses select under the hood.) ACE_MEM_Acceptor and ACE_MEM_Connector are used to establish connections. When a connection is established, ACE_MEM_Acceptor creates the MMAP file for data exchange and sends the location of the file (complete path name) to ACE_MEM_Connector thru the socket. ACE_MEM_Connector then reads the location of the file off the socket and opens up the same MMAP file. ACE_MEM_Stream at each side then contains a reference to the ACE_Mallo object using the same MMAP file. When sending information using methods provided in this class, ACE_MEM_IO requests a chunk of memory from the MALLOC_TYPE object, copy the data into the shared memory and send the memory offset (from the start of the ACE_Malloc) across the socket. This action also servers as a signal to the other end. The receiving side then reverses the procedures and copies the information into user buffer. More...

## Detailed Description

Id
  MEM_IO.h,v 4.25 2006/02/10 10:01:27 jwillemsen Exp

Author:
  Nanbor Wang <nanbor@cs.wustl.edu>