6#include <unordered_map>
8#include <userver/concurrent/mpsc_queue.hpp>
9#include <userver/engine/deadline.hpp>
10#include <userver/engine/io/common.hpp>
11#include <userver/utils/fast_pimpl.hpp>
12#include <userver/utils/flags.hpp>
14USERVER_NAMESPACE_BEGIN
52 Poller(
const Poller&) =
delete;
53 Poller(Poller&&) =
delete;
81 explicit Poller(
const std::shared_ptr<USERVER_NAMESPACE::
concurrent::MpscQueue<
Event>>&);
85 void RemoveImpl(IoWatcher& watcher);
87 template <
typename EventSource>
90 USERVER_NAMESPACE::concurrent::MpscQueue<Event>::Consumer event_consumer_;
91 USERVER_NAMESPACE::concurrent::MpscQueue<Event>::Producer event_producer_;
92 utils::FastPimpl<std::unordered_map<
int, IoWatcher>, 56,
alignof(
double),
false> watchers_;