...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Adds buffering to the read- and write-related operations of a stream.
template< typename Stream> class buffered_stream : noncopyable
Name |
Description |
---|---|
The type of the executor associated with the object. |
|
The type of the lowest layer. |
|
The type of the next layer. |
Name |
Description |
---|---|
Start an asynchronous fill. |
|
Start an asynchronous flush. |
|
Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation. |
|
Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation. |
|
buffered_stream [constructor] |
Construct, passing the specified argument to initialise the next layer. |
Close the stream. |
|
Fill the buffer with some data. Returns the number of bytes placed
in the buffer as a result of the operation. Throws an exception
on failure. |
|
Flush all data from the buffer to the next layer. Returns the number
of bytes written to the next layer on the last write operation.
Throws an exception on failure. |
|
Get the executor associated with the object. |
|
Determine the amount of data that may be read without blocking. |
|
Get a reference to the lowest layer. |
|
Get a reference to the next layer. |
|
Peek at the incoming data on the stream. Returns the number of
bytes read. Throws an exception on failure. |
|
Read some data from the stream. Returns the number of bytes read.
Throws an exception on failure. |
|
Write the given data to the stream. Returns the number of bytes
written. Throws an exception on failure. |
The buffered_stream
class template can be used to add buffering to the synchronous and asynchronous
read and write operations of a stream.
Distinct objects: Safe.
Shared objects: Unsafe.
Header: boost/asio/buffered_stream.hpp
Convenience header: boost/asio.hpp