diff --git a/CHANGELOG.md b/CHANGELOG.md index 162237c7..1304f862 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,10 @@ Version 41 * Remove coveralls integration * Tidy up formal parameter names +WebSocket + +* Tidy up websocket::close_code enum and constructors + API Changes * Return http::error::end_of_stream on HTTP read eof diff --git a/include/beast/websocket/rfc6455.hpp b/include/beast/websocket/rfc6455.hpp index c68af13a..dc17f1cb 100644 --- a/include/beast/websocket/rfc6455.hpp +++ b/include/beast/websocket/rfc6455.hpp @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -79,9 +80,8 @@ enum class opcode : std::uint8_t These codes accompany close frames. @see RFC 6455 7.4.1 Defined Status Codes - */ -enum close_code +enum close_code : std::uint16_t { /// Normal closure; the connection successfully completed whatever purpose for which it was created. normal = 1000, @@ -195,20 +195,24 @@ struct close_reason { } - /// Construct from a reason. code is close_code::normal. - template - close_reason(char const (&reason_)[N]) + /// Construct from a reason string. code is @ref close_code::normal. + close_reason(string_view s) : code(close_code::normal) - , reason(reason_) + , reason(s) { } - /// Construct from a code and reason. - template - close_reason(close_code code_, - char const (&reason_)[N]) + /// Construct from a reason string literal. code is @ref close_code::normal. + close_reason(char const* s) + : code(close_code::normal) + , reason(s) + { + } + + /// Construct from a close code and reason string. + close_reason(close_code code_, string_view s) : code(code_) - , reason(reason_) + , reason(s) { }