Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r70104 - in trunk: boost/asio/ssl libs/asio/doc
From: chris_at_[hidden]
Date: 2011-03-17 22:00:12


Author: chris_kohlhoff
Date: 2011-03-17 22:00:08 EDT (Thu, 17 Mar 2011)
New Revision: 70104
URL: http://svn.boost.org/trac/boost/changeset/70104

Log:
Fix error in doxygen comment. Regenerate documentation.

Text files modified:
   trunk/boost/asio/ssl/stream.hpp | 2
   trunk/libs/asio/doc/reference.qbk | 2205 +++++++++------------------------------
   2 files changed, 508 insertions(+), 1699 deletions(-)

Modified: trunk/boost/asio/ssl/stream.hpp
==============================================================================
--- trunk/boost/asio/ssl/stream.hpp (original)
+++ trunk/boost/asio/ssl/stream.hpp 2011-03-17 22:00:08 EDT (Thu, 17 Mar 2011)
@@ -90,7 +90,7 @@
    *
    * @param arg The argument to be passed to initialise the underlying stream.
    *
- * @param context The SSL context to be used for the stream.
+ * @param ctx The SSL context to be used for the stream.
    */
   template <typename Arg>
   stream(Arg& arg, context& ctx)

Modified: trunk/libs/asio/doc/reference.qbk
==============================================================================
--- trunk/libs/asio/doc/reference.qbk (original)
+++ trunk/libs/asio/doc/reference.qbk 2011-03-17 22:00:08 EDT (Thu, 17 Mar 2011)
@@ -28,6 +28,7 @@
 [include requirements/GettableSocketOption.qbk]
 [include requirements/Handler.qbk]
 [include requirements/HandleService.qbk]
+[include requirements/HandshakeHandler.qbk]
 [include requirements/InternetProtocol.qbk]
 [include requirements/IoControlCommand.qbk]
 [include requirements/IoObjectService.qbk]
@@ -43,6 +44,7 @@
 [include requirements/Service.qbk]
 [include requirements/SettableSerialPortOption.qbk]
 [include requirements/SettableSocketOption.qbk]
+[include requirements/ShutdownHandler.qbk]
 [include requirements/SignalHandler.qbk]
 [include requirements/SignalSetService.qbk]
 [include requirements/SocketAcceptorService.qbk]
@@ -43106,7 +43108,7 @@
 
 In the above example, the return value of `boost::asio::buffer` meets the requirements of the ConstBufferSequence concept so that it may be directly passed to the socket's write function. A buffer created for modifiable memory also meets the requirements of the MutableBufferSequence concept.
 
-An individual buffer may be created from a builtin array, std::vector or boost::array of POD elements. This helps prevent buffer overruns by automatically determining the size of the buffer:
+An individual buffer may be created from a builtin array, std::vector, std::array or boost::array of POD elements. This helps prevent buffer overruns by automatically determining the size of the buffer:
 
 
 
@@ -43116,8 +43118,11 @@
    std::vector<char> d2(128);
    bytes_transferred = sock.receive(boost::asio::buffer(d2));
 
- boost::array<char, 128> d3;
- bytes_transferred = sock.receive(boost::asio::buffer(d3));
+ std::array<char, 128> d3;
+ bytes_transferred = sock.receive(boost::asio::buffer(d3));
+
+ boost::array<char, 128> d4;
+ bytes_transferred = sock.receive(boost::asio::buffer(d4));
 
 
 
@@ -80475,16 +80480,13 @@
 
 [endsect]
 
-[section:ssl__basic_context ssl::basic_context]
-
+[section:ssl__context ssl::context]
 
-SSL context.
 
 
- template<
- typename ``[link boost_asio.reference.Service Service]``>
- class basic_context :
- public ssl::context_base
+ class context :
+ public ssl::context_base,
+ noncopyable
 
 
 [heading Types]
@@ -80493,49 +80495,42 @@
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.file_format [*file_format]]]
+ [[link boost_asio.reference.ssl__context.file_format [*file_format]]]
     [File format types. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.impl_type [*impl_type]]]
- [The native implementation type of the locking dispatcher. ]
+ [[link boost_asio.reference.ssl__context.method [*method]]]
+ [Different methods supported by a context. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.method [*method]]]
- [Different methods supported by a context. ]
+ [[link boost_asio.reference.ssl__context.native_handle_type [*native_handle_type]]]
+ [The native handle type of the SSL context. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.options [*options]]]
+ [[link boost_asio.reference.ssl__context.options [*options]]]
     [Bitmask type for SSL options. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.password_purpose [*password_purpose]]]
+ [[link boost_asio.reference.ssl__context.password_purpose [*password_purpose]]]
     [Purpose of PEM password. ]
   
   ]
 
   [
 
- [[link boost_asio.reference.ssl__basic_context.service_type [*service_type]]]
- [The type of the service that will be used to provide context operations. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.verify_mode [*verify_mode]]]
+ [[link boost_asio.reference.ssl__context.verify_mode [*verify_mode]]]
     [Bitmask type for peer verification. ]
   
   ]
@@ -80547,67 +80542,76 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__basic_context.add_verify_path [*add_verify_path]]]
+ [[link boost_asio.reference.ssl__context.add_verify_path [*add_verify_path]]]
     [Add a directory containing certificate authority files to be used for performing verification. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.basic_context [*basic_context]]]
- [Constructor. ]
+ [[link boost_asio.reference.ssl__context.context [*context]]]
+ [Constructor.
+
+ Deprecated constructor taking a reference to an io_service object.
+
+ Move-construct a context from another. ]
+ ]
+
+ [
+ [[link boost_asio.reference.ssl__context.load_verify_file [*load_verify_file]]]
+ [Load a certification authority file for performing verification. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.impl [*impl]]]
+ [[link boost_asio.reference.ssl__context.native_handle [*native_handle]]]
     [Get the underlying implementation in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.load_verify_file [*load_verify_file]]]
- [Load a certification authority file for performing verification. ]
+ [[link boost_asio.reference.ssl__context.operator_eq_ [*operator=]]]
+ [Move-assign a context from another. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.set_options [*set_options]]]
+ [[link boost_asio.reference.ssl__context.set_options [*set_options]]]
     [Set options on the context. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.set_password_callback [*set_password_callback]]]
+ [[link boost_asio.reference.ssl__context.set_password_callback [*set_password_callback]]]
     [Set the password callback. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.set_verify_mode [*set_verify_mode]]]
+ [[link boost_asio.reference.ssl__context.set_verify_mode [*set_verify_mode]]]
     [Set the peer verification mode. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.use_certificate_chain_file [*use_certificate_chain_file]]]
+ [[link boost_asio.reference.ssl__context.use_certificate_chain_file [*use_certificate_chain_file]]]
     [Use a certificate chain from a file. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.use_certificate_file [*use_certificate_file]]]
+ [[link boost_asio.reference.ssl__context.use_certificate_file [*use_certificate_file]]]
     [Use a certificate from a file. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.use_private_key_file [*use_private_key_file]]]
+ [[link boost_asio.reference.ssl__context.use_private_key_file [*use_private_key_file]]]
     [Use a private key from a file. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
+ [[link boost_asio.reference.ssl__context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
     [Use an RSA private key from a file. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context.use_tmp_dh_file [*use_tmp_dh_file]]]
+ [[link boost_asio.reference.ssl__context.use_tmp_dh_file [*use_tmp_dh_file]]]
     [Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__basic_context._basic_context [*~basic_context]]]
+ [[link boost_asio.reference.ssl__context._context [*~context]]]
     [Destructor. ]
   ]
   
@@ -80618,47 +80622,47 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__basic_context.default_workarounds [*default_workarounds]]]
+ [[link boost_asio.reference.ssl__context.default_workarounds [*default_workarounds]]]
     [Implement various bug workarounds. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.no_sslv2 [*no_sslv2]]]
+ [[link boost_asio.reference.ssl__context.no_sslv2 [*no_sslv2]]]
     [Disable SSL v2. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.no_sslv3 [*no_sslv3]]]
+ [[link boost_asio.reference.ssl__context.no_sslv3 [*no_sslv3]]]
     [Disable SSL v3. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.no_tlsv1 [*no_tlsv1]]]
+ [[link boost_asio.reference.ssl__context.no_tlsv1 [*no_tlsv1]]]
     [Disable TLS v1. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.single_dh_use [*single_dh_use]]]
+ [[link boost_asio.reference.ssl__context.single_dh_use [*single_dh_use]]]
     [Always create a new key when using tmp_dh parameters. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.verify_client_once [*verify_client_once]]]
