Blame view

3rdparty/boost_1_81_0/boost/beast/websocket/ssl.hpp 2.88 KB
63e88f80   Hu Chunming   提交三方库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
  //
  // 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>
  void
  teardown(
      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`.
  
      @par Per-Operation Cancellation
  
      This asynchronous operation supports cancellation for the following
      net::cancellation_type values:
  
      @li @c net::cancellation_type::terminal
      @li @c net::cancellation_type::partial
      @li @c net::cancellation_type::total
  
      if they are also supported by the socket's @c async_teardown
      and @c async_shutdown operation.
  
  */
  template<class AsyncStream, class TeardownHandler>
  void
  async_teardown(
      role_type role,
      net::ssl::stream<AsyncStream>& stream,
      TeardownHandler&& handler);
  
  } // beast
  } // boost
  
  #include <boost/beast/websocket/impl/ssl.hpp>
  
  #endif