Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

ACE_SSL_SOCK_Stream Class Reference

Defines methods in the ACE_SSL_SOCK_Stream abstraction. More...

#include <SSL_SOCK_Stream.h>

Inheritance diagram for ACE_SSL_SOCK_Stream

Inheritance graph
[legend]
Collaboration diagram for ACE_SSL_SOCK_Stream:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ACE_INET_Addr PEER_ADDR
 Meta-type info.


Public Methods

 ACE_SSL_SOCK_Stream (ACE_SSL_Context *context = ACE_SSL_Context::instance ())
 Constructor.

 ~ACE_SSL_SOCK_Stream (void)
 Destructor.

ssize_t send (const void *buf, size_t n, int flags) const
ssize_t recv (void *buf, size_t n, int flags) const
ssize_t send (const void *buf, size_t n) const
 Send an <n> byte buffer to the ssl socket using the semantics of <write(2)>.

ssize_t recv (void *buf, size_t n) const
 Recv an <n> byte buffer from the ssl socket using the semantics of <read(2)>.

ssize_t sendv (const iovec iov[], size_t n) const
 Send an <iovec> of size <n> to the ssl socket.

ssize_t recvv (iovec *io_vec, const ACE_Time_Value *timeout = 0) const
ssize_t send (const void *buf, size_t n, int flags, const ACE_Time_Value *timeout) const
ssize_t recv (void *buf, size_t n, int flags, const ACE_Time_Value *timeout) const
ssize_t send (const void *buf, size_t n, const ACE_Time_Value *timeout) const
ssize_t recv (void *buf, size_t n, const ACE_Time_Value *timeout) const
ssize_t send (size_t n, ...) const
 Send <n> varargs messages to the connected ssl socket.

ssize_t recv (size_t n, ...) const
 Recv <n> varargs messages to the connected ssl socket.

ssize_t send_n (const void *buf, int n) const
 Send <n> bytes, keep trying until <n> are sent.

ssize_t recv_n (void *buf, int n) const
 Recv <n> bytes, keep trying until <n> are received.

ssize_t sendv_n (const iovec iov[], size_t n) const
ssize_t recvv_n (iovec iov[], size_t n) const
 Receive an <iovec> of size <n> to the connected socket.

int close (void)
 Close down the socket.

void set_handle (ACE_HANDLE fd)
SSL* ssl (void) const
 Return a pointer to the underlying SSL structure.

ssize_t send_n (const void *buf, int n, int flags) const
 Send <n> bytes, keep trying until <n> are sent. More...

ssize_t recv_n (void *buf, int n, int flags) const
 Recv <n> bytes, keep trying until <n> are sent.

ssize_t send_n (const void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred = 0) const
ssize_t recv_n (void *buf, size_t len, int flags, const ACE_Time_Value *timeout, size_t *bytes_transferred = 0) const
int close_reader (void)
 Close down the reader. More...

int close_writer (void)
 Close down the writer.


Public Attributes

 ACE_ALLOC_HOOK_DECLARE
 Declare the dynamic allocation hooks.


Protected Methods

ACE_SOCK_Streampeer (void)
 Return the underlying which SSL runs atop of.

ssize_t send_i (const void *buf, size_t n, int flags) const
 Underlying send() helper method common to all public send() methods.

ssize_t recv_i (void *buf, size_t n, int flags, const ACE_Time_Value *timeout) const
 Underlying send() helper method common to all public send() methods.


Friends

class  ACE_SSL_SOCK_Connector
class  ACE_SSL_SOCK_Acceptor

Detailed Description

Defines methods in the ACE_SSL_SOCK_Stream abstraction.

This adds SSL functionality to an ACE_SOCK_IO interface by wrapping around an ACE_SSL_SOCK_Stream implementation.

Note:
The user must currently ensure that assignment or copy operations are atomic!


Member Typedef Documentation

typedef ACE_INET_Addr ACE_SSL_SOCK_Stream::PEER_ADDR
 

Meta-type info.


Constructor & Destructor Documentation

ACE_SSL_SOCK_Stream::ACE_SSL_SOCK_Stream ( ACE_SSL_Context * context = ACE_SSL_Context::instance () )
 

Constructor.

ASYS_INLINE ACE_SSL_SOCK_Stream::~ACE_SSL_SOCK_Stream ( void )
 

Destructor.


Member Function Documentation

ASYS_INLINE int ACE_SSL_SOCK_Stream::close ( void )
 

Close down the socket.

Reimplemented from ACE_SOCK.

ASYS_INLINE int ACE_SSL_SOCK_Stream::close_reader ( void )
 

Close down the reader.

Selectively close endpoints.

ASYS_INLINE int ACE_SSL_SOCK_Stream::close_writer ( void )
 

Close down the writer.

ASYS_INLINE ACE_SOCK_Stream & ACE_SSL_SOCK_Stream::peer ( void ) [protected]
 

Return the underlying which SSL runs atop of.

ssize_t ACE_SSL_SOCK_Stream::recv ( size_t n,
... ) const
 

Recv <n> varargs messages to the connected ssl socket.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::recv ( void * buf,
size_t n,
const ACE_Time_Value * timeout ) const
 

Wait up to <timeout> amount of time to receive up to <n> bytes into <buf> (uses the <recv> call). If <recv> times out a -1 is returned with <errno == ETIME>. If it succeeds the number of bytes received is returned.

ssize_t ACE_SSL_SOCK_Stream::recv ( void * buf,
size_t n,
int flags,
const ACE_Time_Value * timeout ) const
 

