Commit Graph
1508 Commits
Author SHA1 Message Date
Vinnie Falco bfb500110b Spelling 2019-02-02 13:19:30 -08:00
Vinnie Falco a142969c5d Qualify buffer_copy, don't qualify buffer_size:
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.
2019-02-02 13:01:27 -08:00
Vinnie Falco 5b0b218d96 test::stream maintains a handler work guard
fix #1418
2019-02-02 10:30:12 -08:00
Vinnie Falco 599104c16a async_echo supports move-only handlers
fix #1420
2019-02-02 10:20:38 -08:00
Peter Dimov e0db595760 Faster http::string_to_field:
* 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.
2019-02-02 10:04:43 -08:00
Peter Dimov 150614cc9a Change exe to run for bench-parser 2019-02-02 09:58:59 -08:00
Vinnie Falco be29ce4c1e Set version to 208 2019-02-01 15:14:14 -08:00
Vinnie Falco 74f02f8ac5 Doc work 2019-02-01 14:05:07 -08:00
Vinnie Falco 49deee4a69 Add close_socket, beast_close_socket customization:
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`.
2019-02-01 14:05:07 -08:00
Vinnie Falco 6a658b5c3a Remove lowest_layer, add get_lowest_layer (API Change):
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.
2019-02-01 04:31:13 -08:00
Damian Jarek ff32f44682 Get openssl in appveyor
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2019-01-31 16:40:21 -08:00
Vinnie Falco 5361224a7d Set version to 207 2019-01-23 04:39:53 -08:00
Vinnie Falco 1da611fa04 Pass the correct handler in basic_timeout_stream 2019-01-22 21:25:06 -08:00
Vinnie Falco 60c96104ec lowest_layer is removed (API Change):
The nested function lowest_layer and nested type lowest_layer_type
are removed from all stream layers.

Actions Required:

* Remove lowest_layer and lowest_layer_type from user-defined streams.
* Use the get_lowest_layer free function and the lowest_layer_type trait
  as needed.
2019-01-22 04:59:07 -08:00
Vinnie Falco 29f838b9d9 Remove unused enum 2019-01-21 18:58:08 -08:00
Vinnie Falco 383b9cb7f2 Send from the strand 2019-01-21 16:07:00 -08:00
Vinnie Falco 2dcb11b89a Set version to 206 2019-01-21 12:13:08 -08:00
Vinnie Falco 3081f52ad5 Add websocket-chat-multi example:
This is the multi-threaded io_context version of the
CppCon2018 WebSocket chat server and client example.
2019-01-21 12:13:04 -08:00
Vinnie Falco 9a8e22950f websocket stream uses shared_ptr<impl_type> 2019-01-21 08:44:14 -08:00
Vinnie Falco 944b5dcda7 Clear error codes idiomatically 2019-01-20 09:50:43 -08:00
Vinnie Falco 9ea70bfbe5 Set version to 205 2019-01-20 07:05:21 -08:00
Vinnie Falco 4d0849595c Add detail/prng.hpp 2019-01-20 07:05:16 -08:00
Vinnie Falco 785c0ad93d Add detail/soft_mutex.hpp 2019-01-20 07:05:16 -08:00
Vinnie Falco d7cc7a6d1e Doc work 2019-01-20 07:05:16 -08:00
Vinnie Falco 949fa967b9 Set version to 204 2019-01-17 17:20:49 -08:00
Vinnie Falco 4fcd6601b3 Doc work 2019-01-17 17:20:10 -08:00
Vinnie Falco 03bf9144b7 Unit test macros use the global suite
fix #1411
2019-01-17 17:19:00 -08:00
Vinnie Falco 72ea142c5c Add basic_timeout_stream:
This stream wrapper replaces basic_stream_socket and
provides just the timeout functionality.

* basic_stream_socket is removed
2019-01-17 17:18:31 -08:00
Vinnie Falco cfd9b46014 Set version to 203 2019-01-15 11:45:35 -08:00
Andrey Semashev 03c2a8e54c Boost.System is header-only:
fix #1414

* No need to link with Boost.System
2019-01-15 11:45:31 -08:00
Vinnie Falco ca5a70a3cd parse_until is not static
fix #1393
2019-01-15 11:42:05 -08:00
Vinnie Falco b337abe076 examples use flat_buffer
fix #1401
2019-01-15 11:42:05 -08:00
Vinnie Falco abb8203cbe session_alloc is thread-safe
fix #1408
2019-01-15 11:42:05 -08:00
Vinnie Falco cf2dbdc0be Use new saved_handler in websocket 2019-01-15 11:42:05 -08:00
Vinnie Falco 3092e43879 saved_handler is a public interface:
This container allows completion handlers to be safely
suspended and resumed later, or destroyed.
2019-01-12 18:42:32 -08:00
Johan Rönnkvist be800436ea Include error code in call to set_option 2019-01-12 13:14:33 -08:00
Vinnie Falco 3595eb2221 Update networking refresher doc 2019-01-12 13:11:00 -08:00
Vinnie Falco 0822e1bb5e Set version to 202 2019-01-11 20:07:02 -08:00
Vinnie Falco 3599ccb09a Add tests for async_op_base 2019-01-11 20:06:56 -08:00
Vinnie Falco b4c63028e2 Add tests for bind_back_handler 2019-01-09 18:24:34 -08:00
Vinnie Falco 5292df6e72 async_op_base is a public interface:
This utility simplifies the authoring of composed
operations, see documentation for details.
2019-01-09 09:54:53 -08:00
Vinnie Falco b46953f1bd Use async_op_base:
Composed operation implementations use async_op_base and
stable_async_op_base, to eliminate redundant boilerplate.
2019-01-09 09:54:42 -08:00
Vinnie Falco 9e44ae7be5 Refactor async_op_base:
* Renamed to async_op_base (was operation_base)
* Executor1 is explicit
* Add stable_async_op_base refinement
2019-01-09 09:54:15 -08:00
Vinnie Falco 522ca9e78b Tidy up basic_stream_socket docs 2019-01-09 09:54:05 -08:00
Vinnie Falco 0aa35d7266 Update coverage badge images 2019-01-09 09:53:53 -08:00
Glen Fernandes 1d5a18a0a1 Use cxxstd instead of cxxflags 2019-01-09 09:53:24 -08:00
Vinnie Falco 8b72b4d407 Set version to 201 2018-12-30 16:59:54 -08:00
Vinnie Falco 6caca92f0e New stream_socket:
This I/O object wraps an ordinary socket and provides a built-in
timeout and optional bandwidth rate-limiting facility.

Added class template basic_stream_socket

* Meets the requirements of AsyncReadStream and AsyncWriteStream

* Partially supports P1322R0:
  "Networking TS enhancement to enable custom I/O executors"
  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1322r0.html

  A strand or other io_context-compatible executor may be
  chosen to use for all asynchronous stream operations.

* Supports independent timeouts on logical operations:
  connect, read, write, or both read and write.

* Provides an option for a configurable rate limit
  limit on the maximum rates of reading or writing.

* The previous experimental implementation,
  `timeout_socket` and related types, is removed.

* stream_socket is an alias for basic_stream_socket which
  uses `net::ip::tcp` as its protocol.
2018-12-30 16:49:09 -08:00
Vinnie Falco 2d3912751b Add core errors and conditions 2018-12-30 12:51:34 -08:00
Vinnie Falco 25f144f936 Rename test source files 2018-12-26 17:27:57 -08:00