[/
    Copyright (c) 2016-2017 Vinnie Falco (vinnie dot falco at gmail dot com)

    Distributed under the Boost Software License, Version 1.0. (See accompanying
    file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

    Official repository: https://github.com/boostorg/beast
]

[library Boost.Beast
    [id beast]
    [quickbook 1.6]
    [copyright 2016 - 2017 Vinnie Falco]
    [purpose Networking Protocol Library]
    [license
        Distributed under the Boost Software License, Version 1.0.
        (See accompanying file LICENSE_1_0.txt or copy at
        [@http://www.boost.org/LICENSE_1_0.txt])
    ]
    [authors [Falco, Vinnie]]
    [category template]
    [category generic]
]

[template mdash[] '''&mdash; ''']
[template indexterm1[term1] '''<indexterm><primary>'''[term1]'''</primary></indexterm>''']
[template indexterm2[term1 term2] '''<indexterm><primary>'''[term1]'''</primary><secondary>'''[term2]'''</secondary></indexterm>''']

[template source_file[path] '''<ulink url="../../'''[path]'''">'''[path]'''</ulink>''']
[template include_file[path][^<'''<ulink url="../../../../'''[path]'''">'''[path]'''</ulink>'''>]]
[template issue[n] '''<ulink url="https://github.com/boostorg/beast/issues/'''[n]'''">#'''[n]'''</ulink>''']

[def __N3747__                  [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3747.pdf [*N3747]]]
[def __NetTS__                  [@http://cplusplus.github.io/networking-ts/draft.pdf [*Networking.TS]]]
[def __rfc6455__                [@https://tools.ietf.org/html/rfc6455 rfc6455]]
[def __rfc7230__                [@https://tools.ietf.org/html/rfc7230 rfc7230]]

[def __Asio__                   [@boost:/libs/asio/index.html Boost.Asio]]
[def __async_initfn__           [@boost:/doc/html/boost_asio/reference/asynchronous_operations.html initiating function]]

[def __get_associated_allocator__   [@boost:/doc/html/boost_asio/reference/get_associated_allocator.html `get_associated_allocator`]]
[def __get_associated_executor__    [@boost:/doc/html/boost_asio/reference/get_associated_executor.html `get_associated_executor`]]

[def __asio_handler_invoke__    [@boost:/doc/html/boost_asio/reference/asio_handler_invoke.html `asio_handler_invoke`]]
[def __asio_handler_allocate__  [@boost:/doc/html/boost_asio/reference/asio_handler_allocate.html `asio_handler_allocate`]]
[def __io_context__             [@boost:/doc/html/boost_asio/reference/io_context.html `boost::asio::io_context`]]
[def __executor_work_guard__    [@boost:/doc/html/boost_asio/reference/executor_work_guard.html `boost::asio::executor_work_guard`]]
[def __post__                   [@boost:/doc/html/boost_asio/reference/post.html `boost::asio::post`]]
[def __socket__                 [@boost:/doc/html/boost_asio/reference/ip__tcp/socket.html `boost::asio::ip::tcp::socket`]]
[def __ssl_context__            [@boost:/doc/html/boost_asio/reference/ssl__context.html `boost::asio::ssl::context`]]
[def __ssl_stream__             [@boost:/doc/html/boost_asio/reference/ssl__stream.html `boost::asio::ssl::stream`]]
[def __streambuf__              [@boost:/doc/html/boost_asio/reference/streambuf.html `boost::asio::streambuf`]]
[def __use_future__             [@boost:/doc/html/boost_asio/reference/use_future_t.html `boost::asio::use_future`]]
[def __void_or_deduced__        [@boost:/doc/html/boost_asio/reference/asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type ['DEDUCED]]]
[def __yield_context__          [@boost:/doc/html/boost_asio/reference/yield_context.html `boost::asio::yield_context`]]

[def __AsyncReadStream__        [@boost:/doc/html/boost_asio/reference/AsyncReadStream.html [*AsyncReadStream]]]
[def __AsyncWriteStream__       [@boost:/doc/html/boost_asio/reference/AsyncWriteStream.html [*AsyncWriteStream]]]
[def __CompletionHandler__      [@boost:/doc/html/boost_asio/reference/CompletionHandler.html [*CompletionHandler]]]
[def __ConstBufferSequence__    [@boost:/doc/html/boost_asio/reference/ConstBufferSequence.html [*ConstBufferSequence]]]
[def __Handler__                [@boost:/doc/html/boost_asio/reference/Handler.html [*Handler]]]
[def __MutableBufferSequence__  [@boost:/doc/html/boost_asio/reference/MutableBufferSequence.html [*MutableBufferSequence]]]
[def __ReadHandler__            [@boost:/doc/html/boost_asio/reference/ReadHandler.html [*ReadHandler]]]
[def __SyncReadStream__         [@boost:/doc/html/boost_asio/reference/SyncReadStream.html [*SyncReadStream]]]
[def __SyncWriteStream__        [@boost:/doc/html/boost_asio/reference/SyncWriteStream.html [*SyncWriteStream]]]
[def __WriteHandler__           [@boost:/doc/html/boost_asio/reference/WriteHandler.html [*WriteHandler]]]

[def __AsyncStream__            [link beast.concepts.streams.AsyncStream [*AsyncStream]]]
[def __Body__                   [link beast.concepts.Body [*Body]]]
[def __BodyReader__             [link beast.concepts.BodyReader [*BodyReader]]]
[def __BodyWriter__             [link beast.concepts.BodyWriter [*BodyWriter]]]
[def __DynamicBuffer__          [link beast.concepts.DynamicBuffer [*DynamicBuffer]]]
[def __Fields__                 [link beast.concepts.Fields [*Fields]]]
[def __FieldsWriter__           [link beast.concepts.FieldsWriter [*FieldsWriter]]]
[def __File__                   [link beast.concepts.File [*File]]]
[def __Stream__                 [link beast.concepts.streams [*Stream]]]
[def __SyncStream__             [link beast.concepts.streams.SyncStream [*SyncStream]]]

[def __basic_fields__           [link beast.ref.boost__beast__http__basic_fields `basic_fields`]]
[def __basic_multi_buffer__     [link beast.ref.boost__beast__basic_multi_buffer `basic_multi_buffer`]]
[def __basic_parser__           [link beast.ref.boost__beast__http__basic_parser `basic_parser`]]
[def __bind_handler__           [link beast.ref.boost__beast__bind_handler `bind_handler`]]
[def __buffer_body__            [link beast.ref.boost__beast__http__buffer_body `buffer_body`]]
[def __fields__                 [link beast.ref.boost__beast__http__fields `fields`]]
[def __flat_buffer__            [link beast.ref.boost__beast__flat_buffer `flat_buffer`]]
[def __header__                 [link beast.ref.boost__beast__http__header `header`]]
[def __message__                [link beast.ref.boost__beast__http__message `message`]]
[def __multi_buffer__           [link beast.ref.boost__beast__multi_buffer `multi_buffer`]]
[def __parser__                 [link beast.ref.boost__beast__http__parser `parser`]]
[def __serializer__             [link beast.ref.boost__beast__http__serializer `serializer`]]
[def __flat_static_buffer__      [link beast.ref.boost__beast__flat_static_buffer `flat_static_buffer`]]
[def __flat_static_buffer_base__ [link beast.ref.boost__beast__flat_static_buffer_base `flat_static_buffer_base`]]

[import ../../example/common/detect_ssl.hpp]
[import ../../example/doc/http_examples.hpp]
[import ../../example/echo-op/echo_op.cpp]
[import ../../example/http/client/sync/http_client_sync.cpp]
[import ../../example/websocket/client/sync/websocket_client_sync.cpp]

[import ../../include/boost/beast/http/basic_file_body.hpp]

[import ../../test/doc/exemplars.cpp]
[import ../../test/doc/core_snippets.cpp]
[import ../../test/doc/http_snippets.cpp]
[import ../../test/doc/websocket_snippets.cpp]

[include 01_intro.qbk]
[include 02_examples.qbk]
[include 03_core.qbk]
[include 04_http.qbk]
[include 05_http_examples.qbk]
[include 06_websocket.qbk]
[include 07_concepts.qbk]
[include 08_design.qbk]
[include 09_releases.qbk]

[section:quickref Reference]
[xinclude quickref.xml]
[endsect]

[block'''<reference id="beast_hidden"><title>This Page Intentionally Left Blank 1/2</title>''']
[section:ref This Page Intentionally Left Blank 2/2]
[include reference.qbk]
[endsect]
[block'''</reference>''']

[xinclude index.xml]