Wait up to <timeout> amount of time to receive up to <n> bytes into <buf> (uses the <recv> call). If <recv> times out a -1 is returned with <errno == ETIME>. If it succeeds the number of bytes received is returned. MSG_PEEK is the only supported flag.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::recv ( void * buf,
size_t n ) const
 

Recv an <n> byte buffer from the ssl socket using the semantics of <read(2)>.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::recv ( void * buf,
size_t n,
int flags ) const
 

Recv an <n> byte buffer from the ssl socket using the semantics of <recv(3n)>. ACE+SSL supports MSG_PEEK, but no other flags at this time.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::recv_i ( void * buf,
size_t n,
int flags,
const ACE_Time_Value * timeout ) const [protected]
 

Underlying send() helper method common to all public send() methods.

ssize_t ACE_SSL_SOCK_Stream::recv_n ( void * buf,
size_t len,
int flags,
const ACE_Time_Value * timeout,
size_t * bytes_transferred = 0 ) const
 

Try to recv exactly <len> bytes into <buf> (uses the <recv> call). The indicates how long to blocking trying to receive. If <timeout> == 0, the caller will block until action is possible, else will wait until the relative time specified in *<timeout> elapses). If <recv> blocks for longer than <timeout> the number of bytes actually read is returned with <errno == ETIME>. If a timeout does not occur, <recv_n> return <len> (i.e., the number of bytes requested to be read).

ssize_t ACE_SSL_SOCK_Stream::recv_n ( void * buf,
int n,
int flags ) const
 

Recv <n> bytes, keep trying until <n> are sent.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::recv_n ( void * buf,
int buf_size ) const
 

Recv <n> bytes, keep trying until <n> are received.

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

Allows a client to read from a socket without having to provide a buffer to read. This method determines how much data is in the socket, allocates a buffer of this size, reads in the data, and returns the number of bytes read. The caller is responsible for deleting the member in the <iov_base> field of <io_vec> using delete [] io_vec->iov_base.

ssize_t ACE_SSL_SOCK_Stream::recvv_n ( iovec iov[],
size_t n ) const
 

Receive an <iovec> of size <n> to the connected socket.

ssize_t ACE_SSL_SOCK_Stream::send ( size_t n,
... ) const
 

Send <n> varargs messages to the connected ssl socket.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::send ( const void * buf,
size_t len,
const ACE_Time_Value * timeout ) const
 

Wait to to <timeout> amount of time to send up to <n> bytes into <buf> (uses the <send> call). If <send> times out a -1 is returned with <errno == ETIME>. If it succeeds the number of bytes sent is returned.

ssize_t ACE_SSL_SOCK_Stream::send ( const void * buf,
size_t n,
int flags,
const ACE_Time_Value * timeout ) const
 

Wait to to <timeout> amount of time to send up to <n> bytes into <buf> (uses the <send> call). If <send> times out a -1 is returned with <errno == ETIME>. If it succeeds the number of bytes sent is returned. No flags are supported.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::send ( const void * buf,
size_t n ) const
 

Send an <n> byte buffer to the ssl socket using the semantics of <write(2)>.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::send ( const void * buf,
size_t n,
int flags ) const
 

Send an <n> byte buffer to the ssl socket using the semantics of <send(3n)>. ACE+SSL supports no flags for sending at this time.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::send_i ( const void * buf,
size_t n,
int flags ) const [protected]
 

Underlying send() helper method common to all public send() methods.

ssize_t ACE_SSL_SOCK_Stream::send_n ( const void * buf,
size_t len,
int flags,
const ACE_Time_Value * timeout,
size_t * bytes_transferred = 0 ) const
 

Try to send exactly <len> bytes into <buf> (uses the <send> call). If <send> blocks for longer than <timeout> the number of bytes actually sent is returned with <errno == ETIME>. If a timeout does not occur, <send_n> return <len> (i.e., the number of bytes requested to be sent).

ssize_t ACE_SSL_SOCK_Stream::send_n ( const void * buf,
int n,
int flags ) const
 

Send <n> bytes, keep trying until <n> are sent.

Note:
In the following four methods, only MSG_PEEK is supported for recv_n, and no flags are supported for send_n.

ASYS_INLINE ssize_t ACE_SSL_SOCK_Stream::send_n ( const void * buf,
int len ) const
 

Send <n> bytes, keep trying until <n> are sent.

ssize_t ACE_SSL_SOCK_Stream::sendv ( const iovec iov[],
size_t n ) const
 

Send an <iovec> of size <n> to the ssl socket.

ssize_t ACE_SSL_SOCK_Stream::sendv_n ( const iovec iov[],
size_t n ) const
 

Send an <iovec> of size <n> to the connected socket. Will block until all bytes are sent or an error occurs.

ASYS_INLINE void ACE_SSL_SOCK_Stream::set_handle ( ACE_HANDLE fd )
 

Overridden set_handle() method.

Only an ACE_SSL_SOCK_Acceptor or ACE_SSL_SOCK_Connector should access this method since some state in the underlying "ssl_" data structure is set during SSL connection establishment.

Reimplemented from ACE_SSL_SOCK.

ASYS_INLINE SSL * ACE_SSL_SOCK_Stream::ssl ( void ) const
 

Return a pointer to the underlying SSL structure.


Friends And Related Function Documentation

class ACE_SSL_SOCK_Acceptor [friend]
 

class ACE_SSL_SOCK_Connector [friend]
 


Member Data Documentation

ACE_SSL_SOCK_Stream::ACE_ALLOC_HOOK_DECLARE
 

Declare the dynamic allocation hooks.


The documentation for this class was generated from the following files:
Generated at Fri Oct 5 07:16:53 2001 for ACE_SSL by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000