+ [[link boost_asio.reference.ssl__context.verify_client_once [*verify_client_once]]]
     [Do not request client certificate on renegotiation. Ignored unless verify_peer is set. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.verify_fail_if_no_peer_cert [*verify_fail_if_no_peer_cert]]]
+ [[link boost_asio.reference.ssl__context.verify_fail_if_no_peer_cert [*verify_fail_if_no_peer_cert]]]
     [Fail verification if the peer has no certificate. Ignored unless verify_peer is set. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.verify_none [*verify_none]]]
+ [[link boost_asio.reference.ssl__context.verify_none [*verify_none]]]
     [No verification. ]
   ]
 
   [
- [[link boost_asio.reference.ssl__basic_context.verify_peer [*verify_peer]]]
+ [[link boost_asio.reference.ssl__context.verify_peer [*verify_peer]]]
     [Verify the peer. ]
   ]
 
@@ -80666,27 +80670,27 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/basic_context.hpp]
+[*Header: ][^boost/asio/ssl/context.hpp]
 
 [*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:add_verify_path ssl::basic_context::add_verify_path]
+[section:add_verify_path ssl::context::add_verify_path]
 
-[indexterm2 add_verify_path..ssl::basic_context]
+[indexterm2 add_verify_path..ssl::context]
 Add a directory containing certificate authority files to be used for performing verification.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.add_verify_path.overload1 add_verify_path]``(
+ void ``[link boost_asio.reference.ssl__context.add_verify_path.overload1 add_verify_path]``(
       const std::string & path);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.add_verify_path.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.add_verify_path.overload2 add_verify_path]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.add_verify_path.overload2 add_verify_path]``(
       const std::string & path,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.add_verify_path.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.add_verify_path.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::add_verify_path (1 of 2 overloads)]
+[section:overload1 ssl::context::add_verify_path (1 of 2 overloads)]
 
 
 Add a directory containing certificate authority files to be used for performing verification.
@@ -80725,7 +80729,7 @@
 
 
 
-[section:overload2 ssl::basic_context::add_verify_path (2 of 2 overloads)]
+[section:overload2 ssl::context::add_verify_path (2 of 2 overloads)]
 
 
 Add a directory containing certificate authority files to be used for performing verification.
@@ -80758,15 +80762,41 @@
 
 [endsect]
 
+[section:context ssl::context::context]
+
+[indexterm2 context..ssl::context]
+Constructor.
+
+
+ explicit ``[link boost_asio.reference.ssl__context.context.overload1 context]``(
+ method m);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload1 more...]]``
+
+
+Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
+
+
+ ``[link boost_asio.reference.ssl__context.context.overload2 context]``(
+ boost::asio::io_service & ,
+ method m);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload2 more...]]``
+
+
+Move-construct a context from another.
+
+
+ ``[link boost_asio.reference.ssl__context.context.overload3 context]``(
+ context && other);
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.context.overload3 more...]]``
+
+
+[section:overload1 ssl::context::context (1 of 3 overloads)]
 
-[section:basic_context ssl::basic_context::basic_context]
 
-[indexterm2 basic_context..ssl::basic_context]
 Constructor.
 
 
