Remove message free functions (API Change)

This commit is contained in:
Vinnie Falco
2017-06-07 05:00:18 -07:00
parent 3340666ad3
commit aa752e4dce
7 changed files with 11 additions and 76 deletions

View File

@ -17,6 +17,7 @@ API Changes:
* Refactor prepare
* Protect basic_fields special members
* Remove message connection settings
* Remove message free functions
--------------------------------------------------------------------------------

View File

@ -64,8 +64,7 @@
<member><link linkend="beast.ref.http__async_write">async_write</link></member>
<member><link linkend="beast.ref.http__async_write_header">async_write_header</link></member>
<member><link linkend="beast.ref.http__async_write_some">async_write_some</link></member>
<member><link linkend="beast.ref.http__is_keep_alive">is_keep_alive</link></member>
<member><link linkend="beast.ref.http__is_upgrade">is_upgrade</link></member>
<member><link linkend="beast.ref.http__int_to_status">int_to_status</link></member>
<member><link linkend="beast.ref.http__make_serializer">make_serializer</link></member>
<member><link linkend="beast.ref.http__obsolete_reason">obsolete_reason</link></member>
<member><link linkend="beast.ref.http__operator_ls_">operator&lt;&lt;</link></member>
@ -76,6 +75,7 @@
<member><link linkend="beast.ref.http__string_to_verb">string_to_verb</link></member>
<member><link linkend="beast.ref.http__swap">swap</link></member>
<member><link linkend="beast.ref.http__to_string">to_string</link></member>
<member><link linkend="beast.ref.http__to_status_class">to_status_class</link></member>
<member><link linkend="beast.ref.http__write">write</link></member>
<member><link linkend="beast.ref.http__write_header">write_header</link></member>
<member><link linkend="beast.ref.http__write_some">write_some</link></member>
@ -84,7 +84,6 @@
<entry valign="top">
<bridgehead renderas="sect3">Constants</bridgehead>
<simplelist type="vert" columns="1">
<member><link linkend="beast.ref.http__connection">connection</link></member>
<member><link linkend="beast.ref.http__error">error</link></member>
<member><link linkend="beast.ref.http__field">field</link></member>
<member><link linkend="beast.ref.http__status">status</link></member>

View File

@ -9,10 +9,10 @@
#define BEAST_HTTP_IMPL_MESSAGE_IPP
#include <beast/core/error.hpp>
#include <beast/http/rfc7230.hpp>
#include <beast/core/detail/ci_char_traits.hpp>
#include <beast/core/detail/type_traits.hpp>
#include <boost/assert.hpp>
#include <boost/throw_exception.hpp>
#include <stdexcept>
namespace beast {
@ -43,7 +43,7 @@ method(verb v)
{
if(v == verb::unknown)
BOOST_THROW_EXCEPTION(
std::invalid_argument{"unknown verb"});
std::invalid_argument{"unknown method"});
method_ = v;
this->set_method_impl({});
}
@ -140,7 +140,7 @@ result(unsigned v)
if(v > 999)
BOOST_THROW_EXCEPTION(
std::invalid_argument{
"invalid result-code"});
"invalid status-code"});
result_ = static_cast<status>(v);
}
@ -307,8 +307,8 @@ message<isRequest, Body, Fields>::
prepare(std::true_type)
{
auto const n = size();
if(this->method_ == verb::trace &&
(! n || *n > 0))
if(this->method_ == verb::trace && (
! n || *n > 0))
BOOST_THROW_EXCEPTION(std::invalid_argument{
"invalid request body"});
if(n)
@ -366,34 +366,6 @@ swap(
swap(m1.body, m2.body);
}
template<bool isRequest, class Fields>
bool
is_keep_alive(header<isRequest, Fields> const& msg)
{
BOOST_ASSERT(msg.version == 10 || msg.version == 11);
if(msg.version == 11)
{
if(token_list{msg["Connection"]}.exists("close"))
return false;
return true;
}
if(token_list{msg["Connection"]}.exists("keep-alive"))
return true;
return false;
}
template<bool isRequest, class Fields>
bool
is_upgrade(header<isRequest, Fields> const& msg)
{
BOOST_ASSERT(msg.version == 10 || msg.version == 11);
if(msg.version == 10)
return false;
if(token_list{msg["Connection"]}.exists("upgrade"))
return true;
return false;
}
} // http
} // beast

View File

@ -595,24 +595,6 @@ swap(
message<isRequest, Body, Fields>& m1,
message<isRequest, Body, Fields>& m2);
//------------------------------------------------------------------------------
/** Returns `true` if the HTTP/1 message indicates a keep alive.
Undefined behavior if version is greater than 11.
*/
template<bool isRequest, class Fields>
bool
is_keep_alive(header<isRequest, Fields> const& msg);
/** Returns `true` if the HTTP/1 message indicates an Upgrade request or response.
Undefined behavior if version is greater than 11.
*/
template<bool isRequest, class Fields>
bool
is_upgrade(header<isRequest, Fields> const& msg);
} // http
} // beast

View File

@ -21,7 +21,7 @@ is_upgrade(http::header<true, Fields> const& req)
return false;
if(req.method() != http::verb::get)
return false;
if(! http::is_upgrade(req))
if(! http::token_list{req["Connection"]}.exists("upgrade"))
return false;
if(! http::token_list{req["Upgrade"]}.exists("websocket"))
return false;

View File

@ -8,6 +8,7 @@
#ifndef BEAST_WEBSOCKET_IMPL_STREAM_IPP
#define BEAST_WEBSOCKET_IMPL_STREAM_IPP
#include <beast/websocket/rfc6455.hpp>
#include <beast/websocket/teardown.hpp>
#include <beast/websocket/detail/hybi13.hpp>
#include <beast/websocket/detail/pmd_extension.hpp>
@ -285,7 +286,7 @@ do_response(http::header<false> const& res,
return false;
if(res.result() != http::status::switching_protocols)
return false;
if(! is_upgrade(res))
if(! http::token_list{res["Connection"]}.exists("upgrade"))
return false;
if(! http::token_list{res["Upgrade"]}.exists("websocket"))
return false;

View File

@ -194,25 +194,6 @@ public:
}
}
void
testFreeFunctions()
{
{
request<string_body> m;
m.method(verb::get);
m.target("/");
m.version = 11;
m.insert("Upgrade", "test");
BEAST_EXPECT(! is_upgrade(m));
m.insert(field::connection, "upgrade");
BEAST_EXPECT(is_upgrade(m));
m.version = 10;
BEAST_EXPECT(! is_upgrade(m));
}
}
void
testSwap()
{
@ -312,7 +293,6 @@ public:
{
testMessage();
testHeaders();
testFreeFunctions();
testSwap();
testSpecialMembers();
testMethod();