8#include <userver/clients/dns/resolver_fwd.hpp>
9#include <userver/utils/fast_pimpl.hpp>
10#include <userver/utils/statistics/writer.hpp>
12#include <userver/rabbitmq_fwd.hpp>
13#include <userver/urabbitmq/broker_interface.hpp>
14#include <userver/urabbitmq/client_settings.hpp>
16USERVER_NAMESPACE_BEGIN
36 static std::shared_ptr<
Client>
Create(clients::dns::Resolver& resolver,
const ClientSettings& settings);
41 const Exchange& exchange,
44 engine::Deadline deadline
47 void DeclareExchange(
const Exchange& exchange, Exchange::
Type type, engine::Deadline deadline)
override {
48 DeclareExchange(exchange, type, {}, deadline);
51 void DeclareExchange(
const Exchange& exchange, engine::Deadline deadline)
override {
52 DeclareExchange(exchange, Exchange::
Type::kFanOut, {}, deadline);
57 void DeclareQueue(
const Queue& queue, engine::Deadline deadline)
override { DeclareQueue(queue, {}, deadline); }
60 const Exchange& exchange,
62 const std::string& routing_key,
63 engine::Deadline deadline
66 void RemoveExchange(
const Exchange& exchange, engine::Deadline deadline)
override;
68 void RemoveQueue(
const Queue& queue, engine::Deadline deadline)
override;
76 const Exchange& exchange,
77 const std::string& routing_key,
78 const std::string& message,
80 engine::Deadline deadline
84 const Exchange& exchange,
85 const std::string& routing_key,
86 const std::string& message,
87 engine::Deadline deadline
92 std::string
Get(
const Queue& queue,
utils::Flags<Queue::
Flags> flags, engine::Deadline deadline)
override;
100 const Exchange& exchange,
101 const std::string& routing_key,
102 const std::string& message,
104 engine::Deadline deadline
108 const Exchange& exchange,
109 const std::string& routing_key,
110 const std::string& message,
111 engine::Deadline deadline
126 Client(clients::dns::Resolver& resolver,
const ClientSettings& settings);
130 utils::FastPimpl<ClientImpl, 296, 8> impl_;