- basic_context(
- boost::asio::io_service & io_service,
+ context(
       method m);
 
 
@@ -80775,16 +80805,15 @@
 
 
 
-[section:default_workarounds ssl::basic_context::default_workarounds]
-
+[section:overload2 ssl::context::context (2 of 3 overloads)]
 
-['Inherited from ssl::context_base.]
 
-[indexterm2 default_workarounds..ssl::basic_context]
-Implement various bug workarounds.
+Deprecated constructor taking a reference to an [link boost_asio.reference.io_service `io_service`] object.
 
 
- static const int default_workarounds = implementation_defined;
+ context(
+ boost::asio::io_service & ,
+ method m);
 
 
 
@@ -80792,94 +80821,109 @@
 
 
 
-[section:file_format ssl::basic_context::file_format]
+[section:overload3 ssl::context::context (3 of 3 overloads)]
 
 
-['Inherited from ssl::context_base.]
+Move-construct a context from another.
 
-[indexterm2 file_format..ssl::basic_context]
-File format types.
 
+ context(
+ context && other);
 
- enum file_format
 
-[indexterm2 asn1..ssl::basic_context]
-[indexterm2 pem..ssl::basic_context]
+This constructor moves an SSL context from one object to another.
 
-[heading Values]
-[variablelist
 
- [
- [asn1]
- [ASN.1 file. ]
- ]
+[heading Parameters]
+
 
- [
- [pem]
- [PEM file. ]
- ]
+[variablelist
+
+[[other][The other context object from which the move will occur.]]
 
 ]
 
 
+[heading Remarks]
+
+Following the move, the following operations only are valid for the moved-from object:
+* Destruction.
+
+* As a target for move-assignment.
+
+
+
+
+
 
 [endsect]
 
 
+[endsect]
 
-[section:impl ssl::basic_context::impl]
 
-[indexterm2 impl..ssl::basic_context]
-Get the underlying implementation in the native type.
+[section:default_workarounds ssl::context::default_workarounds]
 
+[indexterm2 default_workarounds..ssl::context]
+Implement various bug workarounds.
 
- impl_type impl();
 
+ static const int default_workarounds = implementation_defined;
 
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:impl_type ssl::basic_context::impl_type]
+[section:file_format ssl::context::file_format]
 
-[indexterm2 impl_type..ssl::basic_context]
-The native implementation type of the locking dispatcher.
+[indexterm2 file_format..ssl::context]
+File format types.
 
 
- typedef service_type::impl_type impl_type;
+ enum file_format
 
+[indexterm2 asn1..ssl::context]
+[indexterm2 pem..ssl::context]
 
+[heading Values]
+[variablelist
 
-[heading Requirements]
+ [
+ [asn1]
+ [ASN.1 file. ]
+ ]
 
-[*Header: ][^boost/asio/ssl/basic_context.hpp]
+ [
+ [pem]
+ [PEM file. ]
+ ]
+
+]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
-[section:load_verify_file ssl::basic_context::load_verify_file]
+[section:load_verify_file ssl::context::load_verify_file]
 
-[indexterm2 load_verify_file..ssl::basic_context]
+[indexterm2 load_verify_file..ssl::context]
 Load a certification authority file for performing verification.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.load_verify_file.overload1 load_verify_file]``(
+ void ``[link boost_asio.reference.ssl__context.load_verify_file.overload1 load_verify_file]``(
       const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.load_verify_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.load_verify_file.overload2 load_verify_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.load_verify_file.overload2 load_verify_file]``(
       const std::string & filename,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.load_verify_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.load_verify_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::load_verify_file (1 of 2 overloads)]
+[section:overload1 ssl::context::load_verify_file (1 of 2 overloads)]
 
 
 Load a certification authority file for performing verification.
@@ -80918,7 +80962,7 @@
 
 
 
-[section:overload2 ssl::basic_context::load_verify_file (2 of 2 overloads)]
+[section:overload2 ssl::context::load_verify_file (2 of 2 overloads)]
 
 
 Load a certification authority file for performing verification.
@@ -80952,29 +80996,26 @@
 [endsect]
 
 
-[section:method ssl::basic_context::method]
-
-
-['Inherited from ssl::context_base.]
+[section:method ssl::context::method]
 
-[indexterm2 method..ssl::basic_context]
+[indexterm2 method..ssl::context]
 Different methods supported by a context.
 
 
   enum method
 
-[indexterm2 sslv2..ssl::basic_context]
-[indexterm2 sslv2_client..ssl::basic_context]
-[indexterm2 sslv2_server..ssl::basic_context]
-[indexterm2 sslv3..ssl::basic_context]
-[indexterm2 sslv3_client..ssl::basic_context]
-[indexterm2 sslv3_server..ssl::basic_context]
-[indexterm2 tlsv1..ssl::basic_context]
-[indexterm2 tlsv1_client..ssl::basic_context]
-[indexterm2 tlsv1_server..ssl::basic_context]
-[indexterm2 sslv23..ssl::basic_context]
-[indexterm2 sslv23_client..ssl::basic_context]
-[indexterm2 sslv23_server..ssl::basic_context]
+[indexterm2 sslv2..ssl::context]
+[indexterm2 sslv2_client..ssl::context]
+[indexterm2 sslv2_server..ssl::context]
+[indexterm2 sslv3..ssl::context]
+[indexterm2 sslv3_client..ssl::context]
+[indexterm2 sslv3_server..ssl::context]
+[indexterm2 tlsv1..ssl::context]
+[indexterm2 tlsv1_client..ssl::context]
+[indexterm2 tlsv1_server..ssl::context]
+[indexterm2 sslv23..ssl::context]
+[indexterm2 sslv23_client..ssl::context]
+[indexterm2 sslv23_server..ssl::context]
 
 [heading Values]
 [variablelist
@@ -81047,29 +81088,60 @@
 
 
 
-[section:no_sslv2 ssl::basic_context::no_sslv2]
+[section:native_handle ssl::context::native_handle]
 
+[indexterm2 native_handle..ssl::context]
+Get the underlying implementation in the native type.
 
-['Inherited from ssl::context_base.]
 
-[indexterm2 no_sslv2..ssl::basic_context]
-Disable SSL v2.
+ native_handle_type native_handle();
 
 
- static const int no_sslv2 = implementation_defined;
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
+
+
+[endsect]
+
+
+
+[section:native_handle_type ssl::context::native_handle_type]
+
+[indexterm2 native_handle_type..ssl::context]
+The native handle type of the SSL context.
+
+
+ typedef SSL_CTX * native_handle_type;
+
+
+
+[heading Requirements]
+
+[*Header: ][^boost/asio/ssl/context.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
 
 
-[section:no_sslv3 ssl::basic_context::no_sslv3]
+[section:no_sslv2 ssl::context::no_sslv2]
+
+[indexterm2 no_sslv2..ssl::context]
+Disable SSL v2.
+
+
+ static const int no_sslv2 = implementation_defined;
+
+
+
+[endsect]
+
 
 
-['Inherited from ssl::context_base.]
+[section:no_sslv3 ssl::context::no_sslv3]
 
-[indexterm2 no_sslv3..ssl::basic_context]
+[indexterm2 no_sslv3..ssl::context]
 Disable SSL v3.
 
 
@@ -81081,12 +81153,9 @@
 
 
 
-[section:no_tlsv1 ssl::basic_context::no_tlsv1]
-
+[section:no_tlsv1 ssl::context::no_tlsv1]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 no_tlsv1..ssl::basic_context]
+[indexterm2 no_tlsv1..ssl::context]
 Disable TLS v1.
 
 
@@ -81098,12 +81167,48 @@
 
 
 
-[section:options ssl::basic_context::options]
+[section:operator_eq_ ssl::context::operator=]
+
+[indexterm2 operator=..ssl::context]
+Move-assign a context from another.
+
+
+ context & operator=(
+ context && other);
 
 
-['Inherited from ssl::context_base.]
+This assignment operator moves an SSL context from one object to another.
 
-[indexterm2 options..ssl::basic_context]
+
+[heading Parameters]
+
+
+[variablelist
+
+[[other][The other context object from which the move will occur.]]
+
+]
+
+
+[heading Remarks]
+
+Following the move, the following operations only are valid for the moved-from object:
+* Destruction.
+
+* As a target for move-assignment.
+
+
+
+
+
+
+[endsect]
+
+
+
+[section:options ssl::context::options]
+
+[indexterm2 options..ssl::context]
 Bitmask type for SSL options.
 
 
@@ -81113,7 +81218,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/basic_context.hpp]
+[*Header: ][^boost/asio/ssl/context.hpp]
 
 [*Convenience header: ][^boost/asio/ssl.hpp]
 
@@ -81122,19 +81227,16 @@
 
 
 
-[section:password_purpose ssl::basic_context::password_purpose]
-
+[section:password_purpose ssl::context::password_purpose]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 password_purpose..ssl::basic_context]
+[indexterm2 password_purpose..ssl::context]
 Purpose of PEM password.
 
 
   enum password_purpose
 
-[indexterm2 for_reading..ssl::basic_context]
-[indexterm2 for_writing..ssl::basic_context]
+[indexterm2 for_reading..ssl::context]
+[indexterm2 for_writing..ssl::context]
 
 [heading Values]
 [variablelist
@@ -81156,44 +81258,23 @@
 [endsect]
 
 
+[section:set_options ssl::context::set_options]
 
-[section:service_type ssl::basic_context::service_type]
-
-[indexterm2 service_type..ssl::basic_context]
-The type of the service that will be used to provide context operations.
-
-
- typedef Service service_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/basic_context.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
-[section:set_options ssl::basic_context::set_options]
-
-[indexterm2 set_options..ssl::basic_context]
+[indexterm2 set_options..ssl::context]
 Set options on the context.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.set_options.overload1 set_options]``(
+ void ``[link boost_asio.reference.ssl__context.set_options.overload1 set_options]``(
       options o);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_options.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.set_options.overload2 set_options]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_options.overload2 set_options]``(
       options o,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_options.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_options.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::set_options (1 of 2 overloads)]
+[section:overload1 ssl::context::set_options (1 of 2 overloads)]
 
 
 Set options on the context.
@@ -81232,7 +81313,7 @@
 
 
 
-[section:overload2 ssl::basic_context::set_options (2 of 2 overloads)]
+[section:overload2 ssl::context::set_options (2 of 2 overloads)]
 
 
 Set options on the context.
@@ -81265,27 +81346,27 @@
 
 [endsect]
 
-[section:set_password_callback ssl::basic_context::set_password_callback]
+[section:set_password_callback ssl::context::set_password_callback]
 
-[indexterm2 set_password_callback..ssl::basic_context]
+[indexterm2 set_password_callback..ssl::context]
 Set the password callback.
 
 
   template<
       typename PasswordCallback>
- void ``[link boost_asio.reference.ssl__basic_context.set_password_callback.overload1 set_password_callback]``(
+ void ``[link boost_asio.reference.ssl__context.set_password_callback.overload1 set_password_callback]``(
       PasswordCallback callback);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_password_callback.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload1 more...]]``
 
   template<
       typename PasswordCallback>
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.set_password_callback.overload2 set_password_callback]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_password_callback.overload2 set_password_callback]``(
       PasswordCallback callback,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_password_callback.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_password_callback.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::set_password_callback (1 of 2 overloads)]
+[section:overload1 ssl::context::set_password_callback (1 of 2 overloads)]
 
 
 Set the password callback.
@@ -81333,7 +81414,7 @@
 
 
 
-[section:overload2 ssl::basic_context::set_password_callback (2 of 2 overloads)]
+[section:overload2 ssl::context::set_password_callback (2 of 2 overloads)]
 
 
 Set the password callback.
@@ -81375,23 +81456,23 @@
 
 [endsect]
 
-[section:set_verify_mode ssl::basic_context::set_verify_mode]
+[section:set_verify_mode ssl::context::set_verify_mode]
 
-[indexterm2 set_verify_mode..ssl::basic_context]
+[indexterm2 set_verify_mode..ssl::context]
 Set the peer verification mode.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.set_verify_mode.overload1 set_verify_mode]``(
+ void ``[link boost_asio.reference.ssl__context.set_verify_mode.overload1 set_verify_mode]``(
       verify_mode v);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_verify_mode.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.set_verify_mode.overload2 set_verify_mode]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.set_verify_mode.overload2 set_verify_mode]``(
       verify_mode v,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.set_verify_mode.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.set_verify_mode.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::set_verify_mode (1 of 2 overloads)]
+[section:overload1 ssl::context::set_verify_mode (1 of 2 overloads)]
 
 
 Set the peer verification mode.
@@ -81430,7 +81511,7 @@
 
 
 
-[section:overload2 ssl::basic_context::set_verify_mode (2 of 2 overloads)]
+[section:overload2 ssl::context::set_verify_mode (2 of 2 overloads)]
 
 
 Set the peer verification mode.
@@ -81464,12 +81545,9 @@
 [endsect]
 
 
-[section:single_dh_use ssl::basic_context::single_dh_use]
-
+[section:single_dh_use ssl::context::single_dh_use]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 single_dh_use..ssl::basic_context]
+[indexterm2 single_dh_use..ssl::context]
 Always create a new key when using tmp\_dh parameters.
 
 
@@ -81480,23 +81558,23 @@
 [endsect]
 
 
-[section:use_certificate_chain_file ssl::basic_context::use_certificate_chain_file]
+[section:use_certificate_chain_file ssl::context::use_certificate_chain_file]
 
-[indexterm2 use_certificate_chain_file..ssl::basic_context]
+[indexterm2 use_certificate_chain_file..ssl::context]
 Use a certificate chain from a file.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.use_certificate_chain_file.overload1 use_certificate_chain_file]``(
+ void ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 use_certificate_chain_file]``(
       const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_certificate_chain_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.use_certificate_chain_file.overload2 use_certificate_chain_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 use_certificate_chain_file]``(
       const std::string & filename,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_certificate_chain_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_chain_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::use_certificate_chain_file (1 of 2 overloads)]
+[section:overload1 ssl::context::use_certificate_chain_file (1 of 2 overloads)]
 
 
 Use a certificate chain from a file.
@@ -81535,7 +81613,7 @@
 
 
 
