Commit Graph
139 Commits
Author SHA1 Message Date
Vinnie Falco 2d6859831c Optimize field lookups 2017-07-20 08:15:29 -07:00
Vinnie Falco 64ff766b23 Use string_ref in older Boost versions
fix #543
2017-07-20 08:15:29 -07:00
Vinnie Falco 44824a4166 Use boost::string_view 2017-07-20 08:15:28 -07:00
Vinnie Falco f2e8af23f4 Fix costly potential value-init in parser 2017-07-20 08:15:28 -07:00
Vinnie Falco f0e32882e2 Make consuming_buffers smaller 2017-07-20 08:15:28 -07:00
Vinnie Falco 518ae23383 string_param optimizations 2017-07-20 08:15:28 -07:00
Vinnie Falco 8f4e7fd0a0 Fix unused variable warnings 2017-07-20 08:15:28 -07:00
Vinnie Falco 31b59f0b0f Fix narrowing in ostream 2017-07-20 08:15:28 -07:00
Vinnie Falco ef493d4489 Fix narrowing in static_ostream 2017-07-20 08:15:28 -07:00
Vinnie Falco b2ab40f09c Doc tidying
fix #521, fix #524
2017-07-20 08:15:28 -07:00
Vinnie Falco 6d489b4658 Simplify buffered_read_stream composed op
fix #358
2017-07-20 08:15:28 -07:00
Vinnie Falco 4d393f4c2a Clear the error faster 2017-07-20 08:15:27 -07:00
Vinnie Falco 8f627b0748 Fix shadowing warnings
fix #510
2017-07-20 08:15:27 -07:00
Vinnie Falco a26017d695 Use generic_cateogry for errno 2017-07-20 08:15:27 -07:00
Vinnie Falco cdff15e021 Remove Spirit dependency 2017-07-20 08:15:27 -07:00
Vinnie Falco b5306a5712 String comparisons are public interfaces 2017-07-20 08:15:26 -07:00
Vinnie Falco 321aa8527d Fix base64 alphabet
fix #500
2017-07-20 08:15:26 -07:00
Vinnie Falco 164569157a Update doc/ for docca 2017-07-20 08:15:26 -07:00
Vinnie Falco 82d76e4882 Convert buffer in range loops
fix #485
2017-07-20 08:12:20 -07:00
Vinnie Falco ca109693fb Reset error codes
fix #478
2017-07-20 08:12:20 -07:00
Vinnie Falco a49c096042 read_size replaces read_size_helper:
* detail::read_size_helper is removed

* public function read_size helps determine the optimum
  size for calls to a DynamicBuffer's prepare function.

* special case for Asio types which don't conform to
  the concept but have their own helper function.
2017-07-20 08:12:20 -07:00
Vinnie Falco fe4dfed27b Tidy up type_traits 2017-07-20 08:12:19 -07:00
Vinnie Falco d529d6a16f Documentation work 2017-07-20 08:12:19 -07:00
Vinnie Falco 0d70d90b75 Add string_param
fix #451
2017-07-20 08:12:19 -07:00
Vinnie Falco e58833d7dd consuming_buffers members and coverage 2017-07-20 08:12:19 -07:00
Vinnie Falco 260b506520 multi_buffer members and coverage
fix #458
2017-07-20 08:12:19 -07:00
Vinnie Falco 5d6d486da4 flat_buffer coverage 2017-07-20 08:12:19 -07:00
Vinnie Falco 99f2425de4 static_buffer coverage 2017-07-20 08:12:19 -07:00
Vinnie Falco 78f4858e98 Fix read_size_helper usage:
read_size_helper can return zero if the buffer reaches
its maximum size, causing infinite loops in HTTP. The
function maybe_read_size_helper is provided to throw
an exception instead of returning a value for this case.
2017-07-20 08:12:19 -07:00
Vinnie Falco 5149cf8495 Add drain_buffer class
fix #457
2017-07-20 08:12:19 -07:00
Vinnie Falco 23863230de flat_buffer is an AllocatorAwareContainer
fix #453
2017-07-20 08:12:19 -07:00
Vinnie Falco 7b56f352b4 Add construct, destroy to handler_alloc
fix #432
2017-07-20 08:12:19 -07:00
Vinnie Falco 196d9c60fa multi_buffer implementation change (API Change):
fix #440

WARNING

multi_buffer constructor now takes a maximum size instead of the
"allocation size". This is a breaking change. The allocation size
feature is removed. To update calling code, remove the allocation
size parameter from call sites.

* multi_buffer now uses a geometric growth algorithm for better performance.
2017-07-20 08:12:19 -07:00
Vinnie Falco 7952578e1d Tune up static_buffer (API Change):
The static buffer is updated:

* reset() is no longer a member. Use b.consume(b.size()) instead.

* Simplified implementaton, uses asio instead of custom types

* Better stream performance: consuming the input makes room
  available in the output. This class is now suitable for
  HTTP reads.

These changes permit the static_buffer wrapper to adapt a user
memory buffer if desired, including a stack based array.
The static_buffer_n class may also be used for this purpose,
it comes with its own storage.
2017-07-20 08:12:19 -07:00
Vinnie Falco 96131eb243 Add missing handler_alloc nested types
fix #432
2017-07-20 08:12:18 -07:00
Vinnie Falco 943830f6ed Fields concept work 2017-07-20 08:12:18 -07:00
Vinnie Falco b38f8260b8 Add HEAD request example 2017-07-20 08:12:18 -07:00
Vinnie Falco 12c7c24e5a Use <iosfwd> instead of <ostream> 2017-07-20 08:12:18 -07:00
Vinnie Falco d3049fa03b Documentation work 2017-07-20 08:12:18 -07:00
Vinnie Falco 5c46845208 Documentation work 2017-07-20 08:12:18 -07:00
Vinnie Falco 8a22350119 Tidy up traits
fix #406
2017-07-20 08:12:18 -07:00
Vinnie Falco 4b158e45ba Remove detail::sync_ostream
fix #418
2017-07-20 08:12:18 -07:00
Vinnie Falco 9ab9f09189 Make buffer_prefix_view public
fix #408
2017-07-20 08:12:18 -07:00
Vinnie Falco 982d20001f Rename to buffer_cat_view (API Change)
fix #408
2017-07-20 08:12:18 -07:00
Vinnie Falco afab639532 Fix leak in basic_flat_buffer 2017-07-20 08:12:17 -07:00
Vinnie Falco 02d5aedc29 Refactor HTTP serialization and parsing (API Change):
fix #404

Parsing and serialization interfaces have been fine tuned and unified.

For parsing these stream operations are defined:

* read
* read_header
* read_some
* async_read
* async_read_header
* async_read_some

For serialization these stream operations are defined:

* write
* write_header
* write_some
* async_write
* async_write_header
* async_write_some
2017-07-20 08:12:17 -07:00
Vinnie Falco b76eb2864e buffer_size overload for basic_multi_buffer::const_buffers_type 2017-07-20 08:12:17 -07:00
Vinnie Falco 75b0571e83 Refactor type_traits (API Change):
fix #373

* concepts.hpp is renamed to type_traits.hpp

* Body reader and writer concepts are renamed
2017-07-20 08:12:17 -07:00
Vinnie Falco 4ed6a7fe21 Disable reverse_iterator buffer_view test 2017-07-20 08:12:17 -07:00
Vinnie Falco 056bf5ff99 buffer_view skips empty buffer sequences 2017-07-20 08:12:17 -07:00