Loading...
Searching...
No Matches
write.hpp
1/* Copyright (c) 2018-2024 Marcelo Zimbres Silva (mzimbres@gmail.com)
2 *
3 * Distributed under the Boost Software License, Version 1.0. (See
4 * accompanying file LICENSE.txt)
5 */
6
7#ifndef BOOST_REDIS_WRITE_HPP
8#define BOOST_REDIS_WRITE_HPP
9
10#include <boost/redis/request.hpp>
11
12#include <boost/asio/write.hpp>
13
14namespace boost::redis::detail {
15
22template <class SyncWriteStream>
23auto write(SyncWriteStream& stream, request const& req)
24{
25 return asio::write(stream, asio::buffer(req.payload()));
26}
27
28template <class SyncWriteStream>
29auto write(SyncWriteStream& stream, request const& req, system::error_code& ec)
30{
31 return asio::write(stream, asio::buffer(req.payload()), ec);
32}
33
41template <
42 class AsyncWriteStream,
43 class CompletionToken =
44 asio::default_completion_token_t<typename AsyncWriteStream::executor_type> >
46 AsyncWriteStream& stream,
47 request const& req,
48 CompletionToken&& token =
49 asio::default_completion_token_t<typename AsyncWriteStream::executor_type>{})
50{
51 return asio::async_write(stream, asio::buffer(req.payload()), token);
52}
53
54} // namespace boost::redis::detail
55
56#endif // BOOST_REDIS_WRITE_HPP
Creates Redis requests.
Definition request.hpp:46
auto async_write(AsyncWriteStream &stream, request const &req, CompletionToken &&token=asio::default_completion_token_t< typename AsyncWriteStream::executor_type >{})
Writes a request asynchronously.
Definition write.hpp:45
auto write(SyncWriteStream &stream, request const &req)
Writes a request synchronously.
Definition write.hpp:23