ACE_DEV_IO Class ReferenceRead/Write operations on Devices.
More...
#include <DEV_IO.h>
List of all members.
|
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:
- On complete transfer, the number of bytes transferred is returned.
- On timeout, -1 is returned, errno == ETIME.
- On error, -1 is returned, errno is set to appropriate error.
- On EOF, 0 is returned, errno is irrelevant.
On partial transfers, i.e., if any data is transferred before timeout/error/EOF, bytes_transferred will contain the number of bytes transferred.
|
| ACE_ALLOC_HOOK_DECLARE |
| Declare the dynamic allocation hooks.
|
typedef ACE_DEV_Addr | PEER_ADDR |
| Declare the dynamic allocation hooks.
|
ACE_DEV_Addr | addr_ |
| Address of device we are connected to.
|
ssize_t | recv_n (void *buf, size_t n, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const |
| Declare the dynamic allocation hooks.
|
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 |
Public Member Functions |
| 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 |
Detailed Description
Read/Write operations on Devices.
Member Typedef Documentation
Declare the dynamic allocation hooks.
Constructor & Destructor Documentation
ACE_DEV_IO::ACE_DEV_IO |
( |
void |
|
) |
|
Member Function Documentation
ACE_INLINE ssize_t ACE_DEV_IO::send |
( |
const void * |
buf, |
|
|
size_t |
n | |
|
) |
| | const |
send upto n bytes in buf.
ACE_INLINE ssize_t ACE_DEV_IO::recv |
( |
void * |
buf, |
|
|
size_t |
n | |
|
) |
| | const |
Recv upto n bytes in buf.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL ACE_INLINE ssize_t ACE_DEV_IO::send_n |
( |
const void * |
buf, |
|
|
size_t |
n | |
|
) |
| | const |
Send n bytes, keep trying until n are sent.
ACE_INLINE ssize_t ACE_DEV_IO::recv_n |
( |
void * |
buf, |
|
|
size_t |
n, |
|
|
const ACE_Time_Value * |
timeout = 0 , |
|
|
size_t * |
bytes_transferred = 0 | |
|
) |
| | const |
Declare the dynamic allocation hooks.
ACE_INLINE ssize_t ACE_DEV_IO::send |
( |
const iovec |
iov[], |
|
|
size_t |
n | |
|
) |
| | const |
Send iovecs via <writev>.
ACE_INLINE ssize_t ACE_DEV_IO::recv |
( |
iovec |
iov[], |
|
|
size_t |
n | |
|
) |
| | const |
ssize_t ACE_DEV_IO::send |
( |
size_t |
n, |
|
|
|
... | |
|
) |
| | const |
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!
ssize_t ACE_DEV_IO::recv |
( |
size_t |
n, |
|
|
|
... | |
|
) |
| | const |
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!
Send n bytes via Win32 WriteFile using overlapped I/O.
Recv n bytes via Win32 ReadFile using overlapped I/O.
void ACE_DEV_IO::dump |
( |
void |
|
) |
const |
Dump the state of an object.
Reimplemented from ACE_DEV.
ACE_BEGIN_VERSIONED_NAMESPACE_DECL int ACE_DEV_IO::get_local_addr |
( |
ACE_DEV_Addr & |
addr |
) |
const |
Return the local endpoint address.
int ACE_DEV_IO::get_remote_addr |
( |
ACE_DEV_Addr & |
addr |
) |
const |
Return the address of the remotely connected peer (if there is one).
Friends And Related Function Documentation
Member Data Documentation
Declare the dynamic allocation hooks.
Reimplemented from ACE_DEV.
Address of device we are connected to.
The documentation for this class was generated from the following files:
Generated on Mon Sep 15 07:14:45 2008 for ACE by
1.5.5
|