userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
request_data_base.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/storages/redis/request_data_base.hpp
4
/// @brief Abstract bases for Redis request/scan pending results
5
6
#
include
<
string
>
7
8
#
include
<
userver
/
compiler
/
impl
/
lifetime
.
hpp
>
9
#
include
<
userver
/
engine
/
awaitable
.
hpp
>
10
#
include
<
userver
/
storages
/
redis
/
reply_fwd
.
hpp
>
11
#
include
<
userver
/
storages
/
redis
/
reply_types
.
hpp
>
12
#
include
<
userver
/
storages
/
redis
/
scan_tag
.
hpp
>
13
14
USERVER_NAMESPACE_BEGIN
15
16
namespace
storages::
redis
{
17
18
// Mock note:
19
// Request->
20
// RequestDataBase
21
//
22
// RequestDataBase <- RequestDataImpl
23
// RequestDataBase <- MockRequestDataBase <- UserMockRequestData
24
25
template
<
typename
ReplyType>
26
class
RequestDataBase
{
27
public
:
28
virtual
~RequestDataBase() =
default
;
29
30
virtual
void
Wait() = 0;
31
32
virtual
ReplyType Get(
const
std::string& request_description) = 0;
33
34
virtual
ReplyPtr GetRaw() = 0;
35
36
/// Satisfies @ref engine::Awaitable, for use with @ref engine::WaitAnyContext and friends.
37
virtual
engine::AwaitableToken
GetAwaitableToken
()
noexcept
USERVER_IMPL_LIFETIME_BOUND = 0;
38
};
39
40
template
<
ScanTag
TScanTag>
41
class
RequestScanDataBase
{
42
public
:
43
using
ReplyElem =
typename
ScanReplyElem
<TScanTag>::type;
44
45
virtual
~RequestScanDataBase() =
default
;
46
47
void
SetRequestDescription(std::string request_description) {
48
request_description_ = std::move(request_description);
49
}
50
51
virtual
ReplyElem Get() = 0;
52
53
virtual
ReplyElem& Current() = 0;
54
55
virtual
bool
Eof() = 0;
56
57
protected
:
58
// NOLINTNEXTLINE(misc-non-private-member-variables-in-classes)
59
std::string request_description_;
60
};
61
62
}
// namespace storages::redis
63
64
USERVER_NAMESPACE_END
userver
storages
redis
request_data_base.hpp
Generated on
for userver by
Doxygen
1.17.0