-[section:overload2 ssl::basic_context::use_certificate_chain_file (2 of 2 overloads)]
+[section:overload2 ssl::context::use_certificate_chain_file (2 of 2 overloads)]
 
 
 Use a certificate chain from a file.
@@ -81568,25 +81646,25 @@
 
 [endsect]
 
-[section:use_certificate_file ssl::basic_context::use_certificate_file]
+[section:use_certificate_file ssl::context::use_certificate_file]
 
-[indexterm2 use_certificate_file..ssl::basic_context]
+[indexterm2 use_certificate_file..ssl::context]
 Use a certificate from a file.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.use_certificate_file.overload1 use_certificate_file]``(
+ void ``[link boost_asio.reference.ssl__context.use_certificate_file.overload1 use_certificate_file]``(
       const std::string & filename,
       file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_certificate_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.use_certificate_file.overload2 use_certificate_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_certificate_file.overload2 use_certificate_file]``(
       const std::string & filename,
       file_format format,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_certificate_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_certificate_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::use_certificate_file (1 of 2 overloads)]
+[section:overload1 ssl::context::use_certificate_file (1 of 2 overloads)]
 
 
 Use a certificate from a file.
@@ -81628,7 +81706,7 @@
 
 
 
-[section:overload2 ssl::basic_context::use_certificate_file (2 of 2 overloads)]
+[section:overload2 ssl::context::use_certificate_file (2 of 2 overloads)]
 
 
 Use a certificate from a file.
@@ -81664,25 +81742,25 @@
 
 [endsect]
 
-[section:use_private_key_file ssl::basic_context::use_private_key_file]
+[section:use_private_key_file ssl::context::use_private_key_file]
 
-[indexterm2 use_private_key_file..ssl::basic_context]
+[indexterm2 use_private_key_file..ssl::context]
 Use a private key from a file.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.use_private_key_file.overload1 use_private_key_file]``(
+ void ``[link boost_asio.reference.ssl__context.use_private_key_file.overload1 use_private_key_file]``(
       const std::string & filename,
       file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_private_key_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.use_private_key_file.overload2 use_private_key_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_private_key_file.overload2 use_private_key_file]``(
       const std::string & filename,
       file_format format,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_private_key_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_private_key_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::use_private_key_file (1 of 2 overloads)]
+[section:overload1 ssl::context::use_private_key_file (1 of 2 overloads)]
 
 
 Use a private key from a file.
@@ -81724,7 +81802,7 @@
 
 
 
-[section:overload2 ssl::basic_context::use_private_key_file (2 of 2 overloads)]
+[section:overload2 ssl::context::use_private_key_file (2 of 2 overloads)]
 
 
 Use a private key from a file.
@@ -81760,25 +81838,25 @@
 
 [endsect]
 
-[section:use_rsa_private_key_file ssl::basic_context::use_rsa_private_key_file]
+[section:use_rsa_private_key_file ssl::context::use_rsa_private_key_file]
 
-[indexterm2 use_rsa_private_key_file..ssl::basic_context]
+[indexterm2 use_rsa_private_key_file..ssl::context]
 Use an RSA private key from a file.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file.overload1 use_rsa_private_key_file]``(
+ void ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 use_rsa_private_key_file]``(
       const std::string & filename,
       file_format format);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file.overload2 use_rsa_private_key_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 use_rsa_private_key_file]``(
       const std::string & filename,
       file_format format,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_rsa_private_key_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::use_rsa_private_key_file (1 of 2 overloads)]
+[section:overload1 ssl::context::use_rsa_private_key_file (1 of 2 overloads)]
 
 
 Use an RSA private key from a file.
@@ -81820,7 +81898,7 @@
 
 
 
-[section:overload2 ssl::basic_context::use_rsa_private_key_file (2 of 2 overloads)]
+[section:overload2 ssl::context::use_rsa_private_key_file (2 of 2 overloads)]
 
 
 Use an RSA private key from a file.
@@ -81856,23 +81934,23 @@
 
 [endsect]
 
-[section:use_tmp_dh_file ssl::basic_context::use_tmp_dh_file]
+[section:use_tmp_dh_file ssl::context::use_tmp_dh_file]
 
-[indexterm2 use_tmp_dh_file..ssl::basic_context]
+[indexterm2 use_tmp_dh_file..ssl::context]
 Use the specified file to obtain the temporary Diffie-Hellman parameters.
 
 
- void ``[link boost_asio.reference.ssl__basic_context.use_tmp_dh_file.overload1 use_tmp_dh_file]``(
+ void ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 use_tmp_dh_file]``(
       const std::string & filename);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_tmp_dh_file.overload1 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload1 more...]]``
 
- boost::system::error_code ``[link boost_asio.reference.ssl__basic_context.use_tmp_dh_file.overload2 use_tmp_dh_file]``(
+ boost::system::error_code ``[link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 use_tmp_dh_file]``(
       const std::string & filename,
       boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__basic_context.use_tmp_dh_file.overload2 more...]]``
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__context.use_tmp_dh_file.overload2 more...]]``
 
 
-[section:overload1 ssl::basic_context::use_tmp_dh_file (1 of 2 overloads)]
+[section:overload1 ssl::context::use_tmp_dh_file (1 of 2 overloads)]
 
 
 Use the specified file to obtain the temporary Diffie-Hellman parameters.
@@ -81911,7 +81989,7 @@
 
 
 
-[section:overload2 ssl::basic_context::use_tmp_dh_file (2 of 2 overloads)]
+[section:overload2 ssl::context::use_tmp_dh_file (2 of 2 overloads)]
 
 
 Use the specified file to obtain the temporary Diffie-Hellman parameters.
@@ -81945,12 +82023,9 @@
 [endsect]
 
 
-[section:verify_client_once ssl::basic_context::verify_client_once]
-
+[section:verify_client_once ssl::context::verify_client_once]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 verify_client_once..ssl::basic_context]
+[indexterm2 verify_client_once..ssl::context]
 Do not request client certificate on renegotiation. Ignored unless verify\_peer is set.
 
 
@@ -81962,12 +82037,9 @@
 
 
 
-[section:verify_fail_if_no_peer_cert ssl::basic_context::verify_fail_if_no_peer_cert]
-
+[section:verify_fail_if_no_peer_cert ssl::context::verify_fail_if_no_peer_cert]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 verify_fail_if_no_peer_cert..ssl::basic_context]
+[indexterm2 verify_fail_if_no_peer_cert..ssl::context]
 Fail verification if the peer has no certificate. Ignored unless verify\_peer is set.
 
 
@@ -81979,12 +82051,9 @@
 
 
 
-[section:verify_mode ssl::basic_context::verify_mode]
-
+[section:verify_mode ssl::context::verify_mode]
 
