495 Commits
Author SHA1 Message Date
Rene Rivera 852d2b487e Fix LIB_DIR calculation. 2017-08-02 19:09:03 -07:00
Vinnie Falco 5460b8618c Use LIB_DIR in text output (debug) 2017-08-02 09:19:19 -07:00
Vinnie Falco e21d251e6c Use correct var in doc Jamfile 2017-08-02 07:36:23 -07:00
Vinnie Falco 6a0b57ed4c Log on Linux not Windows 2017-08-01 20:45:53 -07:00
Vinnie Falco 7e1ade4169 Log the value of LIB_DIR for doc builds (debug) 2017-08-01 12:41:36 -07:00
Vinnie Falco 8bfa058daa Tidy up doc snippet paths 2017-07-29 12:44:41 -07:00
Vinnie Falco 61b2b63b57 Update doc copyrights 2017-07-29 00:25:00 -07:00
Vinnie Falco 8bf86bd2fa Build stand-alone doc 2017-07-29 00:25:00 -07:00
Vinnie Falco b2d58d60f9 Fix doc title 2017-07-28 19:30:28 -07:00
Vinnie Falco ddd67ef30e source.dox is path-independent 2017-07-28 17:07:23 -07:00
Vinnie Falco c28a700a00 Output to integrated documentation 2017-07-28 16:27:08 -07:00
Peter Dimov 31d2718eac Use configured doxygen and xsltproc 2017-07-25 05:33:28 -07:00
Vinnie Falco 03ec8d4d4b Normalize doc build scripts 2017-07-25 05:33:27 -07:00
Vinnie Falco f084d1e7b8 Add config-template 2017-07-24 10:40:57 -07:00
Vinnie Falco 982f4c3b70 Update documentation for boost 2017-07-24 09:41:27 -07:00
Vinnie Falco a72839645d Update README.md 2017-07-23 17:36:31 -07:00
Vinnie Falco cb501a07c8 WebSocket optimizations (API Change):
The websocket stream is optimized to contain a small
circular static buffer, reducing the number of I/O calls when
reading data. The size of the buffer is tuned for maximum
performance with TCP/IP and no long needs configuration:

* read_some replaces read_frame
* write_some replaces write_Frame
* async_read_some replaces async_read_frame
* async_write_some replaces async_write_frame

* websocket::stream::read_buffer_size is removed

Actions Required:

* Remove calls websocket::stream::read_buffer_size

* Use read_some and write_some instead of read_frame and write_frame
2017-07-20 08:15:32 -07:00
Vinnie Falco 04887c49e0 Documentation work 2017-07-20 08:15:32 -07:00
Vinnie Falco 4e44ddbd45 Add static_buffer (API Change):
* static_buffer is added

Note this is the same name from two versions ago, when
static_buffer was renamed to flat_static_buffer for
consistency and to clear the name for a circular static
buffer.

Actions Required:

* Callers who depend on static_buffer returning sequences of
  exactly length one should switch to flat_static_buffer.
2017-07-20 08:15:32 -07:00
Vinnie Falco cee3bff060 Add buffer_front 2017-07-20 08:15:32 -07:00
Vinnie Falco 94e92e75b7 Rename to flat_static_buffer and flat_static_buffer_base (API Change):
Actions Required:

* Rename static_buffer to flat_static_buffer_base
* Rename static_buffer_n to flat_static_buffer
2017-07-20 08:15:31 -07:00
Vinnie Falco 4b71aa67e0 Refactor chunked parsing (API Change):
* parser now has a callback feature for intercepting chunk headers
  and chunk bodies

* The names for basic_parser derived class callbacks have been
  refactored

* basic_parser offers an additional callback for distinguishing
  chunk body data.

Actions Required:

* Adjust signatures for required members of user-defined
  subclasses of basic_parser

* Use the new basic_parser chunk callbacks for accessing
  chunk extensions and chunk bodies.
2017-07-20 08:15:31 -07:00
Vinnie Falco ff15cf8688 Refactor chunked-encoding serialization:
New buffer sequence classes are provided to allow full
control over the serialization of chunk-encoded message
payloads:

* chunk_header

    A ConstBufferSequence representing the chunk header.
    It includes a hexadecimal-encoded size, an optional
    set of chunk extensions, and the trailing CRLF
    required to denote the end of the chunk header.

    This allows the caller to manually serialize the chunk
    body in one or more calls to a stream output function.
    The caller must also output an object of type `chunk_crlf`
    to the stream to indicate the end of the chunk body.

* chunk_crlf

    A small ConstBufferSequence that simply represents
    the two character sequence "\r\n" (CRLF). This is needed
    for the case where the caller wants to output a chunk
    body as a series of buffers (i.e. "chunking a chunk").

