| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | //// Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail dot com)//// Distributed under the Boost Software License, Version 1.0. (See accompanying// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)//// Official repository: https://github.com/boostorg/beast//#ifndef BOOST_BEAST_WEBSOCKET_SSL_HPP#define BOOST_BEAST_WEBSOCKET_SSL_HPP#include <boost/beast/core/detail/config.hpp>#include <boost/beast/websocket/teardown.hpp>#include <boost/asio/ip/tcp.hpp>#include <boost/asio/ssl/stream.hpp>namespace boost {namespace beast {/** Tear down a `net::ssl::stream`.    This tears down a connection. The implementation will call    the overload of this function based on the `Stream` parameter    used to consruct the socket. When `Stream` is a user defined    type, and not a `net::ip::tcp::socket` or any    `net::ssl::stream`, callers are responsible for    providing a suitable overload of this function.    @param role The role of the local endpoint    @param stream The stream to tear down.    @param ec Set to the error if any occurred.*/template<class SyncStream>voidteardown(    role_type role,    net::ssl::stream<SyncStream>& stream,    error_code& ec);/** Start tearing down a `net::ssl::stream`.    This begins tearing down a connection asynchronously.    The implementation will call the overload of this function    based on the `Stream` parameter used to consruct the socket.    When `Stream` is a user defined type, and not a    `net::ip::tcp::socket` or any `net::ssl::stream`,    callers are responsible for providing a suitable overload    of this function.    @param role The role of the local endpoint    @param stream The stream to tear down.    @param handler The completion handler to invoke when the operation    completes. The implementation takes ownership of the handler by    performing a decay-copy. The equivalent function signature of    the handler must be:    @code    void handler(        error_code const& error // result of operation    );    @endcode    Regardless of whether the asynchronous operation completes    immediately or not, the handler will not be invoked from within    this function. Invocation of the handler will be performed in a    manner equivalent to using `net::post`.*/template<class AsyncStream, class TeardownHandler>voidasync_teardown(    role_type role,    net::ssl::stream<AsyncStream>& stream,    TeardownHandler&& handler);} // beast} // boost#include <boost/beast/websocket/impl/ssl.hpp>#endif
 |