40 lines
800 B
C++
40 lines
800 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 http
|