asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design

Reference | Class Hierarchy | Class Index | Member Index

# asio::buffered_stream< Stream > Class Template Reference

Inherits noncopyable.

Inheritance diagram for asio::buffered_stream< Stream >:

List of all members.

## Detailed Description

### template<typename Stream>
class asio::buffered_stream< Stream >

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.

Thread Safety
  Distinct objects: Safe.
  Shared objects: Unsafe.

Concepts:
  AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream.

## 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

template<typename Arg>
| buffered_stream (Arg &a)
| Construct, passing the specified argument to initialise the next layer.
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.
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 ()
| 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.
std::size_t | flush (asio::error_code &ec)
| 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.
template<typename WriteHandler>
void | async_flush (WriteHandler handler)
| Start an asynchronous flush.
template<typename ConstBufferSequence>
std::size_t | write_some (const ConstBufferSequence &buffers)
| Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.
template<typename ConstBufferSequence>
std::size_t | write_some (const ConstBufferSequence &buffers, asio::error_code &ec)
| Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.
template<typename ConstBufferSequence, typename WriteHandler>
void | async_write_some (const ConstBufferSequence &buffers, WriteHandler handler)
| Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.
std::size_t | fill ()
| 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.
std::size_t | fill (asio::error_code &ec)
| 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.
template<typename ReadHandler>
void | async_fill (ReadHandler handler)
| Start an asynchronous fill.
template<typename MutableBufferSequence>
std::size_t | read_some (const MutableBufferSequence &buffers)
| Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.
template<typename MutableBufferSequence>
std::size_t | read_some (const MutableBufferSequence &buffers, asio::error_code &ec)
| Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.
template<typename MutableBufferSequence, typename ReadHandler>
void | async_read_some (const MutableBufferSequence &buffers, ReadHandler handler)
| Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.
template<typename MutableBufferSequence>
std::size_t | peek (const MutableBufferSequence &buffers)
| Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.
template<typename MutableBufferSequence>
std::size_t | peek (const MutableBufferSequence &buffers, asio::error_code &ec)
| Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.
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.

## Member Typedef Documentation

template<typename Stream>

typedef boost::remove_reference<Stream>::type asio::buffered_stream< Stream >::next_layer_type

The type of the next layer.

template<typename Stream>

typedef next_layer_type::lowest_layer_type asio::buffered_stream< Stream >::lowest_layer_type

The type of the lowest layer.

## Constructor & Destructor Documentation

template<typename Stream>
template<typename Arg>

asio::buffered_stream< Stream >::buffered_stream | ( | Arg & | a | ) | `[explicit]`

Construct, passing the specified argument to initialise the next layer.

template<typename Stream>
template<typename Arg>

asio::buffered_stream< Stream >::buffered_stream | ( | Arg & | a,
|  | std::size_t | read_buffer_size,
|  | std::size_t | write_buffer_size |
| ) |  |  | `[explicit]`

Construct, passing the specified argument to initialise the next layer.

## Member Function Documentation

template<typename Stream>

next_layer_type& asio::buffered_stream< Stream >::next_layer | ( |  | ) |

Get a reference to the next layer.

template<typename Stream>

lowest_layer_type& asio::buffered_stream< Stream >::lowest_layer | ( |  | ) |

Get a reference to the lowest layer.

template<typename Stream>

asio::io_service& asio::buffered_stream< Stream >::io_service | ( |  | ) |

Get the io_service associated with the object.

template<typename Stream>

void asio::buffered_stream< Stream >::close | ( |  | ) |

Close the stream.

template<typename Stream>

asio::error_code asio::buffered_stream< Stream >::close | ( | asio::error_code & | ec | ) |

Close the stream.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::flush | ( |  | ) |

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.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::flush | ( | asio::error_code & | ec | ) |

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.

template<typename Stream>
template<typename WriteHandler>

void asio::buffered_stream< Stream >::async_flush | ( | WriteHandler | handler | ) |

Start an asynchronous flush.

template<typename Stream>
template<typename ConstBufferSequence>

std::size_t asio::buffered_stream< Stream >::write_some | ( | const ConstBufferSequence & | buffers | ) |

Write the given data to the stream. Returns the number of bytes written. Throws an exception on failure.

template<typename Stream>
template<typename ConstBufferSequence>

std::size_t asio::buffered_stream< Stream >::write_some | ( | const ConstBufferSequence & | buffers,
|  | asio::error_code & | ec |
| ) |  |  |

Write the given data to the stream. Returns the number of bytes written, or 0 if an error occurred.

template<typename Stream>
template<typename ConstBufferSequence, typename WriteHandler>

void asio::buffered_stream< Stream >::async_write_some | ( | const ConstBufferSequence & | buffers,
|  | WriteHandler | handler |
| ) |  |  |

Start an asynchronous write. The data being written must be valid for the lifetime of the asynchronous operation.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::fill | ( |  | ) |

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.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::fill | ( | asio::error_code & | ec | ) |

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.

template<typename Stream>
template<typename ReadHandler>

void asio::buffered_stream< Stream >::async_fill | ( | ReadHandler | handler | ) |

Start an asynchronous fill.

template<typename Stream>
template<typename MutableBufferSequence>

std::size_t asio::buffered_stream< Stream >::read_some | ( | const MutableBufferSequence & | buffers | ) |

Read some data from the stream. Returns the number of bytes read. Throws an exception on failure.

template<typename Stream>
template<typename MutableBufferSequence>

std::size_t asio::buffered_stream< Stream >::read_some | ( | const MutableBufferSequence & | buffers,
|  | asio::error_code & | ec |
| ) |  |  |

Read some data from the stream. Returns the number of bytes read or 0 if an error occurred.

template<typename Stream>
template<typename MutableBufferSequence, typename ReadHandler>

void asio::buffered_stream< Stream >::async_read_some | ( | const MutableBufferSequence & | buffers,
|  | ReadHandler | handler |
| ) |  |  |

Start an asynchronous read. The buffer into which the data will be read must be valid for the lifetime of the asynchronous operation.

template<typename Stream>
template<typename MutableBufferSequence>

std::size_t asio::buffered_stream< Stream >::peek | ( | const MutableBufferSequence & | buffers | ) |

Peek at the incoming data on the stream. Returns the number of bytes read. Throws an exception on failure.

template<typename Stream>
template<typename MutableBufferSequence>

std::size_t asio::buffered_stream< Stream >::peek | ( | const MutableBufferSequence & | buffers,
|  | asio::error_code & | ec |
| ) |  |  |

Peek at the incoming data on the stream. Returns the number of bytes read, or 0 if an error occurred.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::in_avail | ( |  | ) |

Determine the amount of data that may be read without blocking.

template<typename Stream>

std::size_t asio::buffered_stream< Stream >::in_avail | ( | asio::error_code & | ec | ) |

Determine the amount of data that may be read without blocking.

asio 0.3.8rc3 | Home | Reference | Tutorial | Examples | Design