Reference

ACE_DEV_IO(3)

Read/Write operations on Devices.

NAME

ACE_DEV_IO - Read/Write operations on Devices.

SYNOPSIS

#include <ace/DEV_IO.h>
class ACE_DEV_IO : public ACE_DEV
{
  public:
    friend class ACE_DEV_Connector;
    ACE_DEV_IO (void);
    ssize_t send (const void *buf, size_t n) const;
    ssize_t recv (void *buf, size_t n) const;
    ssize_t send_n (const void *buf, size_t n) const;
    ssize_t recv_n (void *buf, size_t n) const;
    ssize_t recv (
        ACE_Str_Buf *cntl,
        ACE_Str_Buf *data,
        int *band,
        int *flags
        ) const;
    ssize_t send (
        const ACE_Str_Buf *cntl,
        const ACE_Str_Buf *data,
        int band,
        int flags
        ) const;
    ssize_t recv (
        ACE_Str_Buf *cntl,
        ACE_Str_Buf *data,
        int *flags
        ) const;
    ssize_t send (
        const ACE_Str_Buf *cntl,
        const ACE_Str_Buf *data,
        int flags = 0
        ) const;
    ssize_t send (const iovec iov[], size_t n) const;
    ssize_t recv (iovec iov[], size_t n) const;
    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;
    ssize_t recv (
        void *buf,
        size_t n,
        ACE_OVERLAPPED *overlapped
        ) const;
    void dump (void) const;
    int get_local_addr (ACE_DEV_Addr &) const;
    int get_remote_addr (ACE_DEV_Addr &) const;
    ACE_ALLOC_HOOK_DECLARE;
    typedef ACE_DEV_Addr PEER_ADDR;
  private:
    ACE_DEV_Addr addr_;
};

Various send operations.

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.

ssize_t recv_n (void *buf, size_t n) const;

Recv n bytes, keep trying until n are received.

ssize_t recv (
    ACE_Str_Buf *cntl,
    ACE_Str_Buf *data,
    int *band,
    int *flags
    ) const;

Recv bytes via STREAM pipes using "band" mode.

ssize_t send (
    const ACE_Str_Buf *cntl,
    const ACE_Str_Buf *data,
    int band,
    int flags
    ) const;

Send bytes via STREAM pipes using "band" mode.

ssize_t recv (ACE_Str_Buf *cntl, ACE_Str_Buf *data, int *flags) const;

Recv cntl and data via STREAM pipes.

ssize_t send (
    const ACE_Str_Buf *cntl,
    const ACE_Str_Buf *data,
    int flags = 0
    ) const;

Send cntl and data via STREAM pipes.

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;

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 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!

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.

The following two methods are no-ops to keep the

ACE_Connector happy.

int get_local_addr (ACE_DEV_Addr &) const;

Return the local endpoint address.

int get_remote_addr (ACE_DEV_Addr &) const;

Return the address of the remotely connected peer (if there is one).

ACE_ALLOC_HOOK_DECLARE;

Declare the dynamic allocation hooks.

Meta-type info

typedef ACE_DEV_Addr PEER_ADDR;

AUTHOR

Gerhard Lenzer and Douglas C. Schmidt

LIBRARY

ace