| Home | Libraries | People | FAQ | More

#### static_buffer

A dynamic buffer providing a fixed size, circular buffer.

##### Synopsis

Defined in header `<boost/beast/core/static_buffer.hpp>`

    template<
        std::size_t N>
    class static_buffer :
        public static_buffer_base

##### Types

Name | Description
--- | ---
const_buffers_type | The ConstBufferSequence used to represent the readable bytes.
mutable_buffers_type | The MutableBufferSequence used to represent the writable bytes.
mutable_data_type | The MutableBufferSequence used to represent the readable bytes.

##### Member Functions

Name | Description
--- | ---
base | Returns the static_buffer_base portion of this object.
capacity | Return the maximum sum of input and output sizes that can be held without an allocation.
cdata | Returns a constant buffer sequence representing the readable bytes.
clear | Clear the readable and writable bytes to zero.
commit | Append writable bytes to the readable bytes.
consume | Remove bytes from beginning of the readable bytes.
data | Returns a constant buffer sequence representing the readable bytes. Returns a mutable buffer sequence representing the readable bytes.
max_size | Return the maximum sum of the input and output sequence sizes.
operator= | Assignment.
prepare | Returns a mutable buffer sequence representing writable bytes.
size | Returns the number of readable bytes.
static_buffer | Constructor.

##### Description

A dynamic buffer encapsulates memory storage that may be automatically resized as required, where the memory is divided into two regions: readable bytes followed by writable bytes. These memory regions are internal to the dynamic buffer, but direct access to the elements is provided to permit them to be efficiently used with I/O operations. Objects of this type meet the requirements of DynamicBuffer and have the following additional properties:

- A mutable buffer sequence representing the readable bytes is returned by `static_buffer::data` when `this` is non-const.
- Buffer sequences representing the readable and writable bytes, returned by `static_buffer::data` and `static_buffer::prepare`, may have length up to two.
- All operations execute in constant time.

##### Template Parameters

Type | Description
--- | ---
`N` | The number of bytes in the internal buffer.

##### Remarks

To reduce the number of template instantiations when passing objects of this type in a deduced context, the signature of the receiving function should use `static_buffer_base` instead.

##### See Also

`static_buffer_base`

Convenience header `<boost/beast/core.hpp>`