12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* Copyright (c) 2018-2023 Marcelo Zimbres Silva ([email protected])
- *
- * Distributed under the Boost Software License, Version 1.0. (See
- * accompanying file LICENSE.txt)
- */
- #ifndef BOOST_REDIS_WRITE_HPP
- #define BOOST_REDIS_WRITE_HPP
- #include <boost/asio/write.hpp>
- #include <boost/redis/request.hpp>
- namespace boost::redis::detail {
- /** \brief Writes a request synchronously.
- * \ingroup low-level-api
- *
- * \param stream Stream to write the request to.
- * \param req Request to write.
- */
- template<class SyncWriteStream>
- auto write(SyncWriteStream& stream, request const& req)
- {
- return asio::write(stream, asio::buffer(req.payload()));
- }
- template<class SyncWriteStream>
- auto write(SyncWriteStream& stream, request const& req, system::error_code& ec)
- {
- return asio::write(stream, asio::buffer(req.payload()), ec);
- }
- /** \brief Writes a request asynchronously.
- * \ingroup low-level-api
- *
- * \param stream Stream to write the request to.
- * \param req Request to write.
- * \param token Asio completion token.
- */
- template<
- class AsyncWriteStream,
- class CompletionToken = asio::default_completion_token_t<typename AsyncWriteStream::executor_type>
- >
- auto async_write(
- AsyncWriteStream& stream,
- request const& req,
- CompletionToken&& token =
- asio::default_completion_token_t<typename AsyncWriteStream::executor_type>{})
- {
- return asio::async_write(stream, asio::buffer(req.payload()), token);
- }
- } // boost::redis::detail
- #endif // BOOST_REDIS_WRITE_HPP
|