Files
beast/doc
Vinnie Falco 2c17d04a3a Refactor websocket decorators (API Change):
fix #80, #212, fix #303, fix #314, fix #317

websocket::stream now provides the following families of
functions for performing handshakes:

When operating in the server role:

    * stream::accept
    * stream::accept_ex
    * stream::async_accept
    * stream::async_accept_ex

When operating in the client role:

    * stream::handshake
    * stream::handshake_ex
    * stream::async_handshake
    * stream::async_handshake_ex

Member functions ending with "_ex" allow an additional
RequestDecorator parameter (for the accept family of
functions) or ResponseDecorator parameter (for the
handshake family of functions).

The decorator is called to optionally modify the contents
of the HTTP request or HTTP response object generated by
the implementation, before the message is sent. This
permits callers to set the User-Agent or Server fields,
add or modify HTTP fields related to subprotocols, or
perform any required transformation of the HTTP message
for application-specific needs.

The handshake() family of functions now have an additional
set of overloads accepting a parameter of type response_type&,
allowing the caller to receive the HTTP Response to the
Upgrade handshake. This permits inspection of the response
to handle things like subprotocols, authentication, or
other application-specific needs.

The new implementation does not require any state to be
stored in the stream object. Therefore, websocket::stream
objects are now smaller in size.

The overload of set_option for setting a decorator on the
stream is removed. The only way to set decorators now is
with a suitable overload of accept or handshake.
2017-05-05 10:01:17 -07:00
..
2017-05-05 09:54:58 -07:00
2017-05-04 18:58:33 -07:00
2016-04-20 12:01:24 -04:00
2016-04-20 12:01:24 -04:00
2017-02-07 15:20:25 -05:00
2017-05-04 18:58:33 -07:00
2017-05-04 18:58:33 -07:00
2017-02-07 15:20:25 -05:00
2017-02-07 15:20:25 -05:00
2017-02-07 15:20:25 -05:00
2017-05-04 18:58:33 -07:00
2017-02-07 15:20:25 -05:00
2017-05-04 18:58:33 -07:00

Building documentation

Specifying Files

To specify the source files for which to build documentation, modify INPUT and its related fields in doc/source.dox. Note that the INPUT paths are relative to the doc/ directory.

Install Dependencies

Windows

Install these dependencies:

  1. Install Doxygen
  2. Download the following zip files from xsltproc (Alternate download: ftp://ftp.zlatkovic.com/libxml/), and extract the bin\ folder contents into any folder in your path.
  • iconv
  • libxml2
  • libxslt
  • zlib
  1. Download Boost
  2. Extract the compressed file contents to your (new) $BOOST_ROOT location.
  3. Open a command prompt or shell in the $BOOST_ROOT.
  4. ./bootstrap.bat
  5. If it is not already there, add your $BOOST_ROOT to your environment $PATH.

MacOS

  1. Install doxygen:
  • Use homebrew to install: brew install doxygen. The executable will be installed in /usr/local/bin which is already in your path.
  • Alternatively, install from here: doxygen. You'll then need to make doxygen available to your command line. You can do this by adding a symbolic link from /usr/local/bin to the doxygen executable. For example, $ ln -s /Applications/Doxygen.app/Contents/Resources/doxygen /usr/local/bin/doxygen
  1. Install Boost
  2. Extract the compressed file contents to your (new) $BOOST_ROOT location.
  3. Open a command prompt or shell in the $BOOST_ROOT.
  4. $ ./bootstrap.bat
  5. If it is not already there, add your $BOOST_ROOT to your environment $PATH. This makes the b2 command available to the command line.
  6. That should be all that's required. In OS X 10.11, at least, libxml2 and libxslt come pre-installed.

Linux

  1. Install Docker
  2. Build Docker image. From the Beast root folder:
sudo docker build -t beast-docs doc/

Do it

Windows & MacOS

From the Beast root folder:

cd doc
./makeqbk.sh && b2

The output will be in doc/html.

Linux

From the Beast root folder:

sudo docker run -v $PWD:/opt/beast --rm beast-docs

The output will be in doc/html.