-['Inherited from ssl::context_base.]
-
-[indexterm2 verify_mode..ssl::basic_context]
+[indexterm2 verify_mode..ssl::context]
 Bitmask type for peer verification.
 
 
@@ -81994,7 +82063,7 @@
 
 [heading Requirements]
 
-[*Header: ][^boost/asio/ssl/basic_context.hpp]
+[*Header: ][^boost/asio/ssl/context.hpp]
 
 [*Convenience header: ][^boost/asio/ssl.hpp]
 
@@ -82003,12 +82072,9 @@
 
 
 
-[section:verify_none ssl::basic_context::verify_none]
+[section:verify_none ssl::context::verify_none]
 
-
-['Inherited from ssl::context_base.]
-
-[indexterm2 verify_none..ssl::basic_context]
+[indexterm2 verify_none..ssl::context]
 No verification.
 
 
@@ -82020,12 +82086,9 @@
 
 
 
-[section:verify_peer ssl::basic_context::verify_peer]
-
-
-['Inherited from ssl::context_base.]
+[section:verify_peer ssl::context::verify_peer]
 
-[indexterm2 verify_peer..ssl::basic_context]
+[indexterm2 verify_peer..ssl::context]
 Verify the peer.
 
 
@@ -82037,13 +82100,13 @@
 
 
 
-[section:_basic_context ssl::basic_context::~basic_context]
+[section:_context ssl::context::~context]
 
-[indexterm2 ~basic_context..ssl::basic_context]
+[indexterm2 ~context..ssl::context]
 Destructor.
 
 
- ~basic_context();
+ ~context();
 
 
 
@@ -82053,208 +82116,10 @@
 
 [endsect]
 
-
-[section:ssl__context ssl::context]
-
-[indexterm1 ssl::context]
-Typedef for the typical usage of context.
-
-
- typedef basic_context< context_service > context;
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.file_format [*file_format]]]
- [File format types. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.impl_type [*impl_type]]]
- [The native implementation type of the locking dispatcher. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.method [*method]]]
- [Different methods supported by a context. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.options [*options]]]
- [Bitmask type for SSL options. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.password_purpose [*password_purpose]]]
- [Purpose of PEM password. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.service_type [*service_type]]]
- [The type of the service that will be used to provide context operations. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__basic_context.verify_mode [*verify_mode]]]
- [Bitmask type for peer verification. ]
-
- ]
-
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ssl__basic_context.add_verify_path [*add_verify_path]]]
- [Add a directory containing certificate authority files to be used for performing verification. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.basic_context [*basic_context]]]
- [Constructor. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.impl [*impl]]]
- [Get the underlying implementation in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.load_verify_file [*load_verify_file]]]
- [Load a certification authority file for performing verification. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.set_options [*set_options]]]
- [Set options on the context. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.set_password_callback [*set_password_callback]]]
- [Set the password callback. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.set_verify_mode [*set_verify_mode]]]
- [Set the peer verification mode. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.use_certificate_chain_file [*use_certificate_chain_file]]]
- [Use a certificate chain from a file. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.use_certificate_file [*use_certificate_file]]]
- [Use a certificate from a file. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.use_private_key_file [*use_private_key_file]]]
- [Use a private key from a file. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.use_rsa_private_key_file [*use_rsa_private_key_file]]]
- [Use an RSA private key from a file. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.use_tmp_dh_file [*use_tmp_dh_file]]]
- [Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context._basic_context [*~basic_context]]]
- [Destructor. ]
- ]
-
-]
-
-[heading Data Members]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ssl__basic_context.default_workarounds [*default_workarounds]]]
- [Implement various bug workarounds. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.no_sslv2 [*no_sslv2]]]
- [Disable SSL v2. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.no_sslv3 [*no_sslv3]]]
- [Disable SSL v3. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.no_tlsv1 [*no_tlsv1]]]
- [Disable TLS v1. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.single_dh_use [*single_dh_use]]]
- [Always create a new key when using tmp_dh parameters. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.verify_client_once [*verify_client_once]]]
- [Do not request client certificate on renegotiation. Ignored unless verify_peer is set. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.verify_fail_if_no_peer_cert [*verify_fail_if_no_peer_cert]]]
- [Fail verification if the peer has no certificate. Ignored unless verify_peer is set. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.verify_none [*verify_none]]]
- [No verification. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__basic_context.verify_peer [*verify_peer]]]
- [Verify the peer. ]
- ]
-
-]
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/context.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
 [section:ssl__context_base ssl::context_base]
 
 
-The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is used as a base for the [link boost_asio.reference.ssl__basic_context `ssl::basic_context`] class template so that we have a common place to define various enums.
+The [link boost_asio.reference.ssl__context_base `ssl::context_base`] class is used as a base for the basic\_context class template so that we have a common place to define various enums.
 
 
   class context_base
@@ -82710,14 +82575,17 @@
 
 [endsect]
 
-[section:ssl__context_service ssl::context_service]
+[section:ssl__stream ssl::stream]
 
 
-Default service implementation for a context.
+Provides stream-oriented functionality using SSL.
 
 
- class context_service :
- public io_service::service
+ template<
+ typename Stream>
+ class stream :
+ public ssl::stream_base,
+ noncopyable
 
 
 [heading Types]
@@ -82726,8 +82594,29 @@
 
   [
 
- [[link boost_asio.reference.ssl__context_service.impl_type [*impl_type]]]
- [The type of the context. ]
+ [[link boost_asio.reference.ssl__stream.handshake_type [*handshake_type]]]
+ [Different handshake types. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__stream.lowest_layer_type [*lowest_layer_type]]]
+ [The type of the lowest layer. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__stream.native_handle_type [*native_handle_type]]]
+ [The native handle type of the SSL stream. ]
+
+ ]
+
+ [
+
+ [[link boost_asio.reference.ssl__stream.next_layer_type [*next_layer_type]]]
+ [The type of the next layer. ]
   
   ]
 
@@ -82738,141 +82627,141 @@
   [[Name][Description]]
 
   [
- [[link boost_asio.reference.ssl__context_service.add_verify_path [*add_verify_path]]]
- [Add a directory containing certification authority files to be used for performing verification. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__context_service.context_service [*context_service]]]
- [Constructor. ]
+ [[link boost_asio.reference.ssl__stream.async_handshake [*async_handshake]]]
+ [Start an asynchronous SSL handshake. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.create [*create]]]
- [Create a new context implementation. ]
+ [[link boost_asio.reference.ssl__stream.async_read_some [*async_read_some]]]
+ [Start an asynchronous read. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.destroy [*destroy]]]
- [Destroy a context implementation. ]
+ [[link boost_asio.reference.ssl__stream.async_shutdown [*async_shutdown]]]
+ [Asynchronously shut down SSL on the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
+ [[link boost_asio.reference.ssl__stream.async_write_some [*async_write_some]]]
+ [Start an asynchronous write. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.load_verify_file [*load_verify_file]]]
- [Load a certification authority file for performing verification. ]
+ [[link boost_asio.reference.ssl__stream.get_io_service [*get_io_service]]]
+ [Get the io_service associated with the object. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.null [*null]]]
- [Return a null context implementation. ]
+ [[link boost_asio.reference.ssl__stream.handshake [*handshake]]]
+ [Perform SSL handshaking. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.set_options [*set_options]]]
- [Set options on the context. ]
+ [[link boost_asio.reference.ssl__stream.lowest_layer [*lowest_layer]]]
+ [Get a reference to the lowest layer. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.set_password_callback [*set_password_callback]]]
- [Set the password callback. ]
+ [[link boost_asio.reference.ssl__stream.native_handle [*native_handle]]]
+ [Get the underlying implementation in the native type. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.set_verify_mode [*set_verify_mode]]]
- [Set peer verification mode. ]
+ [[link boost_asio.reference.ssl__stream.next_layer [*next_layer]]]
+ [Get a reference to the next layer. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.use_certificate_chain_file [*use_certificate_chain_file]]]
- [Use a certificate chain from a file. ]
+ [[link boost_asio.reference.ssl__stream.read_some [*read_some]]]
+ [Read some data from the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.use_certificate_file [*use_certificate_file]]]
- [Use a certificate from a file. ]
+ [[link boost_asio.reference.ssl__stream.shutdown [*shutdown]]]
+ [Shut down SSL on the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.use_private_key_file [*use_private_key_file]]]
- [Use a private key from a file. ]
+ [[link boost_asio.reference.ssl__stream.stream [*stream]]]
+ [Construct a stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.use_rsa_private_key_file [*use_rsa_private_key_file]]]
- [Use an RSA private key from a file. ]
+ [[link boost_asio.reference.ssl__stream.write_some [*write_some]]]
+ [Write some data to the stream. ]
   ]
   
   [
- [[link boost_asio.reference.ssl__context_service.use_tmp_dh_file [*use_tmp_dh_file]]]
- [Use the specified file to obtain the temporary Diffie-Hellman parameters. ]
+ [[link boost_asio.reference.ssl__stream._stream [*~stream]]]
+ [Destructor. ]
   ]
   
 ]
 
-[heading Data Members]
-[table
- [[Name][Description]]
+The stream class template provides asynchronous and blocking stream-oriented functionality using SSL.
 
- [
- [[link boost_asio.reference.ssl__context_service.id [*id]]]
- [The unique service identifier. ]
- ]
 
-]
+[heading Thread Safety]
+
+[*Distinct] [*objects:] Safe.
 
-[heading Requirements]
+[*Shared] [*objects:] Unsafe. The application must also ensure that all asynchronous operations are performed within the same implicit or explicit strand.
 
-[*Header: ][^boost/asio/ssl/context_service.hpp]
 
-[*Convenience header: ][^boost/asio/ssl.hpp]
+[heading Example]
+
+To use the SSL stream template with an `ip::tcp::socket`, you would write:
 
+ boost::asio::io_service io_service;
+ boost::asio::ssl::context ctx(boost::asio::ssl::context::sslv23);
+ boost::asio::ssl::stream<asio:ip::tcp::socket> sock(io_service, ctx);
 
-[section:add_verify_path ssl::context_service::add_verify_path]
 
-[indexterm2 add_verify_path..ssl::context_service]
-Add a directory containing certification authority files to be used for performing verification.
 
 
- boost::system::error_code add_verify_path(
- impl_type & impl,
- const std::string & path,
- boost::system::error_code & ec);
 
 
 
-[endsect]
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
-[section:context_service ssl::context_service::context_service]
 
-[indexterm2 context_service..ssl::context_service]
-Constructor.
+[section:async_handshake ssl::stream::async_handshake]
 
+[indexterm2 async_handshake..ssl::stream]
+Start an asynchronous SSL handshake.
 
- context_service(
- boost::asio::io_service & io_service);
 
