Defines the methods for the ACE shared memory 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...
#include <MEM_IO.h>
|
| ACE_MEM_IO () |
| Constructor.
|
|
| ~ACE_MEM_IO () |
| Destructor.
|
|
int | init (const ACE_TCHAR *name, ACE_MEM_IO::Signal_Strategy type=ACE_MEM_IO::Reactive, ACE_MEM_SAP::MALLOC_OPTIONS *options=0) |
|
int | fini () |
|
ssize_t | send (const void *buf, size_t n, int flags) |
|
ssize_t | recv (void *buf, size_t n, int flags) |
| Recv an n byte buffer from the shm_malloc_ thru connected socket.
|
|
ssize_t | send (const void *buf, size_t n) |
|
ssize_t | recv (void *buf, size_t n) |
| Recv an n byte buffer from the shm_malloc_ thru connected socket.
|
|
ssize_t | send (const void *buf, size_t n, const ACE_Time_Value *timeout) |
|
ssize_t | send (const void *buf, size_t n, int flags, const ACE_Time_Value *timeout) |
|
ssize_t | send (const ACE_Message_Block *message_block, const ACE_Time_Value *timeout) |
|
ssize_t | recv (void *buf, size_t n, const ACE_Time_Value *timeout) |
|
ssize_t | recv (void *buf, size_t n, int flags, const ACE_Time_Value *timeout) |
|
void | dump () const |
| Dump the state of an object.
|
|
int | set_option (int level, int option, void *optval, int optlen) const |
| Wrapper around the setsockopt system call.
|
|
int | get_option (int level, int option, void *optval, int *optlen) const |
| Wrapper around the getsockopt system call.
|
|
int | close () |
|
int | get_local_addr (ACE_Addr &) const |
|
int | get_remote_addr (ACE_Addr &) const |
|
void | dump () const |
| Dump the state of an object.
|
|
int | open (int type, int protocol_family, int protocol, int reuse_addr) |
| Wrapper around the BSD-style socket system call (no QoS).
|
|
int | open (int type, int protocol_family, int protocol, ACE_Protocol_Info *protocolinfo, ACE_SOCK_GROUP g, u_long flags, int reuse_addr) |
| Wrapper around the QoS-enabled WSASocket function.
|
|
int | control (int cmd, void *) const |
| Interface for <ioctl>.
|
|
int | enable (int value) const |
|
int | disable (int value) const |
|
ACE_HANDLE | get_handle () const |
| Get the underlying handle.
|
|
void | set_handle (ACE_HANDLE handle) |
| Set the underlying handle.
|
|
void | dump () const |
| Dump the state of an object.
|
|
Defines the methods for the ACE shared memory 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.
◆ Signal_Strategy
◆ ACE_MEM_IO()
ACE_MEM_IO::ACE_MEM_IO |
( |
| ) |
|
|
inline |
◆ ~ACE_MEM_IO()
ACE_MEM_IO::~ACE_MEM_IO |
( |
| ) |
|
|
inline |
◆ dump()
void ACE_MEM_IO::dump |
( |
| ) |
const |
Dump the state of an object.
◆ fetch_recv_buf()
Return the local endpoint port number. Returns 0 if successful, else -1.
◆ fini()
Finalizing the MEM_IO object. This method doesn't invoke the <remove> method.
◆ init()
Initialize the MEM_SAP object.
◆ recv() [1/4]
Recv an n byte buffer from the shm_malloc_ thru connected socket.
◆ recv() [2/4]
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.
◆ recv() [3/4]
Recv an n byte buffer from the shm_malloc_ thru connected socket.
◆ recv() [4/4]
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.
◆ send() [1/5]
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.
◆ send() [2/5]
Send an n byte buffer to the other process using shm_malloc_ connected thru the socket.
◆ send() [3/5]
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.
◆ send() [4/5]
Send an n byte buffer to the other process using shm_malloc_ connected thru the socket.
◆ send() [5/5]
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.
◆ ACE_ALLOC_HOOK_DECLARE
ACE_MEM_IO::ACE_ALLOC_HOOK_DECLARE |
Declare the dynamic allocation hooks.
◆ buf_size_
Record the current total buffer size of <recv_buffer_>.
◆ cur_offset_
Record the current read pointer location in <recv_buffer_>.
◆ deliver_strategy_
Actual deliverying mechanism.
◆ recv_buffer_
Internal pointer for support recv/send.
The documentation for this class was generated from the following files: