Commit Graph
416 Commits
Author SHA1 Message Date
Vinnie Falco f3bec70e65 Documentation fixes 2017-07-20 08:12:18 -07:00
Vinnie Falco 9f7abcbe2d Remove header_parser (API Change) 2017-07-20 08:12:18 -07:00
Vinnie Falco fa28cba515 parser is constructible from other body types 2017-07-20 08:12:18 -07:00
Vinnie Falco 17eaae9ce0 Documentation work (buffer_body) 2017-07-20 08:12:18 -07:00
Vinnie Falco f62900df24 Set version to 49 2017-07-20 08:12:18 -07:00
Vinnie Falco 4b866cea36 Documentation 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 3803c38dbd Refactor header status, reason, and target (API Change):
* header::result is a family of functions to replace header::status

* header interface now uses status enum and also ints

* reason-phrase is no longer stored unless the user explicitly
  requests it.

* When serializing, the standard reason is used for the
  corresponding status code unless the user has changed it.
2017-07-20 08:12:18 -07:00
Vinnie Falco 4f91e632bc Tidy up empty_body writer error 2017-07-20 08:12:18 -07:00
Vinnie Falco aa2c915c96 Canonicalize string_view parameter types 2017-07-20 08:12:18 -07:00
Vinnie Falco 048ee7523c Refactor method and verb (API Change):
The verb interfaces now use verb::unknown instead of
boost::optional<verb> == boost::none to indicate that
the request-method is an unrecognized string.

The http::header interface is modified to focus more on the
verb enum rather than the string. For recognized verbs, the
implementation stores an integer instead of the string.
Unknown verbs are still stored as strings.

* header::method now returns a verb
* header::method_string returns the method text
2017-07-20 08:12:18 -07:00
Vinnie Falco d3049fa03b Documentation work 2017-07-20 08:12:18 -07:00
Vinnie Falco 8b3be190fe Set version to 48 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 78d9e3bbce Documentation work 2017-07-20 08:12:18 -07:00
Vinnie Falco 00667f3cf2 Rename to parser (API Change):
* message_parser is renamed to parser
2017-07-20 08:12:18 -07:00
Vinnie Falco 88600beab0 Consolidate parsers to parser.hpp
fix #405
2017-07-20 08:12:18 -07:00
Vinnie Falco 86ce017ffe Documentation work 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 2141fabcf9 Tidy up chunk decorator (API Change):
* Rename to no_chunk_decorator
* Decorator no longer has to append "\r\n" to the returned string
2017-07-20 08:12:18 -07:00
Vinnie Falco 38e9b16f75 Set version to 47 2017-07-20 08:12:17 -07:00
Vinnie Falco 23dfc04202 Documentation work 2017-07-20 08:12:17 -07:00
Vinnie Falco afab639532 Fix leak in basic_flat_buffer 2017-07-20 08:12:17 -07:00
Vinnie Falco a38a9adbe1 Fix undefined behavior in pausation 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 7435d3c65f Disable operator<< for buffer_body
fix #363
2017-07-20 08:12:17 -07:00
Vinnie Falco e5cfe9c11f Refactor treatment of status code and obsolete reason (API Change):
fix #398

A new enum status is added for the status code.

The function obsolete_reason returns default reason phrasing.

If a response has an empty reason, the serializer will
automatically insert the default reason phrase for the
status code.
2017-07-20 08:12:17 -07:00
Vinnie Falco f7211da154 Refactor treatment of request-method (API Change):
fix #397

method enum class is added to represent all known request methods.
Functions are provided to convert from strings to and from the method
enumeration.

The fields container is modified to also work with the enum.
2017-07-20 08:12:17 -07:00
Vinnie Falco cd2363e951 Set version to 46 2017-07-20 08:12:17 -07:00
Vinnie Falco 0056c97d94 Documentation work 2017-07-20 08:12:17 -07:00
Vinnie Falco 060f4a007b Refactor serialization algorithms:
serializer interface is changed to be buffer-only, no streams,
and placed in its own header file.

Operations on serializers are moved to free functions as part
of the HTTP write family of synchronous and asynchronous algorithms.
2017-07-20 08:12:17 -07:00
Vinnie Falco d0d08e81f9 Rename to make_serializer 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 3664329ea7 Refactor HTTP serialization (API Change):
A new class `serializer` is introduced to permit incremental
serialization of HTTP messages. Existing free functions are
re-implemented in terms of this new class.

* The BodyReader concept is refined to support a greater variety
of strategies for providing buffers representing the body to
the serialization algorithms.

* Added buffer_body, a new model of Body which allows the caller
to provide a series of owned buffers using their own serialization
loop.

* Added empty_body, a model of Body which is for serialization only,
to represent HTTP messages with no content body.

* Removed overloads of write and async_write which send only
the HTTP header.

* Removed public interfaces for performing low-level chunk encoding.
2017-07-20 08:12:17 -07:00
Vinnie Falco b9bdb1bbbc Remove HTTP header aliases (API Change):
fix #382

* request_header and response_header are removed
2017-07-20 08:12:17 -07:00
Vinnie Falco d84713ece9 Add test::pipe 2017-07-20 08:12:17 -07:00
Vinnie Falco 9a6d4f153b Set version to 45 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
Vinnie Falco c29974eec9 Documentation work 2017-07-20 08:12:17 -07:00
Vinnie Falco c6cddc83c4 Fix header::reason 2017-07-20 08:12:17 -07:00
Vinnie Falco f62ac819f5 Better test::enable_yield_to 2017-07-20 08:12:17 -07:00
Vinnie Falco aca14f6b2b Fix message doc image 2017-07-20 08:12:17 -07:00
Vinnie Falco f0349efddc Workaround for boost::asio::basic_streambuf type check 2017-07-20 08:12:17 -07:00
Vinnie Falco e58fce380c Set version to 44 2017-07-20 08:12:17 -07:00