paxos/src/events/listener.hh

40 lines
801 B
C++

/**
* \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