summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk')
-rw-r--r--3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk93
1 files changed, 93 insertions, 0 deletions
diff --git a/3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk b/3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk
new file mode 100644
index 00000000000..4e0cd880d51
--- /dev/null
+++ b/3rdparty/asio/src/doc/requirements/DynamicBuffer.qbk
@@ -0,0 +1,93 @@
+[/
+ / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff 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)
+ /]
+
+[section:DynamicBuffer Dynamic buffer requirements]
+
+A dynamic buffer encapsulates memory storage that may be automatically resized
+as required, where the memory is divided into an input sequence followed by an
+output sequence. These memory regions are internal to the dynamic buffer
+sequence, but direct access to the elements is provided to permit them to be
+efficiently used with I/O operations, such as the `send` or `receive`
+operations of a socket. Data written to the output sequence of a dynamic buffer
+sequence object is appended to the input sequence of the same object.
+
+A dynamic buffer type `X` shall satisfy the requirements of `MoveConstructible`
+(C++ Std, [moveconstructible]) types in addition to those listed below.
+
+In the table below, `X` denotes a dynamic buffer class, `x` denotes a
+value of type `X&`, `x1` denotes values of type `const X&`, and `n` denotes a
+value of type `size_t`, and `u` denotes an identifier.
+
+[table DynamicBuffer requirements
+ [[expression] [type] [assertion/note\npre/post-conditions]]
+ [
+ [`X::const_buffers_type`]
+ [type meeting [link asio.reference.ConstBufferSequence ConstBufferSequence]
+ requirements.]
+ [This type represents the memory associated with the input sequence.]
+ ]
+ [
+ [`X::mutable_buffers_type`]
+ [type meeting [link asio.reference.MutableBufferSequence MutableBufferSequence]
+ requirements.]
+ [This type represents the memory associated with the output sequence.]
+ ]
+ [
+ [`x1.size()`]
+ [`size_t`]
+ [Returns the size, in bytes, of the input sequence.]
+ ]
+ [
+ [`x1.max_size()`]
+ [`size_t`]
+ [Returns the permitted maximum of the sum of the sizes of the input
+ sequence and output sequence.]
+ ]
+ [
+ [`x1.capacity()`]
+ [`size_t`]
+ [Returns the maximum sum of the sizes of the input sequence and output
+ sequence that the dynamic buffer can hold without requiring reallocation.]
+ ]
+ [
+ [`x1.data()`]
+ [`X::const_buffers_type`]
+ [Returns a constant buffer sequence `u` that represents the memory
+ associated with the input sequence, and where `buffer_size(u) == size()`.]
+ ]
+ [
+ [`x.prepare(n)`]
+ [`X::mutable_buffers_type`]
+ [Requires: `size() + n <= max_size()`.\n
+ \n
+ Returns a mutable buffer sequence `u` representing the output sequence, and
+ where `buffer_size(u) == n`. The dynamic buffer reallocates memory as
+ required. All constant or mutable buffer sequences previously obtained
+ using `data()` or `prepare()` are invalidated.\n
+ \n
+ Throws: `length_error` if `size() + n > max_size()`.]
+ ]
+ [
+ [`x.commit(n)`]
+ []
+ [Appends `n` bytes from the start of the output sequence to the end of the
+ input sequence. The remainder of the output sequence is discarded. If `n`
+ is greater than the size of the output sequence, the entire output sequence
+ is appended to the input sequence. All constant or mutable buffer sequences
+ previously obtained using `data()` or `prepare()` are invalidated.]
+ ]
+ [
+ [`x.consume(n)`]
+ []
+ [Removes `n` bytes from beginning of the input sequence. If `n` is greater
+ than the size of the input sequence, the entire input sequence is removed.
+ All constant or mutable buffer sequences previously obtained using `data()`
+ or `prepare()` are invalidated.]
+ ]
+]
+
+[endsect]