/** * \file events/listener.hh * \brief ListenerEW declaration. */ #pragma once #include "events/events.hh" #include "socket/socket.hh" namespace paxos { /** * \class ListenerEW * \brief Workflow for listener socket. */ class ListenerEW : public EventWatcher { public: /** * \brief Create a ListenerEW from a listener socket. */ explicit ListenerEW(shared_socket socket); /** * \brief Start accepting connections on listener socket. */ void operator()() final; private: /** * \brief Listener socket. */ shared_socket sock_; /** * \brief Port on which the socket is listening. */ uint16_t port_; }; } // namespace paxos