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,
37 const ClientSettings& settings);
42 utils::Flags<Exchange::
Flags> flags,
43 engine::Deadline deadline)
override;
46 engine::Deadline deadline)
override {
47 DeclareExchange(exchange, type, {}, deadline);
51 engine::Deadline deadline)
override {
52 DeclareExchange(exchange, Exchange::
Type::kFanOut, {}, deadline);
56 engine::Deadline deadline)
override;
58 void DeclareQueue(
const Queue& queue, engine::Deadline deadline)
override {
59 DeclareQueue(queue, {}, deadline);
62 void BindQueue(
const Exchange& exchange,
const Queue& queue,
63 const std::string& routing_key,
64 engine::Deadline deadline)
override;
67 engine::Deadline deadline)
override;
69 void RemoveQueue(
const Queue& queue, engine::Deadline deadline)
override;
76 void Publish(
const Exchange& exchange,
const std::string& routing_key,
78 engine::Deadline deadline)
override;
80 void Publish(
const Exchange& exchange,
const std::string& routing_key,
81 const std::string& message, engine::Deadline deadline)
override {
85 std::string
Get(
const Queue& queue, utils::Flags<Queue::
Flags> flags,
86 engine::Deadline deadline)
override;
95 engine::Deadline deadline)
override;
98 const std::string& message,
99 engine::Deadline deadline)
override {
114 Client(clients::dns::Resolver& resolver,
const ClientSettings& settings);
118 utils::FastPimpl<ClientImpl, 232, 8> impl_;