userver
C++ Async Framework
Loading...
Searching...
No Matches
request_eval.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file
4
/// @brief @copybrief storages::redis::RequestEval
5
6
#
include
<
userver
/
compiler
/
impl
/
lifetime
.
hpp
>
7
#
include
<
userver
/
storages
/
redis
/
parse_reply
.
hpp
>
8
#
include
<
userver
/
storages
/
redis
/
reply
.
hpp
>
9
#
include
<
userver
/
storages
/
redis
/
request
.
hpp
>
10
11
USERVER_NAMESPACE_BEGIN
12
13
namespace
storages::
redis
{
14
15
/// @brief Redis future for EVAL responses.
16
template
<
typename
ScriptResult,
typename
ReplyType = ScriptResult>
17
class
[[nodiscard]] RequestEval final {
18
public
:
19
explicit
RequestEval(RequestEvalCommon&& request)
20
: request_(std::move(request))
21
{}
22
23
/// Wait for the request to finish on Redis server
24
void
Wait
() { request_
.
Wait
(
)
; }
25
26
/// Ignore the query result and do not wait for the Redis server to finish executing it
27
void
IgnoreResult
()
const
{ request_
.
IgnoreResult
(
)
; }
28
29
/// Wait for the request to finish on Redis server and get the result
30
ReplyType
Get
(
const
std::string& request_description = {}) {
31
return
impl::ParseReply<ScriptResult, ReplyType>(request_.GetRaw(), request_description);
32
}
33
34
/// Satisfies @ref engine::Awaitable, for use with @ref engine::WaitAnyContext and friends.
35
engine::AwaitableToken
GetAwaitableToken
()
noexcept
USERVER_IMPL_LIFETIME_BOUND {
36
return
request_
.
GetAwaitableToken
(
)
;
37
}
38
39
private
:
40
RequestEvalCommon request_;
41
};
42
43
}
// namespace storages::redis
44
45
USERVER_NAMESPACE_END
userver
storages
redis
request_eval.hpp
Generated on Tue Jun 30 2026 13:17:22 for userver by
Doxygen
1.13.2