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
28#ifndef WEBSOCKETPP_COMMON_CPP11_HPP
29#define WEBSOCKETPP_COMMON_CPP11_HPP
32
33
37 #define __has_feature(x) 0
40 #define __has_extension __has_feature
48#if defined(_WEBSOCKETPP_CPP11_STL_) || __cplusplus
>= 201103L
|| defined(_WEBSOCKETPP_CPP11_STRICT_)
57 #define _WEBSOCKETPP_CPP11_INTERNAL_
71 #ifndef _WEBSOCKETPP_NOEXCEPT_TOKEN_
72 #define _WEBSOCKETPP_NOEXCEPT_TOKEN_ noexcept
74 #ifndef _WEBSOCKETPP_CONSTEXPR_TOKEN_
75 #define _WEBSOCKETPP_CONSTEXPR_TOKEN_ constexpr
77 #ifndef _WEBSOCKETPP_INITIALIZER_LISTS_
78 #define _WEBSOCKETPP_INITIALIZER_LISTS_
80 #ifndef _WEBSOCKETPP_NULLPTR_TOKEN_
81 #define _WEBSOCKETPP_NULLPTR_TOKEN_ nullptr
83 #ifndef _WEBSOCKETPP_MOVE_SEMANTICS_
84 #define _WEBSOCKETPP_MOVE_SEMANTICS_
86 #ifndef _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
87 #define _WEBSOCKETPP_DEFAULT_DELETE_FUNCTIONS_
93 #define _WEBSOCKETPP_PUTTIME_
100 #ifndef _WEBSOCKETPP_NOEXCEPT_TOKEN_
101 #ifdef _WEBSOCKETPP_NOEXCEPT_
103 #define _WEBSOCKETPP_NOEXCEPT_TOKEN_ noexcept
105 #if __has_feature(cxx_noexcept)
107 #define _WEBSOCKETPP_NOEXCEPT_TOKEN_ noexcept
108 #elif defined(_MSC_VER) && _MSC_VER >= 1900
110 #define _WEBSOCKETPP_NOEXCEPT_TOKEN_ noexcept
113 #define _WEBSOCKETPP_NOEXCEPT_TOKEN_
119 #ifndef _WEBSOCKETPP_CONSTEXPR_TOKEN_
120 #ifdef _WEBSOCKETPP_CONSTEXPR_
122 #define _WEBSOCKETPP_CONSTEXPR_TOKEN_ constexpr
124 #if __has_feature(cxx_constexpr)
126 #define _WEBSOCKETPP_CONSTEXPR_TOKEN_ constexpr
127 #elif defined(_MSC_VER) && _MSC_VER >= 1900
129 #define _WEBSOCKETPP_CONSTEXPR_TOKEN_ constexpr
132 #define _WEBSOCKETPP_CONSTEXPR_TOKEN_
138 #if __has_feature(cxx_generalized_initializers) && !defined(_WEBSOCKETPP_INITIALIZER_LISTS_)
139 #define _WEBSOCKETPP_INITIALIZER_LISTS_
143 #ifndef _WEBSOCKETPP_NULLPTR_TOKEN_
144 #ifdef _WEBSOCKETPP_NULLPTR_
146 #define _WEBSOCKETPP_NULLPTR_TOKEN_ nullptr
148 #if __has_feature(cxx_nullptr)
150 #define _WEBSOCKETPP_NULLPTR_TOKEN_ nullptr
151 #elif defined(_MSC_VER) &&_MSC_VER >= 1600
153 #define _WEBSOCKETPP_NULLPTR_TOKEN_ nullptr
156 #define _WEBSOCKETPP_NULLPTR_TOKEN_ 0
Concurrency policy that uses std::mutex / boost::mutex.
Stub for user supplied base class.
Stub for user supplied base class.
Stub class for use when disabling permessage_deflate extension.
Stores, parses, and manipulates HTTP requests.
Stores, parses, and manipulates HTTP responses.
Basic logger that outputs to an ostream.
Thread safe stub "random" integer generator.
Server endpoint role based on the given config.
Basic ASIO endpoint socket component.
Asio based endpoint transport component.
Concurrency handling support.
Implementation of RFC 7692, the permessage-deflate WebSocket extension.
Stub RNG policy that always returns 0.
Random number generation policies.
Transport policy that uses asio.
Transport policy that uses STL iostream for I/O and does not support timers.
Transport policies provide network connectivity and timers.
Namespace for the WebSocket++ project.
Server config with asio transport and TLS disabled.
Extension specific settings:
static const uint8_t minimum_outgoing_window_bits
static const bool allow_disabling_context_takeover
static const long timeout_socket_shutdown
Length of time to wait for socket shutdown.
static const long timeout_connect
Length of time to wait for TCP connect.
static const long timeout_dns_resolve
Length of time to wait for dns resolution.
static const long timeout_proxy
Length of time to wait before a proxy handshake is aborted.
static const long timeout_socket_pre_init
Default timer values (in ms)
static bool const enable_multithreading
static const long timeout_socket_post_init
Length of time to wait for socket post-initialization.
Server config with iostream transport.
websocketpp::random::none::int_generator< uint32_t > rng_type
RNG policies.
static const websocketpp::log::level elog_level
Default static error logging channels.
websocketpp::transport::iostream::endpoint< transport_config > transport_type
Transport Endpoint Component.
static const size_t max_http_body_size
Default maximum http body size.
static const long timeout_open_handshake
Default timer values (in ms)
static const size_t max_message_size
Default maximum message size.
websocketpp::log::basic< concurrency_type, websocketpp::log::elevel > elog_type
Logging policies.
static const bool drop_on_protocol_error
Drop connections immediately on protocol error.
static const long timeout_close_handshake
Length of time before a closing handshake is aborted.
static const websocketpp::log::level alog_level
Default static access logging channels.
static const long timeout_pong
Length of time to wait for a pong after a ping.
static const bool silent_close
Suppresses the return of detailed connection close information.
static bool const enable_multithreading
static const size_t connection_read_buffer_size
Size of the per-connection read buffer.
static const bool enable_extensions
Global flag for enabling/disabling extensions.
static const int client_version
WebSocket Protocol version to use as a client.
Package of log levels for logging access events.
static level const devel
Development messages (warning: very chatty)
static level const all
Special aggregate value representing "all levels".
Package of log levels for logging errors.
static level const devel
Low level debugging information (warning: very chatty)
static level const all
Special aggregate value representing "all levels".