8#include <userver/engine/deadline.hpp>
9#include <userver/utils/flags.hpp>
11#include <userver/urabbitmq/typedefs.hpp>
13USERVER_NAMESPACE_BEGIN
29 const Exchange& exchange,
31 utils::Flags<Exchange::
Flags> flags,
32 engine::Deadline deadline
36 virtual void DeclareExchange(
const Exchange& exchange, Exchange::
Type type, engine::Deadline deadline) = 0;
39 virtual void DeclareExchange(
const Exchange& exchange, engine::Deadline deadline) = 0;
46 virtual void DeclareQueue(
const Queue& queue, utils::Flags<Queue::
Flags> flags, engine::Deadline deadline) = 0;
49 virtual void DeclareQueue(
const Queue& queue, engine::Deadline deadline) = 0;
58 const Exchange& exchange,
60 const std::string& routing_key,
61 engine::Deadline deadline
68 virtual void RemoveExchange(
const Exchange& exchange, engine::Deadline deadline) = 0;
74 virtual void RemoveQueue(
const Queue& queue, engine::Deadline deadline) = 0;
100 const Exchange& exchange,
101 const std::string& routing_key,
102 const std::string& message,
104 engine::Deadline deadline
109 const Exchange& exchange,
110 const std::string& routing_key,
111 const std::string& message,
112 engine::Deadline deadline
132 virtual std::string
Get(
const Queue& queue, utils::Flags<Queue::
Flags> flags, engine::Deadline deadline) = 0;
135 ~IChannelInterface();
156 const Exchange& exchange,
157 const std::string& routing_key,
158 const std::string& message,
160 engine::Deadline deadline
165 const Exchange& exchange,
166 const std::string& routing_key,
167 const std::string& message,
168 engine::Deadline deadline
172 ~IReliableChannelInterface();