asio 0.3.8rc3 Home | Reference | Tutorial | Examples | Design
Reference Class Hierarchy | Class Index | Member Index

asio::buffered_write_stream< Stream > Class Template Reference

Inheritance diagram for asio::buffered_write_stream< Stream >:

Inheritance graph

List of all members.


Detailed Description

template<typename Stream>
class asio::buffered_write_stream< Stream >

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

The buffered_write_stream class template can be used to add buffering to the synchronous and asynchronous 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_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_typenext_layer ()
 Get a reference to the next layer.
lowest_layer_typelowest_layer ()
 Get a reference to the lowest layer.
asio::io_serviceio_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 and the error handler did not throw.
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.
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.

Static Public Attributes

static const std::size_t default_buffer_size = implementation_defined
 The default buffer size.

Private Member Functions

template<typename ConstBufferSequence>
std::size_t copy (const ConstBufferSequence &buffers)
 Copy data into the internal buffer from the specified source buffer. Returns the number of bytes copied.

Private Attributes

Stream next_layer_
 The next layer.

Member Typedef Documentation

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

The type of the next layer.

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

The type of the lowest layer.


Constructor & Destructor Documentation

template<typename Stream>
template<typename Arg>
asio::buffered_write_stream< Stream >::buffered_write_stream ( Arg &  a  )  [explicit]

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

template<typename Stream>
template<typename Arg>
asio::buffered_write_stream< Stream >::buffered_write_stream ( Arg &  a,
std::size_t  buffer_size 
)

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


Member Function Documentation

template<typename Stream>
next_layer_type& asio::buffered_write_stream< Stream >::next_layer (  ) 

Get a reference to the next layer.

template<typename Stream>
lowest_layer_type& asio::buffered_write_stream< Stream >::lowest_layer (  ) 

Get a reference to the lowest layer.

template<typename Stream>
asio::io_service& asio::buffered_write_stream< Stream >::io_service (  ) 

Get the io_service associated with the object.

template<typename Stream>
void asio::buffered_write_stream< Stream >::close (  ) 

Close the stream.

template<typename Stream>
asio::error_code asio::buffered_write_stream< Stream >::close ( asio::error_code ec  ) 

Close the stream.

template<typename Stream>
std::size_t asio::buffered_write_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_write_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_write_stream< Stream >::async_flush ( WriteHandler  handler  ) 

Start an asynchronous flush.

template<typename Stream>
template<typename ConstBufferSequence>
std::size_t asio::buffered_write_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_write_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 and the error handler did not throw.

template<typename Stream>
template<typename ConstBufferSequence, typename WriteHandler>
void asio::buffered_write_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>
template<typename MutableBufferSequence>
std::size_t asio::buffered_write_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_write_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_write_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_write_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_write_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_write_stream< Stream >::in_avail (  ) 

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

template<typename Stream>
std::size_t asio::buffered_write_stream< Stream >::in_avail ( asio::error_code ec  ) 

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

template<typename Stream>
template<typename ConstBufferSequence>
std::size_t asio::buffered_write_stream< Stream >::copy ( const ConstBufferSequence &  buffers  )  [private]

Copy data into the internal buffer from the specified source buffer. Returns the number of bytes copied.


Member Data Documentation

template<typename Stream>
const std::size_t asio::buffered_write_stream< Stream >::default_buffer_size = implementation_defined [static]

The default buffer size.

template<typename Stream>
Stream asio::buffered_write_stream< Stream >::next_layer_ [private]

The next layer.

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