Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

ACE_SOCK_SEQPACK_Association Class Reference

Defines the methods in the <ACE_SOCK_SEQPACK_Association> abstraction. More...

#include <SOCK_SEQPACK_Association.h>

Inheritance diagram for ACE_SOCK_SEQPACK_Association:

Inheritance graph
[legend]
Collaboration diagram for ACE_SOCK_SEQPACK_Association:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_Multihomed_INET_Addr PEER_ADDR

Public Methods

 ACE_SOCK_SEQPACK_Association (void)
 Constructor.

 ACE_SOCK_SEQPACK_Association (ACE_HANDLE h)
 Constructor (sets the underlying <ACE_HANDLE> with <h>).

 ~ACE_SOCK_SEQPACK_Association (void)
 Destructor.

int get_local_addrs (ACE_INET_Addr *addrs, size_t &size) const
int get_remote_addrs (ACE_INET_Addr *addrs, size_t &size) const
ssize_t recv_n (void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Try to recv exactly <len> bytes into <buf> from the connected socket.

ssize_t recv_n (void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Try to recv exactly <len> bytes into <buf> from the connected socket.

ssize_t recvv_n (iovec iov[], size_t iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Receive an <iovec> of size <iovcnt> from the connected socket.

ssize_t send_n (const void *buf, size_t len, int flags, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Try to send exactly <len> bytes from <buf> to the connection socket.

ssize_t send_n (const void *buf, size_t len, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Try to send exactly <len> bytes from <buf> to the connected socket.

ssize_t send_n (const ACE_Message_Block *message_block, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
ssize_t sendv_n (const iovec iov[], size_t iovcnt, const ACE_Time_Value *timeout=0, size_t *bytes_transferred=0) const
 Send an <iovec> of size <iovcnt> to the connected socket.

ssize_t send_urg (const void *ptr, size_t len=sizeof(char), const ACE_Time_Value *timeout=0) const
ssize_t recv_urg (void *ptr, size_t len=sizeof(char), const ACE_Time_Value *timeout=0) const
int close_reader (void)
 Close down the reader.

int close_writer (void)
 Close down the writer.

int close (void)
void dump (void) const
 Dump the state of an object.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Detailed Description

Defines the methods in the <ACE_SOCK_SEQPACK_Association> abstraction.

This adds additional wrapper methods atop the <ACE_SOCK_IO> class.

<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 for data to arrive no longer than the relative time specified in *<timeout>. 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 partial transfers, i.e., if any data is transferred before timeout/error/EOF, <bytes_transferred> will contain the number of bytes transferred. Methods with <iovec> parameter are I/O vector variants of the I/O operations. 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.


Member Typedef Documentation

typedef ACE_Multihomed_INET_Addr ACE_SOCK_SEQPACK_Association::PEER_ADDR
 


Constructor & Destructor Documentation

ASYS_INLINE ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association void   
 

Constructor.

ASYS_INLINE ACE_SOCK_SEQPACK_Association::ACE_SOCK_SEQPACK_Association ACE_HANDLE    h
 

Constructor (sets the underlying <ACE_HANDLE> with <h>).

ASYS_INLINE ACE_SOCK_SEQPACK_Association::~ACE_SOCK_SEQPACK_Association void   
 

Destructor.


Member Function Documentation

int ACE_SOCK_SEQPACK_Association::close void   
 

Close down the socket (we need this to make things work correctly on Win32, which requires use to do a <close_writer> before doing the close to avoid losing data).

Reimplemented from ACE_SOCK.

ASYS_INLINE int ACE_SOCK_SEQPACK_Association::close_reader void   
 

Close down the reader.

ASYS_INLINE int ACE_SOCK_SEQPACK_Association::close_writer void   
 

Close down the writer.

void ACE_SOCK_SEQPACK_Association::dump void    const
 

Dump the state of an object.

Reimplemented from ACE_SOCK_IO.

int ACE_SOCK_SEQPACK_Association::get_local_addrs ACE_INET_Addr   addrs,
size_t &    size
const
 

Return local endpoint addresses in the referenced array of <ACE_INET_Addr>, which should have the specified <size>. If the number of local endpoint addresses is less than <size>, then <size> will be set to this number. If successful, the method returns 0, otherwise returns -1.

int ACE_SOCK_SEQPACK_Association::get_remote_addrs ACE_INET_Addr   addrs,
size_t &    size
const
 

Return remote endpoint addresses in the referenced array of <ACE_INET_Addr>, which should have the specified <size>. If the number of remote endpoint addresses is less than <size>, then <size> will be set to this number. If successful, the method returns 0, otherwise returns -1.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::recv_n void *    buf,
size_t    len,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Try to recv exactly <len> bytes into <buf> from the connected socket.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::recv_n void *    buf,
size_t    len,
int    flags,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Try to recv exactly <len> bytes into <buf> from the connected socket.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::recv_urg void *    ptr,
size_t    len = sizeof(char),
const ACE_Time_Value   timeout = 0
const
 

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::recvv_n iovec    iov[],
size_t    iovcnt,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Receive an <iovec> of size <iovcnt> from the connected socket.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::send_n const ACE_Message_Block   message_block,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Send all the <message_block>s chained through their <next> and <cont> pointers. This call uses the underlying OS gather-write operation to reduce the domain-crossing penalty.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::send_n const void *    buf,
size_t    len,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Try to send exactly <len> bytes from <buf> to the connected socket.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::send_n const void *    buf,
size_t    len,
int    flags,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Try to send exactly <len> bytes from <buf> to the connection socket.

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::send_urg const void *    ptr,
size_t    len = sizeof(char),
const ACE_Time_Value   timeout = 0
const
 

ASYS_INLINE ssize_t ACE_SOCK_SEQPACK_Association::sendv_n const iovec    iov[],
size_t    iovcnt,
const ACE_Time_Value   timeout = 0,
size_t *    bytes_transferred = 0
const
 

Send an <iovec> of size <iovcnt> to the connected socket.


Member Data Documentation

ACE_SOCK_SEQPACK_Association::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.

Reimplemented from ACE_SOCK_IO.


The documentation for this class was generated from the following files:
Generated on Fri Apr 2 16:53:44 2004 for ACE by doxygen1.2.18