summaryrefslogtreecommitdiff
path: root/ace/SSL/SSL_SOCK_Stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'ace/SSL/SSL_SOCK_Stream.h')
-rw-r--r--ace/SSL/SSL_SOCK_Stream.h287
1 files changed, 0 insertions, 287 deletions
diff --git a/ace/SSL/SSL_SOCK_Stream.h b/ace/SSL/SSL_SOCK_Stream.h
deleted file mode 100644
index 2d8eaffcf99..00000000000
--- a/ace/SSL/SSL_SOCK_Stream.h
+++ /dev/null
@@ -1,287 +0,0 @@
-// -*- C++ -*-
-
-//=============================================================================
-/**
- * @file SSL_SOCK_Stream.h
- *
- * $Id$
- *
- * @author John Heitmann
- * @author Carlos O'Ryan <coryan@uci.edu>
- * @author Ossama Othman <ossama@uci.edu>
- */
-//=============================================================================
-
-
-#ifndef ACE_SSL_SOCK_STREAM_H
-#define ACE_SSL_SOCK_STREAM_H
-
-#include "ace/pre.h"
-
-#include "SSL_Export.h"
-
-#if !defined (ACE_LACKS_PRAGMA_ONCE)
-# pragma once
-#endif /* ACE_LACKS_PRAGMA_ONCE */
-
-#include <openssl/err.h>
-
-#include "SSL_SOCK.h"
-#include "SSL_Context.h"
-
-#include "ace/Synch_T.h"
-#include "ace/SOCK_Stream.h"
-
-
-/**
- * @class ACE_SSL_SOCK_Stream
- *
- * @brief 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!
- */
-class ACE_SSL_Export ACE_SSL_SOCK_Stream : public ACE_SSL_SOCK
-{
-
- friend class ACE_SSL_SOCK_Connector;
- friend class ACE_SSL_SOCK_Acceptor;
-
-public:
-
- /// Constructor
- ACE_SSL_SOCK_Stream (ACE_SSL_Context *context =
- ACE_SSL_Context::instance ());
-
- /// Destructor
- ~ACE_SSL_SOCK_Stream (void);
-
- /**
- * 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.
- */
- ssize_t send (const 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.
- */
- ssize_t recv (void *buf,
- size_t n,
- int flags) const;
-
-
- /// Send an <n> byte buffer to the ssl socket using
- /// the semantics of <write(2)>.
- ssize_t send (const void *buf,
- size_t n) const;
-
- /// Recv an <n> byte buffer from the ssl socket using
- /// the semantics of <read(2)>.
- ssize_t recv (void *buf,
- size_t n) const;
-
- /// Send an <iovec> of size <n> to the ssl socket.
- ssize_t sendv (const iovec iov[],
- size_t n) 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 recvv (iovec *io_vec,
- const ACE_Time_Value *timeout = 0) 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.
- */
- ssize_t send (const 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.
- */
- ssize_t recv (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.
- */
- ssize_t send (const 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 recv (void *buf,
- size_t n,
- const ACE_Time_Value *timeout) const;
-
- /// Send <n> varargs messages to the connected ssl socket.
- ssize_t send (size_t n,
- ...) const;
-
- /// Recv <n> varargs messages to the connected ssl socket.
- ssize_t recv (size_t n,
- ...) const;
-
- /// Send <n> bytes, keep trying until <n> are sent.
- ssize_t send_n (const void *buf, int n) const;
-
- /// Recv <n> bytes, keep trying until <n> are received.
- ssize_t recv_n (void *buf, int n) const;
-
- /**
- * @note In the following four methods, only MSG_PEEK is supported
- * for recv_n, and no flags are supported for send_n.
- */
- //@{
- /// Send <n> bytes, keep trying until <n> are sent.
- ssize_t send_n (const void *buf, int n, int flags) const;
-
- /// Recv <n> bytes, keep trying until <n> are sent.
- ssize_t recv_n (void *buf, int n, int flags) 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 send_n (const void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const;
-
- /**
- * Try to recv exactly <len> bytes into <buf> (uses
- * the <recv> call). The <ACE_Time_Value> 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 recv_n (void *buf,
- size_t len,
- int flags,
- const ACE_Time_Value *timeout) const;
- //@}
-
- /**
- * Send an <iovec> of size <n> to the connected socket.
- * Will block until all bytes are sent or an error
- * occurs.
- */
- ssize_t sendv_n (const iovec iov[],
- size_t n) const;
-
- /// Receive an <iovec> of size <n> to the connected socket.
- ssize_t recvv_n (iovec iov[],
- size_t n) const;
-
-
- /**
- * Selectively close endpoints.
- */
- //@{
- /// Close down the reader.
- int close_reader (void);
-
- /// Close down the writer.
- int close_writer (void);
- //@}
-
- ///Close down the socket.
- int close (void);
-
- /// Meta-type info
- typedef ACE_INET_Addr PEER_ADDR;
-
- /// Declare the dynamic allocation hooks.
- ACE_ALLOC_HOOK_DECLARE;
-
- /**
- * 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.
- */
- void set_handle (ACE_HANDLE fd);
-
- /// Return a pointer to the underlying SSL structure.
- SSL *ssl (void) const;
-
-protected:
-
- /// Return the underlying <ACE_SOCK_Stream> which SSL runs atop of.
- ACE_SOCK_Stream & peer (void);
-
- /// Underlying send() helper method common to all public send()
- /// methods.
- 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;
-
-private:
-
- ACE_UNIMPLEMENTED_FUNC (void operator= (const ACE_SSL_SOCK_Stream &))
- ACE_UNIMPLEMENTED_FUNC (ACE_SSL_SOCK_Stream (const ACE_SSL_SOCK_Stream &))
-
-protected:
-
- /// The SSL session.
- SSL *ssl_;
-
- /// The stream which works under the ssl connection.
- ACE_SOCK_Stream stream_;
-
-};
-
-#if !defined (ACE_LACKS_INLINE_FUNCTIONS)
-#include "SSL_SOCK_Stream.i"
-#endif /* ACE_LACKS_INLINE_FUNCTIONS */
-
-#include "ace/post.h"
-
-#endif /* ACE_SSL_SOCK_STREAM_H */
-