userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
request_generic.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file
4
/// @brief @copybrief storages::redis::RequestGeneric
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 generic command responses.
16
/// Can be used to request custom modules commands or unsupported yet commands
17
template
<
typename
ReplyType>
18
class
[[nodiscard]] RequestGeneric final {
19
public
:
20
explicit
RequestGeneric(RequestGenericCommon&& request)
21
: request_(std::move(request))
22
{}
23
24
void
Wait() { request_
.
Wait
(
)
; }
25
26
void
IgnoreResult()
const
{ request_
.
IgnoreResult
(
)
; }
27
28
ReplyType Get(
const
std::string& request_description = {}) {
29
return
impl::ParseReply<ReplyType, ReplyType>(request_.GetRaw(), request_description);
30
}
31
32
/// Satisfies @ref engine::Awaitable, for use with @ref engine::WaitAnyContext and friends.
33
engine::AwaitableToken
GetAwaitableToken
()
noexcept
USERVER_IMPL_LIFETIME_BOUND {
34
return
request_
.
GetAwaitableToken
(
)
;
35
}
36
37
private
:
38
RequestGenericCommon request_;
39
};
40
41
}
// namespace storages::redis
42
43
USERVER_NAMESPACE_END
userver
storages
redis
request_generic.hpp
Generated on
for userver by
Doxygen
1.17.0