Adds buffering to the read- and write-related operations of a stream. More...
#include <buffered_stream_fwd.hpp>
Public Types | |
typedef remove_reference < Stream >::type | next_layer_type |
The type of the next layer. More... | |
typedef next_layer_type::lowest_layer_type | lowest_layer_type |
The type of the lowest layer. More... | |
Public Member Functions | |
template<typename Arg > | |
buffered_stream (Arg &a) | |
Construct, passing the specified argument to initialise the next layer. More... | |
template<typename Arg > | |
buffered_stream (Arg &a, std::size_t read_buffer_size, std::size_t write_buffer_size) | |
Construct, passing the specified argument to initialise the next layer. More... | |
next_layer_type & | next_layer () |
Get a reference to the next layer. More... | |
lowest_layer_type & | lowest_layer () |
Get a reference to the lowest layer. More... | |
const lowest_layer_type & | lowest_layer () const |
Get a const reference to the lowest layer. More... | |
boost::asio::io_service & | get_io_service () |
Get the io_service associated with the object. More... | |
void | close () |
Close the stream. More... | |
boost::system::error_code | close (boost::system::error_code &ec) |
Close the stream. More... | |
std::size_t | flush () |
Flush all data from the buffer to the next layer. More... | |
std::size_t | flush (boost::system::error_code &ec) |
Flush all data from the buffer to the next layer. More... | |
template<typename WriteHandler > | |
BOOST_ASIO_INITFN_RESULT_TYPE (WriteHandler, void(boost::system::error_code, std::size_t)) async_flush(BOOST_ASIO_MOVE_ARG(WriteHandler) handler) | |
Start an asynchronous flush. More... | |
template<typename ConstBufferSequence > | |
std::size_t | write_some (const ConstBufferSequence &buffers) |
Write the given data to the stream. More... | |
template<typename ConstBufferSequence > | |
std::size_t | write_some (const ConstBufferSequence &buffers, boost::system::error_code &ec) |
Write the given data to the stream. More... | |
template<typename ConstBufferSequence , typename WriteHandler > | |
BOOST_ASIO_INITFN_RESULT_TYPE (WriteHandler, void(boost::system::error_code, std::size_t)) async_write_some(const ConstBufferSequence &buffers | |
Start an asynchronous write. More... | |
BOOST_ASIO_MOVE_ARG (WriteHandler) handler) | |
std::size_t | fill () |
Fill the buffer with some data. More... | |
std::size_t | fill (boost::system::error_code &ec) |
Fill the buffer with some data. More... | |
template<typename ReadHandler > | |
BOOST_ASIO_INITFN_RESULT_TYPE (ReadHandler, void(boost::system::error_code, std::size_t)) async_fill(BOOST_ASIO_MOVE_ARG(ReadHandler) handler) | |
Start an asynchronous fill. More... | |
template<typename MutableBufferSequence > | |
std::size_t | read_some (const MutableBufferSequence &buffers) |
Read some data from the stream. More... | |
template<typename MutableBufferSequence > | |
std::size_t | read_some (const MutableBufferSequence &buffers, boost::system::error_code &ec) |
Read some data from the stream. More... | |
template<typename MutableBufferSequence , typename ReadHandler > | |
BOOST_ASIO_INITFN_RESULT_TYPE (ReadHandler, void(boost::system::error_code, std::size_t)) async_read_some(const MutableBufferSequence &buffers | |
Start an asynchronous read. More... | |
BOOST_ASIO_MOVE_ARG (ReadHandler) handler) | |
template<typename MutableBufferSequence > | |
std::size_t | peek (const MutableBufferSequence &buffers) |
Peek at the incoming data on the stream. More... | |
template<typename MutableBufferSequence > | |
std::size_t | peek (const MutableBufferSequence &buffers, boost::system::error_code &ec) |
Peek at the incoming data on the stream. More... | |
std::size_t | in_avail () |
Determine the amount of data that may be read without blocking. More... | |
std::size_t | in_avail (boost::system::error_code &ec) |
Determine the amount of data that may be read without blocking. More... | |
Adds buffering to the read- and write-related operations of a stream.
The buffered_stream class template can be used to add buffering to the synchronous and asynchronous read and write operations of a stream.
typedef next_layer_type::lowest_layer_type boost::asio::buffered_stream< Stream >::lowest_layer_type |
The type of the lowest layer.
typedef remove_reference<Stream>::type boost::asio::buffered_stream< Stream >::next_layer_type |
The type of the next layer.
|
inlineexplicit |
Construct, passing the specified argument to initialise the next layer.
|
inlineexplicit |
Construct, passing the specified argument to initialise the next layer.
|
inline |
Start an asynchronous flush.
References boost::asio::buffered_read_stream< Stream >::next_layer().
boost::asio::buffered_stream< Stream >::BOOST_ASIO_INITFN_RESULT_TYPE | ( | WriteHandler | , |
void(boost::system::error_code, std::size_t) | |||
) | const |
Start an asynchronous write.
The data being written must be valid for the lifetime of the asynchronous operation.
|
inline |
Start an asynchronous fill.
boost::asio::buffered_stream< Stream >::BOOST_ASIO_INITFN_RESULT_TYPE | ( | ReadHandler | , |
void(boost::system::error_code, std::size_t) | |||
) | const |
Start an asynchronous read.
The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
|
inline |
|
inline |
|
inline |
Close the stream.
References boost::asio::buffered_read_stream< Stream >::close().
|
inline |
Close the stream.
References boost::asio::buffered_read_stream< Stream >::close().
|
inline |
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.
References boost::asio::buffered_read_stream< Stream >::fill().
|
inline |
Fill the buffer with some data.
Returns the number of bytes placed in the buffer as a result of the operation, or 0 if an error occurred.
References boost::asio::buffered_read_stream< Stream >::fill().
|
inline |
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.
References boost::asio::buffered_read_stream< Stream >::next_layer().
|
inline |
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, or 0 if an error occurred.
References boost::asio::buffered_read_stream< Stream >::next_layer().
|
inline |
Get the io_service associated with the object.
References boost::asio::buffered_read_stream< Stream >::get_io_service().
|
inline |
Determine the amount of data that may be read without blocking.
References boost::asio::buffered_read_stream< Stream >::in_avail().
|
inline |
Determine the amount of data that may be read without blocking.
References boost::asio::buffered_read_stream< Stream >::in_avail().
|
inline |
Get a reference to the lowest layer.
References boost::asio::buffered_read_stream< Stream >::lowest_layer().
|
inline |
Get a const reference to the lowest layer.
References boost::asio::buffered_read_stream< Stream >::lowest_layer().
|
inline |
Get a reference to the next layer.
References boost::asio::buffered_read_stream< Stream >::next_layer().
|
inline |
Peek at the incoming data on the stream.
Returns the number of bytes read. Throws an exception on failure.
References boost::asio::buffered_read_stream< Stream >::peek().
|
inline |
Peek at the incoming data on the stream.
Returns the number of bytes read, or 0 if an error occurred.
References boost::asio::buffered_read_stream< Stream >::peek().
|
inline |
Read some data from the stream.
Returns the number of bytes read. Throws an exception on failure.
References boost::asio::buffered_read_stream< Stream >::read_some().
|
inline |
Read some data from the stream.
Returns the number of bytes read or 0 if an error occurred.
References boost::asio::buffered_read_stream< Stream >::read_some().
|
inline |
Write the given data to the stream.
Returns the number of bytes written. Throws an exception on failure.
References boost::asio::buffered_read_stream< Stream >::write_some().
|
inline |
Write the given data to the stream.
Returns the number of bytes written, or 0 if an error occurred.
References boost::asio::buffered_read_stream< Stream >::write_some().