+ template<
+ typename ``[link boost_asio.reference.HandshakeHandler HandshakeHandler]``>
+ void async_handshake(
+ handshake_type type,
+ HandshakeHandler handler);
 
 
-[endsect]
+This function is used to asynchronously perform an SSL handshake on the stream. This function call always returns immediately.
 
 
+[heading Parameters]
+
 
-[section:create ssl::context_service::create]
+[variablelist
+
+[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
 
-[indexterm2 create..ssl::context_service]
-Create a new context implementation.
+[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error // Result of operation.
+ );
+``
+]]
 
+]
 
- void create(
- impl_type & impl,
- context_base::method m);
 
 
 
@@ -82880,31 +82769,46 @@
 
 
 
-[section:destroy ssl::context_service::destroy]
-
-[indexterm2 destroy..ssl::context_service]
-Destroy a context implementation.
+[section:async_read_some ssl::stream::async_read_some]
 
+[indexterm2 async_read_some..ssl::stream]
+Start an asynchronous read.
 
- void destroy(
- impl_type & impl);
 
+ template<
+ typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
+ typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
+ void async_read_some(
+ const MutableBufferSequence & buffers,
+ ReadHandler handler);
 
 
-[endsect]
+This function is used to asynchronously read one or more bytes of data from the stream. The function call always returns immediately.
 
 
+[heading Parameters]
+
 
-[section:get_io_service ssl::context_service::get_io_service]
+[variablelist
+
+[[buffers][The buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
 
+[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
+``
+ void handler(
+ const boost::system::error_code& error, // Result of operation.
+ std::size_t bytes_transferred // Number of bytes read.
+ );
+``
+]]
 
-['Inherited from io_service.]
+]
 
-[indexterm2 get_io_service..ssl::context_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
 
+[heading Remarks]
+
+The async\_read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
 
- boost::asio::io_service & get_io_service();
 
 
 
@@ -82912,492 +82816,23 @@
 
 
 
-[section:id ssl::context_service::id]
-
-[indexterm2 id..ssl::context_service]
-The unique service identifier.
-
-
- static boost::asio::io_service::id id;
-
+[section:async_shutdown ssl::stream::async_shutdown]
 
+[indexterm2 async_shutdown..ssl::stream]
+Asynchronously shut down SSL on the stream.
 
-[endsect]
 
+ template<
+ typename ``[link boost_asio.reference.ShutdownHandler ShutdownHandler]``>
+ void async_shutdown(
+ ShutdownHandler handler);
 
 
-[section:impl_type ssl::context_service::impl_type]
+This function is used to asynchronously shut down SSL on the stream. This function call always returns immediately.
 
-[indexterm2 impl_type..ssl::context_service]
-The type of the context.
 
-
- typedef implementation_defined impl_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/context_service.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
-
-[section:load_verify_file ssl::context_service::load_verify_file]
-
-[indexterm2 load_verify_file..ssl::context_service]
-Load a certification authority file for performing verification.
-
-
- boost::system::error_code load_verify_file(
- impl_type & impl,
- const std::string & filename,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:null ssl::context_service::null]
-
-[indexterm2 null..ssl::context_service]
-Return a null context implementation.
-
-
- impl_type null() const;
-
-
-
-[endsect]
-
-
-
-[section:set_options ssl::context_service::set_options]
-
-[indexterm2 set_options..ssl::context_service]
-Set options on the context.
-
-
- boost::system::error_code set_options(
- impl_type & impl,
- context_base::options o,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:set_password_callback ssl::context_service::set_password_callback]
-
-[indexterm2 set_password_callback..ssl::context_service]
-Set the password callback.
-
-
- template<
- typename PasswordCallback>
- boost::system::error_code set_password_callback(
- impl_type & impl,
- PasswordCallback callback,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:set_verify_mode ssl::context_service::set_verify_mode]
-
-[indexterm2 set_verify_mode..ssl::context_service]
-Set peer verification mode.
-
-
- boost::system::error_code set_verify_mode(
- impl_type & impl,
- context_base::verify_mode v,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:use_certificate_chain_file ssl::context_service::use_certificate_chain_file]
-
-[indexterm2 use_certificate_chain_file..ssl::context_service]
-Use a certificate chain from a file.
-
-
- boost::system::error_code use_certificate_chain_file(
- impl_type & impl,
- const std::string & filename,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:use_certificate_file ssl::context_service::use_certificate_file]
-
-[indexterm2 use_certificate_file..ssl::context_service]
-Use a certificate from a file.
-
-
- boost::system::error_code use_certificate_file(
- impl_type & impl,
- const std::string & filename,
- context_base::file_format format,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:use_private_key_file ssl::context_service::use_private_key_file]
-
-[indexterm2 use_private_key_file..ssl::context_service]
-Use a private key from a file.
-
-
- boost::system::error_code use_private_key_file(
- impl_type & impl,
- const std::string & filename,
- context_base::file_format format,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:use_rsa_private_key_file ssl::context_service::use_rsa_private_key_file]
-
-[indexterm2 use_rsa_private_key_file..ssl::context_service]
-Use an RSA private key from a file.
-
-
- boost::system::error_code use_rsa_private_key_file(
- impl_type & impl,
- const std::string & filename,
- context_base::file_format format,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:use_tmp_dh_file ssl::context_service::use_tmp_dh_file]
-
-[indexterm2 use_tmp_dh_file..ssl::context_service]
-Use the specified file to obtain the temporary Diffie-Hellman parameters.
-
-
- boost::system::error_code use_tmp_dh_file(
- impl_type & impl,
- const std::string & filename,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[endsect]
-
-[section:ssl__stream ssl::stream]
-
-
-Provides stream-oriented functionality using SSL.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.Service Service]`` = stream_service>
- class stream :
- public ssl::stream_base
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
- [
-
- [[link boost_asio.reference.ssl__stream.handshake_type [*handshake_type]]]
- [Different handshake types. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.impl_type [*impl_type]]]
- [The native implementation type of the stream. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.lowest_layer_type [*lowest_layer_type]]]
- [The type of the lowest layer. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.next_layer_type [*next_layer_type]]]
- [The type of the next layer. ]
-
- ]
-
- [
-
- [[link boost_asio.reference.ssl__stream.service_type [*service_type]]]
- [The type of the service that will be used to provide stream operations. ]
-
- ]
-
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ssl__stream.async_handshake [*async_handshake]]]
- [Start an asynchronous SSL handshake. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_shutdown [*async_shutdown]]]
- [Asynchronously shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.get_io_service [*get_io_service]]]
- [Get the io_service associated with the object. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.handshake [*handshake]]]
- [Perform SSL handshaking. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.impl [*impl]]]
- [Get the underlying implementation in the native type. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.in_avail [*in_avail]]]
- [Determine the amount of data that may be read without blocking. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.lowest_layer [*lowest_layer]]]
- [Get a reference to the lowest layer.
-
- Get a const reference to the lowest layer. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.next_layer [*next_layer]]]
- [Get a reference to the next layer. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.peek [*peek]]]
- [Peek at the incoming data on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.read_some [*read_some]]]
- [Read some data from the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.shutdown [*shutdown]]]
- [Shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.stream [*stream]]]
- [Construct a stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream.write_some [*write_some]]]
- [Write some data to the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream._stream [*~stream]]]
- [Destructor. ]
- ]
-
-]
-
-The stream class template provides asynchronous and blocking stream-oriented functionality using SSL.
-
-
-[heading Thread Safety]
-
-[*Distinct] [*objects:] Safe.
-
-[*Shared] [*objects:] Unsafe.
-
-
-[heading Example]
-
-To use the SSL stream template with an `ip::tcp::socket`, you would write:
-
- boost::asio::io_service io_service;
- boost::asio::ssl::context context(io_service, boost::asio::ssl::context::sslv23);
- boost::asio::ssl::stream<boost::asio::ip::tcp::socket> sock(io_service, context);
-
-
-
-
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[section:async_handshake ssl::stream::async_handshake]
-
-[indexterm2 async_handshake..ssl::stream]
-Start an asynchronous SSL handshake.
-
-
- template<
- typename HandshakeHandler>
- void async_handshake(
- handshake_type type,
- HandshakeHandler handler);
-
-
-This function is used to asynchronously perform an SSL handshake on the stream. This function call always returns immediately.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[type][The type of handshaking to be performed, i.e. as a client or as a server.]]
-
-[[handler][The handler to be called when the handshake operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error // Result of operation.
- );
-``
-]]
-
-]
-
-
-
-
-[endsect]
-
-
-
-[section:async_read_some ssl::stream::async_read_some]
-
-[indexterm2 async_read_some..ssl::stream]
-Start an asynchronous read.
-
-
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- const MutableBufferSequence & buffers,
- ReadHandler handler);
-
-
-This function is used to asynchronously read one or more bytes of data from the stream. The function call always returns immediately.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[buffers][The buffers into which the data will be read. Although the buffers object may be copied as necessary, ownership of the underlying buffers is retained by the caller, which must guarantee that they remain valid until the handler is called.]]
-
-[[handler][The handler to be called when the read operation completes. Copies will be made of the handler as required. The equivalent function signature of the handler must be:
-``
- void handler(
- const boost::system::error_code& error, // Result of operation.
- std::size_t bytes_transferred // Number of bytes read.
- );
-``
-]]
-
-]
-
-
-[heading Remarks]
-
-The async\_read\_some operation may not read all of the requested number of bytes. Consider using the [link boost_asio.reference.async_read `async_read`] function if you need to ensure that the requested amount of data is read before the asynchronous operation completes.
-
-
-
-
-[endsect]
-
-
-
-[section:async_shutdown ssl::stream::async_shutdown]
-
-[indexterm2 async_shutdown..ssl::stream]
-Asynchronously shut down SSL on the stream.
-
-
- template<
- typename ShutdownHandler>
- void async_shutdown(
- ShutdownHandler handler);
-
-
-This function is used to asynchronously shut down SSL on the stream. This function call always returns immediately.
-
-
-[heading Parameters]
-
+[heading Parameters]
+
 
 [variablelist
   
@@ -83607,125 +83042,6 @@
 [endsect]
 
 
-
-[section:impl ssl::stream::impl]
-
-[indexterm2 impl..ssl::stream]
-Get the underlying implementation in the native type.
-
-
- impl_type impl();
-
-
-This function may be used to obtain the underlying implementation of the context. This is intended to allow access to stream functionality that is not otherwise provided.
-
-
-[endsect]
-
-
-
-[section:impl_type ssl::stream::impl_type]
-
-[indexterm2 impl_type..ssl::stream]
-The native implementation type of the stream.
-
-
- typedef service_type::impl_type impl_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
-[section:in_avail ssl::stream::in_avail]
-
-[indexterm2 in_avail..ssl::stream]
-Determine the amount of data that may be read without blocking.
-
-
- std::size_t ``[link boost_asio.reference.ssl__stream.in_avail.overload1 in_avail]``();
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.in_avail.overload1 more...]]``
-
- std::size_t ``[link boost_asio.reference.ssl__stream.in_avail.overload2 in_avail]``(
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.in_avail.overload2 more...]]``
-
-
-[section:overload1 ssl::stream::in_avail (1 of 2 overloads)]
-
-
-Determine the amount of data that may be read without blocking.
-
-
- std::size_t in_avail();
-
-
-This function is used to determine the amount of data, in bytes, that may be read from the stream without blocking.
-
-
-[heading Return Value]
-
-The number of bytes of data that can be read without blocking.
-
-
-[heading Exceptions]
-
-
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
-
-]
-
-
-
-
-[endsect]
-
-
-
-[section:overload2 ssl::stream::in_avail (2 of 2 overloads)]
-
-
-Determine the amount of data that may be read without blocking.
-
-
- std::size_t in_avail(
- boost::system::error_code & ec);
-
-
-This function is used to determine the amount of data, in bytes, that may be read from the stream without blocking.
-
-
-[heading Parameters]
-
-
-[variablelist
-
-[[ec][Set to indicate what error occurred, if any.]]
-
-]
-
-
-[heading Return Value]
-
-The number of bytes of data that can be read without blocking.
-
-
-
-
-[endsect]
-
-
-[endsect]
-
 [section:lowest_layer ssl::stream::lowest_layer]
 
 [indexterm2 lowest_layer..ssl::stream]
