#include <buffered_write_stream.hpp>
Inherits asio::detail::noncopyable.
Public Types | |
| typedef boost::remove_reference < Stream >::type | next_layer_type |
| The type of the next layer. | |
| typedef next_layer_type::lowest_layer_type | lowest_layer_type |
| The type of the lowest layer. | |
Public Member Functions | |
| BOOST_STATIC_CONSTANT (std::size_t, default_buffer_size=1024) | |
| template<typename Arg> | |
| buffered_write_stream (Arg &a) | |
| Construct, passing the specified argument to initialise the next layer. | |
| template<typename Arg> | |
| buffered_write_stream (Arg &a, std::size_t buffer_size) | |
| Construct, passing the specified argument to initialise the next layer. | |
| next_layer_type & | next_layer () |
| Get a reference to the next layer. | |
| lowest_layer_type & | lowest_layer () |
| Get a reference to the lowest layer. | |
| asio::io_service & | io_service () |
| Get the io_service associated with the object. | |
| void | close () |
| Close the stream. | |
| asio::error_code | close (asio::error_code &ec) |
| Close the stream. | |
| std::size_t | flush () |
| std::size_t | flush (asio::error_code &ec) |
| template<typename WriteHandler> | |
| void | async_flush (WriteHandler handler) |
| Start an asynchronous flush. | |
| template<typename ConstBufferSequence> | |
| std::size_t | write_some (const ConstBufferSequence &buffers) |
| template<typename ConstBufferSequence> | |
| std::size_t | write_some (const ConstBufferSequence &buffers, asio::error_code &ec) |
| template<typename ConstBufferSequence, typename WriteHandler> | |
| void | async_write_some (const ConstBufferSequence &buffers, WriteHandler handler) |
| template<typename MutableBufferSequence> | |
| std::size_t | read_some (const MutableBufferSequence &buffers) |
| template<typename MutableBufferSequence> | |
| std::size_t | read_some (const MutableBufferSequence &buffers, asio::error_code &ec) |
| template<typename MutableBufferSequence, typename ReadHandler> | |
| void | async_read_some (const MutableBufferSequence &buffers, ReadHandler handler) |
| template<typename MutableBufferSequence> | |
| std::size_t | peek (const MutableBufferSequence &buffers) |
| template<typename MutableBufferSequence> | |
| std::size_t | peek (const MutableBufferSequence &buffers, asio::error_code &ec) |
| std::size_t | in_avail () |
| Determine the amount of data that may be read without blocking. | |
| std::size_t | in_avail (asio::error_code &ec) |
| Determine the amount of data that may be read without blocking. | |
Private Member Functions | |
| template<typename ConstBufferSequence> | |
| std::size_t | copy (const ConstBufferSequence &buffers) |
Private Attributes | |
| Stream | next_layer_ |
| The next layer. | |
| detail::buffered_stream_storage | storage_ |
Classes | |
| class | flush_handler |
| class | write_some_handler |
The buffered_write_stream class template can be used to add buffering to the synchronous and asynchronous write operations of a stream.
Definition at line 52 of file buffered_write_stream.hpp.
| typedef boost::remove_reference<Stream>::type asio::buffered_write_stream< Stream >::next_layer_type |
| typedef next_layer_type::lowest_layer_type asio::buffered_write_stream< Stream >::lowest_layer_type |
| asio::buffered_write_stream< Stream >::buffered_write_stream | ( | Arg & | a | ) | [inline, explicit] |
Construct, passing the specified argument to initialise the next layer.
Definition at line 71 of file buffered_write_stream.hpp.
| asio::buffered_write_stream< Stream >::buffered_write_stream | ( | Arg & | a, | |
| std::size_t | buffer_size | |||
| ) | [inline] |
Construct, passing the specified argument to initialise the next layer.
Definition at line 79 of file buffered_write_stream.hpp.
| asio::buffered_write_stream< Stream >::BOOST_STATIC_CONSTANT | ( | std::size_t | , | |
| default_buffer_size | = 1024 | |||
| ) |
| next_layer_type& asio::buffered_write_stream< Stream >::next_layer | ( | ) | [inline] |
Get a reference to the next layer.
Definition at line 86 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| lowest_layer_type& asio::buffered_write_stream< Stream >::lowest_layer | ( | ) | [inline] |
Get a reference to the lowest layer.
Definition at line 92 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| asio::io_service& asio::buffered_write_stream< Stream >::io_service | ( | ) | [inline] |
Get the io_service associated with the object.
Definition at line 98 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
Referenced by asio::buffered_write_stream< Stream >::async_flush(), and asio::buffered_write_stream< Stream >::async_write_some().
| void asio::buffered_write_stream< Stream >::close | ( | ) | [inline] |
Close the stream.
Definition at line 104 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| asio::error_code asio::buffered_write_stream< Stream >::close | ( | asio::error_code & | ec | ) | [inline] |
Close the stream.
Definition at line 110 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::flush | ( | ) | [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.
Definition at line 118 of file buffered_write_stream.hpp.
References asio::buffer(), asio::detail::buffered_stream_storage::consume(), asio::detail::buffered_stream_storage::data(), asio::buffered_write_stream< Stream >::next_layer_, asio::detail::buffered_stream_storage::size(), asio::buffered_write_stream< Stream >::storage_, and asio::write().
Referenced by asio::buffered_write_stream< Stream >::write_some().
| std::size_t asio::buffered_write_stream< Stream >::flush | ( | asio::error_code & | ec | ) | [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.
Definition at line 129 of file buffered_write_stream.hpp.
References asio::buffer(), asio::detail::buffered_stream_storage::consume(), asio::detail::buffered_stream_storage::data(), asio::buffered_write_stream< Stream >::next_layer_, asio::detail::buffered_stream_storage::size(), asio::buffered_write_stream< Stream >::storage_, asio::transfer_all(), and asio::write().
| void asio::buffered_write_stream< Stream >::async_flush | ( | WriteHandler | handler | ) | [inline] |
Start an asynchronous flush.
Definition at line 165 of file buffered_write_stream.hpp.
References asio::async_write(), asio::buffer(), asio::detail::buffered_stream_storage::data(), asio::buffered_write_stream< Stream >::io_service(), asio::buffered_write_stream< Stream >::next_layer_, asio::detail::buffered_stream_storage::size(), and asio::buffered_write_stream< Stream >::storage_.
Referenced by asio::buffered_write_stream< Stream >::async_write_some().
| std::size_t asio::buffered_write_stream< Stream >::write_some | ( | const ConstBufferSequence & | buffers | ) | [inline] |
Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
Definition at line 174 of file buffered_write_stream.hpp.
References asio::detail::buffered_stream_storage::capacity(), asio::buffered_write_stream< Stream >::copy(), asio::buffered_write_stream< Stream >::flush(), asio::detail::buffered_stream_storage::size(), and asio::buffered_write_stream< Stream >::storage_.
| std::size_t asio::buffered_write_stream< Stream >::write_some | ( | const ConstBufferSequence & | buffers, | |
| asio::error_code & | ec | |||
| ) | [inline] |
Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred and the error handler did not throw.
Definition at line 184 of file buffered_write_stream.hpp.
References asio::detail::buffered_stream_storage::capacity(), asio::buffered_write_stream< Stream >::copy(), asio::buffered_write_stream< Stream >::flush(), asio::detail::buffered_stream_storage::size(), and asio::buffered_write_stream< Stream >::storage_.
| void asio::buffered_write_stream< Stream >::async_write_some | ( | const ConstBufferSequence & | buffers, | |
| WriteHandler | handler | |||
| ) | [inline] |
Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
Definition at line 250 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::async_flush(), asio::detail::bind_handler(), asio::detail::buffered_stream_storage::capacity(), asio::buffered_write_stream< Stream >::copy(), asio::buffered_write_stream< Stream >::io_service(), asio::io_service::post(), asio::detail::buffered_stream_storage::size(), and asio::buffered_write_stream< Stream >::storage_.
| std::size_t asio::buffered_write_stream< Stream >::read_some | ( | const MutableBufferSequence & | buffers | ) | [inline] |
Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
Definition at line 269 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::read_some | ( | const MutableBufferSequence & | buffers, | |
| asio::error_code & | ec | |||
| ) | [inline] |
Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
Definition at line 277 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| void asio::buffered_write_stream< Stream >::async_read_some | ( | const MutableBufferSequence & | buffers, | |
| ReadHandler | handler | |||
| ) | [inline] |
Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
Definition at line 286 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::peek | ( | const MutableBufferSequence & | buffers | ) | [inline] |
Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
Definition at line 295 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::peek | ( | const MutableBufferSequence & | buffers, | |
| asio::error_code & | ec | |||
| ) | [inline] |
Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
Definition at line 303 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::in_avail | ( | ) | [inline] |
Determine the amount of data that may be read without blocking.
Definition at line 310 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::in_avail | ( | asio::error_code & | ec | ) | [inline] |
Determine the amount of data that may be read without blocking.
Definition at line 316 of file buffered_write_stream.hpp.
References asio::buffered_write_stream< Stream >::next_layer_.
| std::size_t asio::buffered_write_stream< Stream >::copy | ( | const ConstBufferSequence & | buffers | ) | [inline, private] |
Copy data into the internal buffer from the specified source buffer. Returns the number of bytes copied.
Definition at line 325 of file buffered_write_stream.hpp.
References asio::detail::buffered_stream_storage::capacity(), asio::detail::buffered_stream_storage::data(), asio::detail::buffered_stream_storage::resize(), asio::detail::buffered_stream_storage::size(), and asio::buffered_write_stream< Stream >::storage_.
Referenced by asio::buffered_write_stream< Stream >::async_write_some(), and asio::buffered_write_stream< Stream >::write_some().
Stream asio::buffered_write_stream< Stream >::next_layer_ [private] |
The next layer.
Definition at line 351 of file buffered_write_stream.hpp.
Referenced by asio::buffered_write_stream< Stream >::async_flush(), asio::buffered_write_stream< Stream >::async_read_some(), asio::buffered_write_stream< Stream >::close(), asio::buffered_write_stream< Stream >::flush(), asio::buffered_write_stream< Stream >::in_avail(), asio::buffered_write_stream< Stream >::io_service(), asio::buffered_write_stream< Stream >::lowest_layer(), asio::buffered_write_stream< Stream >::next_layer(), asio::buffered_write_stream< Stream >::peek(), and asio::buffered_write_stream< Stream >::read_some().
detail::buffered_stream_storage asio::buffered_write_stream< Stream >::storage_ [private] |
Definition at line 354 of file buffered_write_stream.hpp.
Referenced by asio::buffered_write_stream< Stream >::async_flush(), asio::buffered_write_stream< Stream >::async_write_some(), asio::buffered_write_stream< Stream >::copy(), asio::buffered_write_stream< Stream >::flush(), and asio::buffered_write_stream< Stream >::write_some().
1.5.6