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

[legend]
Collaboration diagram for ACE_SSL_SOCK_Stream:

[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_Stream& | peer (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:

- SSL_SOCK_Stream.h
- SSL_SOCK_Stream.cpp
- SSL_SOCK_Stream.i