Documentation work

This commit is contained in:
Vinnie Falco
2017-06-14 07:48:48 -07:00
parent 2eeedb8a41
commit 8fa756aee6
3 changed files with 22 additions and 27 deletions

View File

@@ -10,14 +10,13 @@
Asynchronous operations are started by calling a free function or member
function known as an ['asynchronous initiation function]. The initiation
function accepts parameters specific to the operation as well as a "completion
token." This token is either a completion handler, or another type allowing for
customization of how the result of the asynchronous operation is conveyed to
callers. __Asio__ allows the special completion tokens __use_future__ and
objects of type __yield_context__ to allow callers to specify the use of futures
and coroutines respectively. This system, where the return value and method of
indicating completion may be customized at the call site of the asynchronous
initiation function, is known as the ['Extensible Asynchronous Model] described
in __N3747__, and built-in to __N4588__.
token." This token is either a completion handler, or a type defining how
the caller is informed of the asynchronous operation result. __Asio__ comes
with the special completion tokens __use_future__ and __yield_context__ for
using futures and coroutines respectively. This system of customizing the
return value and method of completion notification is known as the
['Extensible Asynchronous Model] described in __N3747__, and a built in
to __N4588__.
[note
A full explanation of completion handlers, the Extensible Asynchronous

View File

@@ -17,7 +17,7 @@ In this table:
* `X` denotes a type that meets the requirements of [*Fields].
* `R` denotes a type meeting the requiremnets of __FieldsReader__.
* `R` denotes a type meeting the requirements of __FieldsReader__.
* `a` denotes a value of type `X`.

View File

@@ -28,19 +28,17 @@ namespace http {
/** A container for an HTTP request or response header.
A header includes the Start Line and Fields.
This container is derived from the `Fields` template type.
To understand all of the members of this class it is necessary
to view the declaration for the `Fields` type. When using
the default fields container, those declarations are in
@ref fields.
Some use-cases:
@li When the message has no body, such as a response to a HEAD request.
@li When the caller wishes to defer instantiation of the body.
@li Invoke algorithms which operate on the header only.
A `header` includes the start-line and header-fields.
*/
#if BEAST_DOXYGEN
template<bool isRequest, class Fields = fields>
struct header
struct header : Fields
#else
template<bool isRequest, class Fields = fields>
@@ -193,15 +191,7 @@ private:
/** A container for an HTTP request or response header.
A header includes the Start Line and Fields.
Some use-cases:
@li When the message has no body, such as a response to a HEAD request.
@li When the caller wishes to defer instantiation of the body.
@li Invoke algorithms which operate on the header only.
A `header` includes the start-line and header-fields.
*/
template<class Fields>
struct header<false, Fields> : Fields
@@ -349,6 +339,12 @@ private:
/** A container for a complete HTTP message.
This container is derived from the `Fields` template type.
To understand all of the members of this class it is necessary
to view the declaration for the `Fields` type. When using
the default fields container, those declarations are in
@ref fields.
A message can be a request or response, depending on the
`isRequest` template argument value. Requests and responses
have different types; functions may be overloaded based on