.. _program_listing_file_stream-client_stream_dgram_socket.hpp: Program Listing for File dgram_socket.hpp ========================================= |exhale_lsh| :ref:`Return to documentation for file ` (``stream-client/stream/dgram_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 datagram_socket: public base_socket> { public: using base_socket>::base_socket; datagram_socket(const datagram_socket& other) = delete; datagram_socket& operator=(const datagram_socket& other) = delete; datagram_socket(datagram_socket&& other) = default; datagram_socket& operator=(datagram_socket&& other) = default; virtual ~datagram_socket() = default; 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()); } 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); }; using udp_client = datagram_socket; } // namespace stream_client #include "impl/dgram_socket.ipp"