NAME

ACE_SOCK_IO - Defines the methods for the ACE socket wrapper I/O routines (e.g., send/recv).

SYNOPSIS

#include <ace/SOCK_IO.h>

class ACE_SOCK_IO : public ACE_SOCK { public: ACE_SOCK_IO (void); ~ACE_SOCK_IO (void); ssize_t recv ( void *buf, size_t n, int flags, const ACE_Time_Value *timeout = 0 ) const; ssize_t recv ( void *buf, size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t recvv ( iovec iov[], size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t recv ( iovec iov[], size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t recvv ( iovec *io_vec, const ACE_Time_Value *timeout = 0 ) const; ssize_t recv ( iovec *io_vec, const ACE_Time_Value *timeout = 0 ) const; ssize_t recv (size_t n, ...) const; ssize_t recv ( void *buf, size_t n, ACE_OVERLAPPED *overlapped ) const; ssize_t send ( const void *buf, size_t n, int flags, const ACE_Time_Value *timeout = 0 ) const; ssize_t send ( const void *buf, size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t sendv ( const iovec iov[], size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t send ( const iovec iov[], size_t n, const ACE_Time_Value *timeout = 0 ) const; ssize_t send (size_t n, ...) const; ssize_t send ( const void *buf, size_t n, ACE_OVERLAPPED *overlapped ) const; void dump (void) const; ACE_ALLOC_HOOK_DECLARE; };

Initialization and termination methods.

ACE_SOCK_IO (void);

~ACE_SOCK_IO (void);

ssize_t recv (
    void *buf,
    size_t n,
    int flags,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t recv (
    void *buf,
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t recvv (
    iovec iov[],
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t recv (
    iovec iov[],
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t recvv (
    iovec *io_vec,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t recv (iovec *io_vec, const ACE_Time_Value *timeout = 0) const;

ssize_t recv (size_t n, ...) const;

ssize_t recv (void *buf, size_t n, ACE_OVERLAPPED *overlapped) const;

ssize_t send (
    const void *buf,
    size_t n,
    int flags,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t send (
    const void *buf,
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t sendv (
    const iovec iov[],
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t send (
    const iovec iov[],
    size_t n,
    const ACE_Time_Value *timeout = 0
    ) const;

ssize_t send (size_t n, ...) const;

ssize_t send (
    const void *buf,
    size_t n,
    ACE_OVERLAPPED *overlapped
    ) const;

void dump (void) const;

ACE_ALLOC_HOOK_DECLARE;

AUTHOR

Doug Schmidt

NOTES

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.

Errors are reported by -1 and 0 return values. If the operation times out, -1 is returned with errno == ETIME. If it succeeds the number of bytes transferred is returned.

Methods with the extra flags argument will always result in send getting called. Methods without the extra flags argument will result in send getting called on Win32 platforms, and write getting called on non-Win32 platforms.

LIBRARY

ace