userver: userver/storages/redis/impl/request.hpp Source File
Loading...
Searching...
No Matches
request.hpp
1#pragma once
2
3#include <chrono>
4
5#include <userver/engine/deadline.hpp>
6#include <userver/engine/future.hpp>
7
8#include <userver/storages/redis/impl/base.hpp>
9#include <userver/storages/redis/impl/types.hpp>
10
11USERVER_NAMESPACE_BEGIN
12
13namespace tracing {
14class Span;
15}
16
17namespace redis {
18
19class Request {
20 public:
21 Request(const Request&) = delete;
22 Request(Request&& r) noexcept = default;
23 Request& operator=(const Request&) = delete;
24 Request& operator=(Request&& r) noexcept = default;
25
26 ReplyPtr Get();
27
28 private:
29 friend class Sentinel;
30
31 Request(Sentinel& sentinel, CmdArgs&& args, const std::string& key,
32 bool master, const CommandControl& command_control,
33 size_t replies_to_skip);
34
35 Request(Sentinel& sentinel, CmdArgs&& args, size_t shard, bool master,
36 const CommandControl& command_control, size_t replies_to_skip);
37
38 CommandPtr PrepareRequest(CmdArgs&& args,
39 const CommandControl& command_control,
40 size_t replies_to_skip);
41
42 engine::Future<ReplyPtr> future_;
43 engine::Deadline deadline_;
44};
45
46} // namespace redis
47
48USERVER_NAMESPACE_END