* chunk_body

    A ConstBufferSequence representing a complete chunk.
    This includes the size, an optional set of chunk extensions,
    a caller provided buffer containing the body, and the
    required CRLF that follows.

* chunk_final

    A ConstBufferSequence representing a final chunk. It
    includes an optional set of caller-provided field trailers

* chunk_extensions

    A container for building a set of chunk extensions to use
    during serialization. The use of the container is optional,
    callers may provide their own buffer containing a correctly
    formatted set of chunk extensions, or they may use their
    own convenience container which meets the requirements.

The basic_fields container is modified to allow construction
outside the context of a message. The container can be used
to provide trailers to `chunk_final`.

Actions Required:

* Remove references to ChunkDecorators. Use the new chunk-encoding
  buffer sequences to manually produce a chunked payload body in
  the case where control over the chunk-extensions and/or trailers
  is required.
2017-07-20 08:15:31 -07:00
Vinnie Falco 6cec63fc9e Add basic_file_body.hpp 2017-07-20 08:15:31 -07:00
Vinnie Falco b65f0abd50 Javadoc tidying 2017-07-20 08:15:30 -07:00
Vinnie Falco 5788ed2574 Remove string_view_body
Actions Required:

* Use span_body<char> instead of string_view_body
2017-07-20 08:15:30 -07:00
Vinnie Falco fa45e6ad07 Tidy up FieldsReader doc 2017-07-20 08:15:30 -07:00
Vinnie Falco 6a46e48424 Add message keep_alive, chunked, content_length members 2017-07-20 08:15:30 -07:00
Vinnie Falco f34d4f7204 span, string, vector bodies are public 2017-07-20 08:15:30 -07:00
Vinnie Falco 1f41c124c0 Documentation work 2017-07-20 08:15:30 -07:00
Vinnie Falco 37110f2d04 Add span_body 2017-07-20 08:15:30 -07:00
Vinnie Falco 80eb5af584 Add span 2017-07-20 08:15:30 -07:00
Vinnie Falco e1de01ad13 Add vector_body
fix #580
2017-07-20 08:15:30 -07:00
Vinnie Falco c6d7fa185b Tidy up basic_string_body
fix #580
2017-07-20 08:15:30 -07:00
Vinnie Falco e06a055503 BodyReader, BodyWriter use two-phase init (API Change):
These types now perform error-based initialization in
a separate init() functions instead of in the constructor.

Actions Required:

* Modify instances of user-defined BodyReader and BodyWriter
  types to perfrom two-phase initialization, as per the
  updated documented type requirements.
2017-07-20 08:15:30 -07:00
Vinnie Falco db59a92011 BodyReader may construct from a non-const message
fix #619
2017-07-20 08:15:30 -07:00
Vinnie Falco eec5f1d8b6 Add file_posix 2017-07-20 08:15:30 -07:00
Vinnie Falco e81026614a Remove common/file_body.hpp 2017-07-20 08:15:30 -07:00
Vinnie Falco 8bf46ffa05 Add file_body 2017-07-20 08:15:30 -07:00
Vinnie Falco 7254cc8976 Add file_win32 2017-07-20 08:15:30 -07:00
Vinnie Falco ddc3099281 Add file_stdio and File concept 2017-07-20 08:15:30 -07:00
Vinnie Falco f5ae60613f serializer::next replaces serializer::get (API Change):
Actions Required:

* Use serializer::next instead of serializer::get at call sites
2017-07-20 08:15:29 -07:00
Vinnie Falco 6b6c2e0f93 Add websocket-server-async example 2017-07-20 08:15:29 -07:00
Vinnie Falco c12ded9abc Add http-server-threaded example 2017-07-20 08:15:29 -07:00
Vinnie Falco 09df24ec62 Refactor file_body for best practices 2017-07-20 08:15:29 -07:00
Vinnie Falco ff33783d11 Refine Body::size specification 2017-07-20 08:15:29 -07:00
Vinnie Falco c149321013 Return std::size_t from Body::writer::put (API Change)
`put` returns the number of bytes actually transferred
from the input buffers.

Actions Required:

* Return the number of bytes actually transferred from the
  input buffers in user defined `Body::writer::put` functions.
2017-07-20 08:15:29 -07:00
Zach Laine 48929c4b3c std::pair "last" -> "first" in http_message.qbk
fix #563
2017-07-20 08:15:29 -07:00
Zach Laine 4f5f6a46fa Fix can/cannot thinko in FAQ.
fix #562
2017-07-20 08:15:29 -07:00
Vinnie Falco 2843a497a0 Documentation revision
fix #567, fix #572
2017-07-20 08:15:29 -07:00