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

Reference | Class Hierarchy | Class Index | Member Index

# asio::write

## Functions

template<typename SyncWriteStream, typename ConstBufferSequence>
std::size_t | asio::write (SyncWriteStream &s, const ConstBufferSequence &buffers)
| Write all of the supplied data to a stream before returning.
template<typename SyncWriteStream, typename ConstBufferSequence, typename CompletionCondition>
std::size_t | asio::write (SyncWriteStream &s, const ConstBufferSequence &buffers, CompletionCondition completion_condition)
| Write a certain amount of data to a stream before returning.
template<typename SyncWriteStream, typename ConstBufferSequence, typename CompletionCondition>
std::size_t | asio::write (SyncWriteStream &s, const ConstBufferSequence &buffers, CompletionCondition completion_condition, asio::error_code &ec)
| Write a certain amount of data to a stream before returning.
template<typename SyncWriteStream, typename Allocator>
std::size_t | asio::write (SyncWriteStream &s, basic_streambuf< Allocator > &b)
| Write a certain amount of data to a stream before returning.
template<typename SyncWriteStream, typename Allocator, typename CompletionCondition>
std::size_t | asio::write (SyncWriteStream &s, basic_streambuf< Allocator > &b, CompletionCondition completion_condition)
| Write a certain amount of data to a stream before returning.
template<typename SyncWriteStream, typename Allocator, typename CompletionCondition>
std::size_t | asio::write (SyncWriteStream &s, basic_streambuf< Allocator > &b, CompletionCondition completion_condition, asio::error_code &ec)
| Write a certain amount of data to a stream before returning.

## Function Documentation

template<typename SyncWriteStream, typename ConstBufferSequence>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | const ConstBufferSequence & | buffers |
| ) |  |  |

Write all of the supplied data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.

- An error occurred.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | buffers | One or more buffers containing the data to be written. The sum of the buffer sizes indicates the maximum number of bytes to write to the stream.

Returns:
  The number of bytes transferred.

Exceptions:

  | asio::system_error | Thrown on failure.

Example
  To write a single data buffer use the asio::buffer function as follows:

       asio::write(s, asio::buffer(data, size));

  See the asio::buffer documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

Note:
  This overload is equivalent to calling:

       asio::write(
           s, buffers,
           asio::transfer_all());

template<typename SyncWriteStream, typename ConstBufferSequence, typename CompletionCondition>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | const ConstBufferSequence & | buffers,
|  | CompletionCondition | completion_condition |
| ) |  |  |

Write a certain amount of data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.

- The completion_condition function object returns true.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | buffers | One or more buffers containing the data to be written. The sum of the buffer sizes indicates the maximum number of bytes to write to the stream.
  | completion_condition | The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
       bool completion_condition(
         const asio::error_code& error, // Result of latest write_some
                                                 // operation.

         std::size_t bytes_transferred           // Number of bytes transferred
                                                 // so far.
       );
  A return value of true indicates that the write operation is complete. False indicates that further calls to the stream's write_some function are required.

Returns:
  The number of bytes transferred.

Exceptions:

  | asio::system_error | Thrown on failure.

Example
  To write a single data buffer use the asio::buffer function as follows:

       asio::write(s, asio::buffer(data, size),
           asio::transfer_at_least(32));

  See the asio::buffer documentation for information on writing multiple buffers in one go, and how to use it with arrays, boost::array or std::vector.

template<typename SyncWriteStream, typename ConstBufferSequence, typename CompletionCondition>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | const ConstBufferSequence & | buffers,
|  | CompletionCondition | completion_condition,
|  | asio::error_code & | ec |
| ) |  |  |

Write a certain amount of data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied buffers has been written. That is, the bytes transferred is equal to the sum of the buffer sizes.

- The completion_condition function object returns true.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | buffers | One or more buffers containing the data to be written. The sum of the buffer sizes indicates the maximum number of bytes to write to the stream.
  | completion_condition | The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
       bool completion_condition(
         const asio::error_code& error, // Result of latest write_some
                                                 // operation.

         std::size_t bytes_transferred           // Number of bytes transferred
                                                 // so far.
       );
  A return value of true indicates that the write operation is complete. False indicates that further calls to the stream's write_some function are required.
  | ec | Set to indicate what error occurred, if any.

Returns:
  The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.

template<typename SyncWriteStream, typename Allocator>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | basic_streambuf< Allocator > & | b |
| ) |  |  |

Write a certain amount of data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied basic_streambuf has been written.

- An error occurred.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | b | The basic_streambuf object from which data will be written.

Returns:
  The number of bytes transferred.

Exceptions:

  | asio::system_error | Thrown on failure.

Note:
  This overload is equivalent to calling:

       asio::write(
           s, b,
           asio::transfer_all());

template<typename SyncWriteStream, typename Allocator, typename CompletionCondition>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | basic_streambuf< Allocator > & | b,
|  | CompletionCondition | completion_condition |
| ) |  |  |

Write a certain amount of data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied basic_streambuf has been written.

- The completion_condition function object returns true.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | b | The basic_streambuf object from which data will be written.
  | completion_condition | The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
       bool completion_condition(
         const asio::error_code& error, // Result of latest write_some
                                                 // operation.

         std::size_t bytes_transferred           // Number of bytes transferred
                                                 // so far.
       );
  A return value of true indicates that the write operation is complete. False indicates that further calls to the stream's write_some function are required.

Returns:
  The number of bytes transferred.

Exceptions:

  | asio::system_error | Thrown on failure.

template<typename SyncWriteStream, typename Allocator, typename CompletionCondition>

std::size_t asio::write | ( | SyncWriteStream & | s,
|  | basic_streambuf< Allocator > & | b,
|  | CompletionCondition | completion_condition,
|  | asio::error_code & | ec |
| ) |  |  |

Write a certain amount of data to a stream before returning.

This function is used to write a certain number of bytes of data to a stream. The call will block until one of the following conditions is true:

- All of the data in the supplied basic_streambuf has been written.

- The completion_condition function object returns true.

This operation is implemented in terms of one or more calls to the stream's write_some function.

Parameters:

  | s | The stream to which the data is to be written. The type must support the SyncWriteStream concept.
  | b | The basic_streambuf object from which data will be written.
  | completion_condition | The function object to be called to determine whether the write operation is complete. The signature of the function object must be:
       bool completion_condition(
         const asio::error_code& error, // Result of latest write_some
                                                 // operation.

         std::size_t bytes_transferred           // Number of bytes transferred
                                                 // so far.
       );
  A return value of true indicates that the write operation is complete. False indicates that further calls to the stream's write_some function are required.
  | ec | Set to indicate what error occurred, if any.

Returns:
  The number of bytes written. If an error occurs, returns the total number of bytes successfully transferred prior to the error.

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