All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Private Types | Private Attributes
asio::buffered_stream< Stream > Class Template Reference

Adds buffering to the read- and write-related operations of a stream. More...

#include <buffered_stream.hpp>

Inheritance diagram for asio::buffered_stream< Stream >:
Inheritance graph
[legend]

List of all members.

Public Types

typedef
next_layer_type::lowest_layer_type 
lowest_layer_type
 The type of the lowest layer.
typedef
boost::remove_reference
< Stream >::type 
next_layer_type
 The type of the next layer.

Public Member Functions

template<typename ReadHandler >
void async_fill (ReadHandler handler)
 Start an asynchronous fill.
template<typename WriteHandler >
void async_flush (WriteHandler handler)
 Start an asynchronous flush.
template<typename MutableBufferSequence , typename ReadHandler >
void async_read_some (const MutableBufferSequence &buffers, ReadHandler handler)
template<typename ConstBufferSequence , typename WriteHandler >
void async_write_some (const ConstBufferSequence &buffers, WriteHandler handler)
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.
void close ()
 Close the stream.
asio::error_code close (asio::error_code &ec)
 Close the stream.
std::size_t fill ()
std::size_t fill (asio::error_code &ec)
std::size_t flush ()
std::size_t flush (asio::error_code &ec)
asio::io_serviceget_io_service ()
 Get the io_service associated with the object.
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.
asio::io_serviceio_service ()
lowest_layer_typelowest_layer ()
 Get a reference to the lowest layer.
next_layer_typenext_layer ()
 Get a reference to the next layer.
template<typename MutableBufferSequence >
std::size_t peek (const MutableBufferSequence &buffers)
template<typename MutableBufferSequence >
std::size_t peek (const MutableBufferSequence &buffers, asio::error_code &ec)
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 ConstBufferSequence >
std::size_t write_some (const ConstBufferSequence &buffers)
template<typename ConstBufferSequence >
std::size_t write_some (const ConstBufferSequence &buffers, asio::error_code &ec)

Private Types

typedef buffered_read_stream
< write_stream_type & > 
read_stream_type
typedef buffered_write_stream
< Stream > 
write_stream_type

Private Attributes

write_stream_type inner_stream_impl_
read_stream_type stream_impl_

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.

Definition at line 47 of file buffered_stream.hpp.


Member Typedef Documentation

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

The type of the lowest layer.

Definition at line 55 of file buffered_stream.hpp.

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

The type of the next layer.

Definition at line 52 of file buffered_stream.hpp.

template<typename Stream >
typedef buffered_read_stream<write_stream_type&> asio::buffered_stream< Stream >::read_stream_type [private]

Definition at line 242 of file buffered_stream.hpp.

template<typename Stream >
typedef buffered_write_stream<Stream> asio::buffered_stream< Stream >::write_stream_type [private]

Definition at line 238 of file buffered_stream.hpp.


Constructor & Destructor Documentation

template<typename Stream >
template<typename Arg >
asio::buffered_stream< Stream >::buffered_stream ( Arg &  a) [inline, explicit]

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

Definition at line 59 of file buffered_stream.hpp.

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 
) [inline, explicit]

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

Definition at line 67 of file buffered_stream.hpp.


Member Function Documentation

template<typename Stream >
template<typename ReadHandler >
void asio::buffered_stream< Stream >::async_fill ( ReadHandler  handler) [inline]

Start an asynchronous fill.

Definition at line 176 of file buffered_stream.hpp.

template<typename Stream >
template<typename WriteHandler >
void asio::buffered_stream< Stream >::async_flush ( WriteHandler  handler) [inline]

Start an asynchronous flush.

Definition at line 129 of file buffered_stream.hpp.

template<typename Stream >
template<typename MutableBufferSequence , typename ReadHandler >
void asio::buffered_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 201 of file buffered_stream.hpp.

template<typename Stream >
template<typename ConstBufferSequence , typename WriteHandler >
void asio::buffered_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 154 of file buffered_stream.hpp.

template<typename Stream >
void asio::buffered_stream< Stream >::close ( ) [inline]

Close the stream.

Definition at line 100 of file buffered_stream.hpp.

template<typename Stream >
asio::error_code asio::buffered_stream< Stream >::close ( asio::error_code ec) [inline]

Close the stream.

Definition at line 106 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_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. Throws an exception on failure.

Definition at line 162 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_stream< Stream >::fill ( asio::error_code ec) [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.

Definition at line 169 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_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 114 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_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 122 of file buffered_stream.hpp.

template<typename Stream >
asio::io_service& asio::buffered_stream< Stream >::get_io_service ( ) [inline]

Get the io_service associated with the object.

Definition at line 94 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_stream< Stream >::in_avail ( ) [inline]

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

Definition at line 225 of file buffered_stream.hpp.

template<typename Stream >
std::size_t asio::buffered_stream< Stream >::in_avail ( asio::error_code ec) [inline]

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

Definition at line 231 of file buffered_stream.hpp.

template<typename Stream >
asio::io_service& asio::buffered_stream< Stream >::io_service ( ) [inline]

(Deprecated: use get_io_service().) Get the io_service associated with the object.

Definition at line 88 of file buffered_stream.hpp.

template<typename Stream >
lowest_layer_type& asio::buffered_stream< Stream >::lowest_layer ( ) [inline]

Get a reference to the lowest layer.

Definition at line 81 of file buffered_stream.hpp.

template<typename Stream >
next_layer_type& asio::buffered_stream< Stream >::next_layer ( ) [inline]

Get a reference to the next layer.

Definition at line 75 of file buffered_stream.hpp.

template<typename Stream >
template<typename MutableBufferSequence >
std::size_t asio::buffered_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 210 of file buffered_stream.hpp.

template<typename Stream >
template<typename MutableBufferSequence >
std::size_t asio::buffered_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 218 of file buffered_stream.hpp.

template<typename Stream >
template<typename MutableBufferSequence >
std::size_t asio::buffered_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 184 of file buffered_stream.hpp.

template<typename Stream >
template<typename MutableBufferSequence >
std::size_t asio::buffered_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 192 of file buffered_stream.hpp.

template<typename Stream >
template<typename ConstBufferSequence >
std::size_t asio::buffered_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 137 of file buffered_stream.hpp.

template<typename Stream >
template<typename ConstBufferSequence >
std::size_t asio::buffered_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.

Definition at line 145 of file buffered_stream.hpp.


Member Data Documentation

template<typename Stream >
write_stream_type asio::buffered_stream< Stream >::inner_stream_impl_ [private]

Definition at line 239 of file buffered_stream.hpp.

template<typename Stream >
read_stream_type asio::buffered_stream< Stream >::stream_impl_ [private]

Definition at line 243 of file buffered_stream.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


Castor
Author(s): Carpe Noctem
autogenerated on Fri Nov 8 2013 11:05:40