⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read.hpp

📁 这是国外的resip协议栈
💻 HPP
📖 第 1 页 / 共 2 页
字号:
 * * @returns The number of bytes read. If an error occurs, returns the total * number of bytes successfully transferred prior to the error. */template <typename SyncReadStream, typename Allocator,    typename CompletionCondition>std::size_t read(SyncReadStream& s, basic_streambuf<Allocator>& b,    CompletionCondition completion_condition, asio::error_code& ec);/*@}*//** * @defgroup async_read asio::async_read *//*@{*//// Start an asynchronous operation to read a certain amount of data from a/// stream./** * This function is used to asynchronously read a certain number of bytes of * data from a stream. The function call always returns immediately. The * asynchronous operation will continue until one of the following conditions is * true: * * @li The supplied buffers are full. That is, the bytes transferred is equal to * the sum of the buffer sizes. * * @li An error occurred. * * This operation is implemented in terms of one or more calls to the stream's * async_read_some function. * * @param s The stream from which the data is to be read. The type must support * the AsyncReadStream concept. * * @param buffers One or more buffers into which the data will be read. The sum * of the buffer sizes indicates the maximum number of bytes to read from the * stream. Although the buffers object may be copied as necessary, ownership of * the underlying memory blocks is retained by the caller, which must guarantee * that they remain valid until the handler is called. * * @param handler The handler to be called when the read operation completes. * Copies will be made of the handler as required. The function signature of the * handler must be: * @code void handler( *   const asio::error_code& error, // Result of operation. * *   std::size_t bytes_transferred           // Number of bytes copied into the *                                           // buffers. If an error occurred, *                                           // this will be the  number of *                                           // bytes successfully transferred *                                           // prior to the error. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or * not, the handler will not be invoked from within this function. Invocation of * the handler will be performed in a manner equivalent to using * asio::io_service::post(). * * @par Example * To read into a single data buffer use the @ref buffer function as follows: * @code * asio::async_read(s, asio::buffer(data, size), handler); * @endcode * See the @ref buffer documentation for information on reading into multiple * buffers in one go, and how to use it with arrays, boost::array or * std::vector. * * @note This overload is equivalent to calling: * @code asio::async_read( *     s, buffers, *     asio::transfer_all(), *     handler); @endcode */template <typename AsyncReadStream, typename MutableBufferSequence,    typename ReadHandler>void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,    ReadHandler handler);/// Start an asynchronous operation to read a certain amount of data from a/// stream./** * This function is used to asynchronously read a certain number of bytes of * data from a stream. The function call always returns immediately. The * asynchronous operation will continue until one of the following conditions is * true: * * @li The supplied buffers are full. That is, the bytes transferred is equal to * the sum of the buffer sizes. * * @li The completion_condition function object returns true. * * @param s The stream from which the data is to be read. The type must support * the AsyncReadStream concept. * * @param buffers One or more buffers into which the data will be read. The sum * of the buffer sizes indicates the maximum number of bytes to read from the * stream. Although the buffers object may be copied as necessary, ownership of * the underlying memory blocks is retained by the caller, which must guarantee * that they remain valid until the handler is called. * * @param completion_condition The function object to be called to determine * whether the read operation is complete. The signature of the function object * must be: * @code bool completion_condition( *   const asio::error_code& error, // Result of latest read_some *                                           // operation. * *   std::size_t bytes_transferred           // Number of bytes transferred *                                           // so far. * ); @endcode * A return value of true indicates that the read operation is complete. False * indicates that further calls to the stream's async_read_some function are * required. * * @param handler The handler to be called when the read operation completes. * Copies will be made of the handler as required. The function signature of the * handler must be: * @code void handler( *   const asio::error_code& error, // Result of operation. * *   std::size_t bytes_transferred           // Number of bytes copied into the *                                           // buffers. If an error occurred, *                                           // this will be the  number of *                                           // bytes successfully transferred *                                           // prior to the error. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or * not, the handler will not be invoked from within this function. Invocation of * the handler will be performed in a manner equivalent to using * asio::io_service::post(). * * @par Example * To read into a single data buffer use the @ref buffer function as follows: * @code asio::async_read(s, *     asio::buffer(data, size), *     asio::transfer_at_least(32), *     handler); @endcode * See the @ref buffer documentation for information on reading into multiple * buffers in one go, and how to use it with arrays, boost::array or * std::vector. */template <typename AsyncReadStream, typename MutableBufferSequence,    typename CompletionCondition, typename ReadHandler>void async_read(AsyncReadStream& s, const MutableBufferSequence& buffers,    CompletionCondition completion_condition, ReadHandler handler);/// Start an asynchronous operation to read a certain amount of data from a/// stream./** * This function is used to asynchronously read a certain number of bytes of * data from a stream. The function call always returns immediately. The * asynchronous operation will continue until one of the following conditions is * true: * * @li An error occurred. * * This operation is implemented in terms of one or more calls to the stream's * async_read_some function. * * @param s The stream from which the data is to be read. The type must support * the AsyncReadStream concept. * * @param b A basic_streambuf object into which the data will be read. Ownership * of the streambuf is retained by the caller, which must guarantee that it * remains valid until the handler is called. * * @param handler The handler to be called when the read operation completes. * Copies will be made of the handler as required. The function signature of the * handler must be: * @code void handler( *   const asio::error_code& error, // Result of operation. * *   std::size_t bytes_transferred           // Number of bytes copied into the *                                           // buffers. If an error occurred, *                                           // this will be the  number of *                                           // bytes successfully transferred *                                           // prior to the error. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or * not, the handler will not be invoked from within this function. Invocation of * the handler will be performed in a manner equivalent to using * asio::io_service::post(). * * @note This overload is equivalent to calling: * @code asio::async_read( *     s, b, *     asio::transfer_all(), *     handler); @endcode */template <typename AsyncReadStream, typename Allocator, typename ReadHandler>void async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,    ReadHandler handler);/// Start an asynchronous operation to read a certain amount of data from a/// stream./** * This function is used to asynchronously read a certain number of bytes of * data from a stream. The function call always returns immediately. The * asynchronous operation will continue until one of the following conditions is * true: * * @li The completion_condition function object returns true. * * This operation is implemented in terms of one or more calls to the stream's * async_read_some function. * * @param s The stream from which the data is to be read. The type must support * the AsyncReadStream concept. * * @param b A basic_streambuf object into which the data will be read. Ownership * of the streambuf is retained by the caller, which must guarantee that it * remains valid until the handler is called. * * @param completion_condition The function object to be called to determine * whether the read operation is complete. The signature of the function object * must be: * @code bool completion_condition( *   const asio::error_code& error, // Result of latest read_some *                                           // operation. * *   std::size_t bytes_transferred           // Number of bytes transferred *                                           // so far. * ); @endcode * A return value of true indicates that the read operation is complete. False * indicates that further calls to the stream's async_read_some function are * required. * * @param handler The handler to be called when the read operation completes. * Copies will be made of the handler as required. The function signature of the * handler must be: * @code void handler( *   const asio::error_code& error, // Result of operation. * *   std::size_t bytes_transferred           // Number of bytes copied into the *                                           // buffers. If an error occurred, *                                           // this will be the  number of *                                           // bytes successfully transferred *                                           // prior to the error. * ); @endcode * Regardless of whether the asynchronous operation completes immediately or * not, the handler will not be invoked from within this function. Invocation of * the handler will be performed in a manner equivalent to using * asio::io_service::post(). */template <typename AsyncReadStream, typename Allocator,    typename CompletionCondition, typename ReadHandler>void async_read(AsyncReadStream& s, basic_streambuf<Allocator>& b,    CompletionCondition completion_condition, ReadHandler handler);/*@}*/} // namespace asio#include "asio/impl/read.ipp"#include "asio/detail/pop_options.hpp"#endif // ASIO_READ_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -