userver
C++ Async Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
admin_channel.hpp
Go to the documentation of this file.
1
#
pragma
once
2
3
/// @file userver/urabbitmq/admin_channel.hpp
4
/// @brief Administrative interface for the broker.
5
6
#
include
<
memory
>
7
8
#
include
<
userver
/
utils
/
fast_pimpl
.
hpp
>
9
10
#
include
<
userver
/
urabbitmq
/
broker_interface
.
hpp
>
11
12
USERVER_NAMESPACE_BEGIN
13
14
namespace
urabbitmq {
15
16
class
ConnectionPtr;
17
18
/// @brief Administrative interface for the broker.
19
/// You may use this class to setup your exchanges/queues/bindings.
20
/// You may as well use `Client` itself instead.
21
///
22
/// You are not expected to store this class for a long time, because it takes
23
/// a connection from the underlying connections pool.
24
///
25
/// Usually retrieved from `Client`
26
class
AdminChannel
final
:
IAdminInterface
{
27
public
:
28
AdminChannel(ConnectionPtr&& channel);
29
~AdminChannel();
30
31
AdminChannel(AdminChannel&& other)
noexcept
;
32
33
void
DeclareExchange
(
34
const
Exchange& exchange,
35
Exchange::
Type
type,
36
utils
::Flags<Exchange::
Flags
> flags,
37
engine::Deadline deadline
38
)
override
;
39
40
void
DeclareExchange
(
const
Exchange& exchange, Exchange::
Type
type, engine::Deadline deadline)
override
{
41
DeclareExchange
(
exchange
,
type
,
{}
,
deadline
)
;
42
}
43
44
void
DeclareExchange
(
const
Exchange& exchange, engine::Deadline deadline)
override
{
45
DeclareExchange
(
exchange
,
Exchange::
Type
::kFanOut
,
{}
,
deadline
)
;
46
}
47
48
QueueDeclareResponse
DeclareQueue
(
49
const
Queue& queue,
50
utils
::Flags<Queue::
Flags
> flags,
51
const
std::unordered_map<std::string,
HeaderValue
>& headers,
52
engine::Deadline deadline
53
)
override
;
54
55
QueueDeclareResponse
56
DeclareQueue
(
const
Queue& queue,
utils
::Flags<Queue::
Flags
> flags, engine::Deadline deadline)
override
{
57
return
DeclareQueue
(
queue
,
flags
,
{}
,
deadline
)
;
58
}
59
60
QueueDeclareResponse
DeclareQueue
(
const
Queue& queue, engine::Deadline deadline)
override
{
61
return
DeclareQueue
(
queue
,
{}
,
deadline
)
;
62
}
63
64
void
BindQueue
(
65
const
Exchange& exchange,
66
const
Queue& queue,
67
const
std::string& routing_key,
68
engine::Deadline deadline
69
)
override
;
70
71
void
RemoveExchange
(
const
Exchange& exchange, engine::Deadline deadline)
override
;
72
73
void
RemoveQueue
(
const
Queue& queue, engine::Deadline deadline)
override
;
74
75
private
:
76
utils
::FastPimpl<ConnectionPtr, 32, 8> impl_;
77
};
78
79
}
// namespace urabbitmq
80
81
USERVER_NAMESPACE_END
userver
urabbitmq
admin_channel.hpp
Generated on
for userver by
Doxygen
1.17.0