summaryrefslogtreecommitdiff
path: root/ace/MEM_IO.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/MEM_IO.h')
-rw-r--r--ace/MEM_IO.h167
1 files changed, 88 insertions, 79 deletions
diff --git a/ace/MEM_IO.h b/ace/MEM_IO.h
index 445cdfc70c7..9dcecaf4f5e 100644
--- a/ace/MEM_IO.h
+++ b/ace/MEM_IO.h
@@ -1,18 +1,15 @@
/* -*- C++ -*- */
-// $Id$
-
-// ============================================================================
-//
-// = LIBRARY
-// ace
-//
-// = FILENAME
-// MEM_IO.h
-//
-// = AUTHOR
-// Nanbor Wang <nanbor@cs.wustl.edu>
-//
-// ============================================================================
+
+//=============================================================================
+/**
+ * @file MEM_IO.h
+ *
+ * $Id$
+ *
+ * @author Nanbor Wang <nanbor@cs.wustl.edu>
+ */
+//=============================================================================
+
#ifndef ACE_MEM_IO_H
#define ACE_MEM_IO_H
@@ -27,132 +24,144 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+/**
+ * @class ACE_MEM_IO
+ *
+ * @brief 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.
+ */
class ACE_Export ACE_MEM_IO : public ACE_SOCK, public ACE_MEM_SAP
{
- // = TITLE
- // 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.
public:
// = Initialization and termination methods.
+ /// Constructor.
ACE_MEM_IO (void);
- // Constructor.
+ /// Destructor.
~ACE_MEM_IO (void);
- // Destructor.
+ /// Send an <n> byte buffer to the other process using shm_malloc_
+ /// connected thru the socket.
ssize_t send (const void *buf,
size_t n,
int flags) ;
- // Send an <n> byte buffer to the other process using shm_malloc_
- // connected thru the socket.
+ /// Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
ssize_t recv (void *buf,
size_t n,
int flags) ;
- // Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
+ /// Send an <n> byte buffer to the other process using shm_malloc_
+ /// connected thru the socket.
ssize_t send (const void *buf,
size_t n) ;
- // Send an <n> byte buffer to the other process using shm_malloc_
- // connected thru the socket.
+ /// Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
ssize_t recv (void *buf,
size_t n) ;
- // Recv an <n> byte buffer from the shm_malloc_ thru connected socket.
+ /**
+ * Wait to to <timeout> amount of time to send up to <n> bytes into
+ * <buf> from <handle> (uses the <send> call). If <send> times out
+ * a -1 is returned with <errno == ETIME>. If it succeeds the
+ * number of bytes sent is returned.
+ */
ssize_t send (const void *buf,
size_t n,
int flags,
const ACE_Time_Value *timeout);
- // Wait to to <timeout> amount of time to send up to <n> bytes into
- // <buf> from <handle> (uses the <send> call). If <send> times out
- // a -1 is returned with <errno == ETIME>. If it succeeds the
- // number of bytes sent is returned.
+ /**
+ * Wait up to <timeout> amount of time to receive up to <n> bytes
+ * into <buf> from <handle> (uses the <recv> call). If <recv> times
+ * out a -1 is returned with <errno == ETIME>. If it succeeds the
+ * number of bytes received is returned.
+ */
ssize_t recv (void *buf,
size_t n,
int flags,
const ACE_Time_Value *timeout);
- // Wait up to <timeout> amount of time to receive up to <n> bytes
- // into <buf> from <handle> (uses the <recv> call). If <recv> times
- // out a -1 is returned with <errno == ETIME>. If it succeeds the
- // number of bytes received is returned.
+ /**
+ * Wait to to <timeout> amount of time to send up to <n> bytes into
+ * <buf> from <handle> (uses the <send> call). If <send> times out
+ * a -1 is returned with <errno == ETIME>. If it succeeds the
+ * number of bytes sent is returned.
+ */
ssize_t send (const void *buf,
size_t n,
const ACE_Time_Value *timeout);
- // Wait to to <timeout> amount of time to send up to <n> bytes into
- // <buf> from <handle> (uses the <send> call). If <send> times out
- // a -1 is returned with <errno == ETIME>. If it succeeds the
- // number of bytes sent is returned.
+ /**
+ * Wait up to <timeout> amount of time to receive up to <n> bytes
+ * into <buf> from <handle> (uses the <recv> call). If <recv> times
+ * out a -1 is returned with <errno == ETIME>. If it succeeds the
+ * number of bytes received is returned.
+ */
ssize_t recv (void *buf,
size_t n,
const ACE_Time_Value *timeout);
- // Wait up to <timeout> amount of time to receive up to <n> bytes
- // into <buf> from <handle> (uses the <recv> call). If <recv> times
- // out a -1 is returned with <errno == ETIME>. If it succeeds the
- // number of bytes received is returned.
+ /**
+ * Wait to to <timeout> amount of time to send the <message_block>.
+ * If <send> times out a -1 is returned with <errno == ETIME>. If
+ * it succeeds the number of bytes sent is returned.
+ */
ssize_t send (const ACE_Message_Block *message_block,
const ACE_Time_Value *timeout);
- // Wait to to <timeout> amount of time to send the <message_block>.
- // If <send> times out a -1 is returned with <errno == ETIME>. If
- // it succeeds the number of bytes sent is returned.
+ /// Dump the state of an object.
void dump (void) const;
- // Dump the state of an object.
+ /// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;
- // Declare the dynamic allocation hooks.
+ /// Return the local endpoint port number. Returns 0 if successful,
+ /// else -1.
/* int get_local_port (u_short &) const;
- // Return the local endpoint port number. Returns 0 if successful,
- // else -1.
+ /// Return the port number of the remotely connected peer (if there
+ /// is one). Returns 0 if successful, else -1.
int get_remote_port (u_short &) const;
- // Return the port number of the remotely connected peer (if there
- // is one). Returns 0 if successful, else -1.
*/
protected:
+ /**
+ * 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.
+ */
ssize_t fetch_recv_buf (int flags, const ACE_Time_Value *timeout = 0);
- // 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.
private:
+ /// Internal pointer for support recv/send.
void *recv_buffer_;
- // Internal pointer for support recv/send.
+ /// Record the current total buffer size of <recv_buffer_>.
ssize_t buf_size_;
- // Record the current total buffer size of <recv_buffer_>.
+ /// Record the current read pointer location in <recv_buffer_>.
ssize_t cur_offset_;
- // Record the current read pointer location in <recv_buffer_>.
};
#if !defined (ACE_LACKS_INLINE_FUNCTIONS)