fix#1435, fix#1438
* Example and test can be built on msvc v141 15.9.6
using /std:c++17 and BOOST_BEAST_USE_STD_STRING_VIEW.
* changed string_view.to_string() to std:string(string_view),
awaiting availability of Library Fundamentals TS here.
* Reactivated relevant tests to param_list. #ifdef 0 test
exhibited same assertion failed error in debug mode.
Now fixed in DEBUG on msvc v141 15.9.6 with
BOOST_BEAST_USE_STD_STRING_VIEW and /std:c++17.
* Looked up http paramters (transfer-encoding, etc.)
and changed tests as well as fixing comment to
match specs.
- Call the completion handler with the correct signature
- Replicate ASIO socket behavior of async operation completions
- Fix a data race between read_op and a call to stream::nread()
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
* is_completion_handler is deprecated
* type_traits.hpp is a deprecated include
These items will be removed in the next version
* Include the new header file for the types needed:
- stream_traits.hpp
- file_base.hpp
* Use std::is_invocable instead of is_completion_handler
These metafunctions are moved from type_traits.hpp
to stream_traits.hpp:
- has_get_executor
- is_sync_stream
- is_sync_read_stream
- is_sync_write_stream
- is_async_stream
- is_async_read_stream
- is_async_write_stream
Actions Required:
* Include the file stream_traits.hpp as needed
fix#1416
* Calls to buffer_copy are qualified as net::buffer_copy
* Calls to buffer_size are made unqualified, permitting
argument dependent lookup to take effect.
* Optimize hash calculation and equality for field strings
Experiments show the digest and equality functions taking the
most time. Optimizing L1 cache usage did not show significant
improvements.
This algorithm allows a socket-like object to be closed in
a generic context. The customization point enables user-defined
types to define the close algorithm to use with `close_socket`.
fix#1417
* New get_lowest_layer free function works for any object
* New lowest_layer_type trait works for any object
* New examples and documentation on layered streams
API Changes:
* The member function lowest_layer is removed from all
types provided by the library:
Actions Required:
* Call the free function get_lowest_layer instead of
member lowest_layer.