@@ -83735,10 +83051,6 @@
   lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload1 lowest_layer]``();
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload1 more...]]``
 
-
-Get a const reference to the lowest layer.
-
-
   const lowest_layer_type & ``[link boost_asio.reference.ssl__stream.lowest_layer.overload2 lowest_layer]``() const;
   `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.lowest_layer.overload2 more...]]``
 
@@ -83769,18 +83081,18 @@
 [section:overload2 ssl::stream::lowest_layer (2 of 2 overloads)]
 
 
-Get a const reference to the lowest layer.
+Get a reference to the lowest layer.
 
 
   const lowest_layer_type & lowest_layer() const;
 
 
-This function returns a const reference to the lowest layer in a stack of stream layers.
+This function returns a reference to the lowest layer in a stack of stream layers.
 
 
 [heading Return Value]
       
-A const reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
+A reference to the lowest layer in the stack of stream layers. Ownership is not transferred to the caller.
 
 
 
@@ -83812,36 +83124,29 @@
 
 
 
-[section:next_layer ssl::stream::next_layer]
-
-[indexterm2 next_layer..ssl::stream]
-Get a reference to the next layer.
-
-
- next_layer_type & next_layer();
-
+[section:native_handle ssl::stream::native_handle]
 
-This function returns a reference to the next layer in a stack of stream layers.
+[indexterm2 native_handle..ssl::stream]
+Get the underlying implementation in the native type.
 
 
-[heading Return Value]
-
-A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
+ native_handle_type native_handle();
 
 
+This function may be used to obtain the underlying implementation of the context. This is intended to allow access to context functionality that is not otherwise provided.
 
 
 [endsect]
 
 
 
-[section:next_layer_type ssl::stream::next_layer_type]
+[section:native_handle_type ssl::stream::native_handle_type]
 
-[indexterm2 next_layer_type..ssl::stream]
-The type of the next layer.
+[indexterm2 native_handle_type..ssl::stream]
+The native handle type of the SSL stream.
 
 
- typedef boost::remove_reference< Stream >::type next_layer_type;
+ typedef SSL * native_handle_type;
 
 
 
@@ -83855,112 +83160,87 @@
 [endsect]
 
 
-[section:peek ssl::stream::peek]
+[section:next_layer ssl::stream::next_layer]
 
-[indexterm2 peek..ssl::stream]
-Peek at the incoming data on the stream.
+[indexterm2 next_layer..ssl::stream]
+Get a reference to the next layer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.peek.overload1 peek]``(
- const MutableBufferSequence & buffers);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.peek.overload1 more...]]``
+ const next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload1 next_layer]``() const;
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload1 more...]]``
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t ``[link boost_asio.reference.ssl__stream.peek.overload2 peek]``(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
- `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.peek.overload2 more...]]``
+ next_layer_type & ``[link boost_asio.reference.ssl__stream.next_layer.overload2 next_layer]``();
+ `` [''''&raquo;''' [link boost_asio.reference.ssl__stream.next_layer.overload2 more...]]``
 
 
-[section:overload1 ssl::stream::peek (1 of 2 overloads)]
+[section:overload1 ssl::stream::next_layer (1 of 2 overloads)]
 
 
-Peek at the incoming data on the stream.
+Get a reference to the next layer.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers);
-
+ const next_layer_type & next_layer() const;
 
-This function is used to peek at the incoming data on the stream, without removing it from the input queue. The function call will block until data has been read successfully or an error occurs.
 
+This function returns a reference to the next layer in a stack of stream layers.
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][The buffers into which the data will be read.]]
+[heading Return Value]
+
+A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
 
-]
 
 
-[heading Return Value]
-
-The number of bytes read.
 
+[endsect]
 
-[heading Exceptions]
-
 
-[variablelist
-
-[[boost::system::system_error][Thrown on failure. ]]
 
-]
+[section:overload2 ssl::stream::next_layer (2 of 2 overloads)]
 
 
+Get a reference to the next layer.
 
 
-[endsect]
+ next_layer_type & next_layer();
 
 
+This function returns a reference to the next layer in a stack of stream layers.
 
-[section:overload2 ssl::stream::peek (2 of 2 overloads)]
 
+[heading Return Value]
+
+A reference to the next layer in the stack of stream layers. Ownership is not transferred to the caller.
 
-Peek at the incoming data on the stream.
 
 
- template<
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
 
+[endsect]
 
-This function is used to peek at the incoming data on the stream, withoutxi removing it from the input queue. The function call will block until data has been read successfully or an error occurs.
 
+[endsect]
 
-[heading Parameters]
-
 
-[variablelist
-
-[[buffers][The buffers into which the data will be read.]]
+[section:next_layer_type ssl::stream::next_layer_type]
 
-[[ec][Set to indicate what error occurred, if any.]]
+[indexterm2 next_layer_type..ssl::stream]
+The type of the next layer.
 
-]
 
+ typedef boost::remove_reference< Stream >::type next_layer_type;
 
-[heading Return Value]
-
-The number of bytes read. Returns 0 if an error occurred.
 
 
+[heading Requirements]
 
