#include <DEV_IO.h>
Inheritance diagram for ACE_DEV_IO:
I/O operations | |
Notes on common parameters:
<buf> is the buffer to write from or receive into. <len> is the number of bytes to transfer. The <timeout> parameter in the following methods indicates how long to blocking trying to transfer data. If <timeout> == 0, then the call behaves as a normal send/recv call, i.e., for blocking sockets, the call will block until action is possible; for non-blocking sockets, EWOULDBLOCK will be returned if no action is immediately possible. If <timeout> != 0, the call will wait until the relative time specified in *<timeout> elapses. The "_n()" I/O methods keep looping until all the data has been transferred. These methods also work for sockets in non-blocking mode i.e., they keep looping on EWOULDBLOCK. <timeout> is used to make sure we keep making progress, i.e., the same timeout value is used for every I/O operation in the loop and the timeout is not counted down. The return values for the "*_n()" methods match the return values from the non "_n()" methods and are specified as follows:
| |
typedef ACE_DEV_Addr | PEER_ADDR |
ssize_t | recv_n (void *buf, size_t n, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const |
ssize_t | send (const iovec iov[], size_t n) const |
Send iovecs via <writev>. | |
ssize_t | recv (iovec iov[], size_t n) const |
Recv iovecs via <readv>. | |
ssize_t | send (size_t n,...) const |
ssize_t | recv (size_t n,...) const |
ssize_t | send (const void *buf, size_t n, ACE_OVERLAPPED *overlapped) const |
Send <n> bytes via Win32 WriteFile using overlapped I/O. | |
ssize_t | recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const |
Recv <n> bytes via Win32 ReadFile using overlapped I/O. | |
void | dump (void) const |
Dump the state of an object. | |
int | get_local_addr (ACE_DEV_Addr &) const |
Return the local endpoint address. | |
int | get_remote_addr (ACE_DEV_Addr &) const |
ACE_ALLOC_HOOK_DECLARE | |
Declare the dynamic allocation hooks. | |
ACE_DEV_Addr | addr_ |
Address of device we are connected to. | |
Public Methods | |
ACE_DEV_IO (void) | |
Default constructor. | |
ssize_t | send (const void *buf, size_t n) const |
send upto <n> bytes in <buf>. | |
ssize_t | recv (void *buf, size_t n) const |
Recv upto <n> bytes in <buf>. | |
ssize_t | send_n (const void *buf, size_t n) const |
Send n bytes, keep trying until n are sent. | |
Friends | |
class | ACE_DEV_Connector |
|
|
|
Default constructor.
|
|
Dump the state of an object.
Reimplemented from ACE_DEV. |
|
Return the local endpoint address.
|
|
Return the address of the remotely connected peer (if there is one). |
|
Recv <n> bytes via Win32 ReadFile using overlapped I/O.
|
|
This is an interface to readv, that doesn't use the struct iovec explicitly. The ... can be passed as an arbitrary number of (char *ptr, int len) tuples. However, the count N is the *total* number of trailing arguments, *not* a couple of the number of tuple pairs! |
|
Recv iovecs via <readv>.
|
|
Recv upto <n> bytes in <buf>.
|
|
|
|
Send <n> bytes via Win32 WriteFile using overlapped I/O.
|
|
Send N char *ptrs and int lengths. Note that the char *'s precede the ints (basically, an varargs version of writev). The count N is the *total* number of trailing arguments, *not* a couple of the number of tuple pairs! |
|
Send iovecs via <writev>.
|
|
send upto <n> bytes in <buf>.
|
|
Send n bytes, keep trying until n are sent.
|
|
|
|
Declare the dynamic allocation hooks.
Reimplemented from ACE_DEV. |
|
Address of device we are connected to.
|