.. _program_listing_file_stream-client_stream_stream_socket.hpp: Program Listing for File stream_socket.hpp ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``stream-client/stream/stream_socket.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "base_socket.hpp" #include #include namespace stream_client { template class stream_socket: public base_socket> { public: using base_socket>::base_socket; stream_socket(const stream_socket& other) = delete; stream_socket& operator=(const stream_socket& other) = delete; stream_socket(stream_socket&& other) = default; stream_socket& operator=(stream_socket&& other) = default; virtual ~stream_socket() = default; boost::system::error_code close(); template std::size_t send(const ConstBufferSequence& buffers, boost::system::error_code& ec, const Time& timeout_or_deadline); template std::size_t send(const ConstBufferSequence& buffers, const Time& timeout_or_deadline); template inline std::size_t send(const ConstBufferSequence& buffers, boost::system::error_code& ec) { return send(buffers, ec, this->io_timeout()); } template inline std::size_t send(const ConstBufferSequence& buffers) { return send(buffers, this->io_timeout()); } template std::size_t receive(const MutableBufferSequence& buffers, boost::system::error_code& ec, const Time& timeout_or_deadline); template std::size_t receive(const MutableBufferSequence& buffers, const Time& timeout_or_deadline); template inline std::size_t receive(const MutableBufferSequence& buffers, boost::system::error_code& ec) { return receive(buffers, ec, this->io_timeout()); } template inline std::size_t receive(const MutableBufferSequence& buffers) { return receive(buffers, this->io_timeout()); } template std::size_t write_some(const ConstBufferSequence& buffers, boost::system::error_code& ec, const Time& timeout_or_deadline); template std::size_t write_some(const ConstBufferSequence& buffers, const Time& timeout_or_deadline); template inline std::size_t write_some(const ConstBufferSequence& buffers, boost::system::error_code& ec) { return write_some(buffers, ec, this->io_timeout()); } template inline std::size_t write_some(const ConstBufferSequence& buffers) { return write_some(buffers, this->io_timeout()); } template std::size_t read_some(const MutableBufferSequence& buffers, boost::system::error_code& ec, const Time& timeout_or_deadline); template std::size_t read_some(const MutableBufferSequence& buffers, const Time& timeout_or_deadline); template inline std::size_t read_some(const MutableBufferSequence& buffers, boost::system::error_code& ec) { return read_some(buffers, ec, this->io_timeout()); } template inline std::size_t read_some(const MutableBufferSequence& buffers) { return read_some(buffers, this->io_timeout()); } private: template void async_send(const ConstBufferSequence& buffers, const Time& timeout_or_deadline, WriteHandler&& handler, bool setup_expiration); template void async_receive(const MutableBufferSequence& buffers, const Time& timeout_or_deadline, ReadHandler&& handler, bool setup_expiration); template void async_write_some(const ConstBufferSequence& buffers, const Time& timeout_or_deadline, WriteHandler&& handler); template void async_read_some(const MutableBufferSequence& buffers, const Time& timeout_or_deadline, ReadHandler&& handler); }; using tcp_client = stream_socket; } // namespace stream_client #include "impl/stream_socket.ipp"