+[*Header: ][^boost/asio/ssl/stream.hpp]
 
-[endsect]
+[*Convenience header: ][^boost/asio/ssl.hpp]
 
 
 [endsect]
 
+
 [section:read_some ssl::stream::read_some]
 
 [indexterm2 read_some..ssl::stream]
@@ -84077,27 +83357,6 @@
 
 [endsect]
 
-
-[section:service_type ssl::stream::service_type]
-
-[indexterm2 service_type..ssl::stream]
-The type of the service that will be used to provide stream operations.
-
-
- typedef Service service_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
 [section:shutdown ssl::stream::shutdown]
 
 [indexterm2 shutdown..ssl::stream]
@@ -84178,11 +83437,10 @@
 
 
   template<
- typename Arg,
- typename Context_Service>
+ typename Arg>
   stream(
       Arg & arg,
- basic_context< Context_Service > & context);
+ context & ctx);
 
 
 This constructor creates a stream and initialises the underlying stream object.
@@ -84195,7 +83453,7 @@
   
 [[arg][The argument to be passed to initialise the underlying stream.]]
 
-[[context][The SSL context to be used for the stream. ]]
+[[ctx][The SSL context to be used for the stream. ]]
 
 ]
 
@@ -84426,455 +83684,6 @@
 
 [endsect]
 
-[section:ssl__stream_service ssl::stream_service]
-
-
-Default service implementation for an SSL stream.
-
-
- class stream_service :
- public io_service::service
-
-
-[heading Types]
-[table
- [[Name][Description]]
-
- [
-
- [[link boost_asio.reference.ssl__stream_service.impl_type [*impl_type]]]
- [The type of a stream implementation. ]
-
- ]
-
-]
-
-[heading Member Functions]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ssl__stream_service.async_handshake [*async_handshake]]]
- [Start an asynchronous SSL handshake. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.async_read_some [*async_read_some]]]
- [Start an asynchronous read. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.async_shutdown [*async_shutdown]]]
- [Asynchronously shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.async_write_some [*async_write_some]]]
- [Start an asynchronous write. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.create [*create]]]
- [Create a new stream implementation. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.destroy [*destroy]]]
- [Destroy a stream implementation. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.get_io_service [*get_io_service]]]
- [Get the io_service object that owns the service. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.handshake [*handshake]]]
- [Perform SSL handshaking. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.in_avail [*in_avail]]]
- [Determine the amount of data that may be read without blocking. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.null [*null]]]
- [Return a null stream implementation. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.peek [*peek]]]
- [Peek at the incoming data on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.read_some [*read_some]]]
- [Read some data from the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.shutdown [*shutdown]]]
- [Shut down SSL on the stream. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.stream_service [*stream_service]]]
- [Construct a new stream service for the specified io_service. ]
- ]
-
- [
- [[link boost_asio.reference.ssl__stream_service.write_some [*write_some]]]
- [Write some data to the stream. ]
- ]
-
-]
-
-[heading Data Members]
-[table
- [[Name][Description]]
-
- [
- [[link boost_asio.reference.ssl__stream_service.id [*id]]]
- [The unique service identifier. ]
- ]
-
-]
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream_service.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[section:async_handshake ssl::stream_service::async_handshake]
-
-[indexterm2 async_handshake..ssl::stream_service]
-Start an asynchronous SSL handshake.
-
-
- template<
- typename Stream,
- typename HandshakeHandler>
- void async_handshake(
- impl_type & impl,
- Stream & next_layer,
- stream_base::handshake_type type,
- HandshakeHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:async_read_some ssl::stream_service::async_read_some]
-
-[indexterm2 async_read_some..ssl::stream_service]
-Start an asynchronous read.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``,
- typename ``[link boost_asio.reference.ReadHandler ReadHandler]``>
- void async_read_some(
- impl_type & impl,
- Stream & next_layer,
- const MutableBufferSequence & buffers,
- ReadHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:async_shutdown ssl::stream_service::async_shutdown]
-
-[indexterm2 async_shutdown..ssl::stream_service]
-Asynchronously shut down SSL on the stream.
-
-
- template<
- typename Stream,
- typename ShutdownHandler>
- void async_shutdown(
- impl_type & impl,
- Stream & next_layer,
- ShutdownHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:async_write_some ssl::stream_service::async_write_some]
-
-[indexterm2 async_write_some..ssl::stream_service]
-Start an asynchronous write.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``,
- typename ``[link boost_asio.reference.WriteHandler WriteHandler]``>
- void async_write_some(
- impl_type & impl,
- Stream & next_layer,
- const ConstBufferSequence & buffers,
- WriteHandler handler);
-
-
-
-[endsect]
-
-
-
-[section:create ssl::stream_service::create]
-
-[indexterm2 create..ssl::stream_service]
-Create a new stream implementation.
-
-
- template<
- typename Stream,
- typename Context_Service>
- void create(
- impl_type & impl,
- Stream & next_layer,
- basic_context< Context_Service > & context);
-
-
-
-[endsect]
-
-
-
-[section:destroy ssl::stream_service::destroy]
-
-[indexterm2 destroy..ssl::stream_service]
-Destroy a stream implementation.
-
-
- template<
- typename Stream>
- void destroy(
- impl_type & impl,
- Stream & next_layer);
-
-
-
-[endsect]
-
-
-
-[section:get_io_service ssl::stream_service::get_io_service]
-
-
-['Inherited from io_service.]
-
-[indexterm2 get_io_service..ssl::stream_service]
-Get the [link boost_asio.reference.io_service `io_service`] object that owns the service.
-
-
- boost::asio::io_service & get_io_service();
-
-
-
-[endsect]
-
-
-
-[section:handshake ssl::stream_service::handshake]
-
-[indexterm2 handshake..ssl::stream_service]
-Perform SSL handshaking.
-
-
- template<
- typename Stream>
- boost::system::error_code handshake(
- impl_type & impl,
- Stream & next_layer,
- stream_base::handshake_type type,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:id ssl::stream_service::id]
-
-[indexterm2 id..ssl::stream_service]
-The unique service identifier.
-
-
- static boost::asio::io_service::id id;
-
-
-
-[endsect]
-
-
-
-[section:impl_type ssl::stream_service::impl_type]
-
-[indexterm2 impl_type..ssl::stream_service]
-The type of a stream implementation.
-
-
- typedef implementation_defined impl_type;
-
-
-
-[heading Requirements]
-
-[*Header: ][^boost/asio/ssl/stream_service.hpp]
-
-[*Convenience header: ][^boost/asio/ssl.hpp]
-
-
-[endsect]
-
-
-
-[section:in_avail ssl::stream_service::in_avail]
-
-[indexterm2 in_avail..ssl::stream_service]
-Determine the amount of data that may be read without blocking.
-
-
- template<
- typename Stream>
- std::size_t in_avail(
- impl_type & impl,
- Stream & next_layer,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:null ssl::stream_service::null]
-
-[indexterm2 null..ssl::stream_service]
-Return a null stream implementation.
-
-
- impl_type null() const;
-
-
-
-[endsect]
-
-
-
-[section:peek ssl::stream_service::peek]
-
-[indexterm2 peek..ssl::stream_service]
-Peek at the incoming data on the stream.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t peek(
- impl_type & impl,
- Stream & next_layer,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:read_some ssl::stream_service::read_some]
-
-[indexterm2 read_some..ssl::stream_service]
-Read some data from the stream.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.MutableBufferSequence MutableBufferSequence]``>
- std::size_t read_some(
- impl_type & impl,
- Stream & next_layer,
- const MutableBufferSequence & buffers,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:shutdown ssl::stream_service::shutdown]
-
-[indexterm2 shutdown..ssl::stream_service]
-Shut down SSL on the stream.
-
-
- template<
- typename Stream>
- boost::system::error_code shutdown(
- impl_type & impl,
- Stream & next_layer,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[section:stream_service ssl::stream_service::stream_service]
-
-[indexterm2 stream_service..ssl::stream_service]
-Construct a new stream service for the specified [link boost_asio.reference.io_service `io_service`].
-
-
- stream_service(
- boost::asio::io_service & io_service);
-
-
-
-[endsect]
-
-
-
-[section:write_some ssl::stream_service::write_some]
-
-[indexterm2 write_some..ssl::stream_service]
-Write some data to the stream.
-
-
- template<
- typename Stream,
- typename ``[link boost_asio.reference.ConstBufferSequence ConstBufferSequence]``>
- std::size_t write_some(
- impl_type & impl,
- Stream & next_layer,
- const ConstBufferSequence & buffers,
- boost::system::error_code & ec);
-
-
-
-[endsect]
-
-
-
-[endsect]
-
 
 [section:strand strand]
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk