A data container for an HTTP response.
Definition HttpResponse.hpp:34
The central request dispatcher.
Definition Router.hpp:18
AEventHandler()
Definition AEventHandler.cpp:5
Reactor(int clientFd, int port, http::Router const &)
Definition Reactor.cpp:21
size_t bodyStart_
Start position of the body in requestBuffer_.
Definition Reactor.hpp:43
int clientFd_
Definition Reactor.hpp:35
void tryParseHeaders()
Attempts to parse headers from the request buffer.
Definition Reactor.cpp:82
ResponseState responseState_
The current state of response sending.
Definition Reactor.hpp:48
std::string requestBuffer_
Buffer for incoming request data.
Definition Reactor.hpp:42
http::Router const & router_
Definition Reactor.hpp:37
virtual int getHandle() const
Definition Reactor.cpp:48
bool sendResponseBuffer()
Sends the contents of the response buffer.
Definition Reactor.cpp:160
virtual void handleEvent(uint32_t events)
Definition Reactor.cpp:39
size_t contentLength_
Expected length of the request body.
Definition Reactor.hpp:44
void handleWrite()
Handles outgoing data on the socket.
Definition Reactor.cpp:118
void closeConnection()
Closes the connection and removes it from the dispatcher.
Definition Reactor.cpp:34
void generateResponse()
Processes a fully parsed request to generate a response.
Definition Reactor.cpp:100
~Reactor()
Definition Reactor.cpp:27
void resetForNewRequest()
Resets the reactor state for a new request (keep-alive).
Definition Reactor.cpp:186
int port_
Definition Reactor.hpp:36
size_t sentResponseBytes_
Number of bytes sent from responseBuffer_.
Definition Reactor.hpp:49
std::vector< char > responseBuffer_
Buffer for the outgoing response.
Definition Reactor.hpp:47
http::HttpResponse response_
The HTTP response being prepared/sent.
Definition Reactor.hpp:38
void handleRead()
Handles incoming data on the socket.
Definition Reactor.cpp:52
static const size_t IO_BUFFER_SIZE
Size for read/write chunks.
Definition Reactor.hpp:52
RequestState requestState_
The current state of request parsing.
Definition Reactor.hpp:41
Reactor & operator=(const Reactor &)
void clearResponseBuffer()
Clears the response buffer and resets sent byte count.
Definition Reactor.cpp:181
Definition Acceptor.hpp:8
RequestState
Definition Reactor.hpp:11
@ REQUEST_READY
Definition Reactor.hpp:11
@ READING_HEADERS
Definition Reactor.hpp:11
@ READING_BODY
Definition Reactor.hpp:11
ResponseState
Definition Reactor.hpp:12
@ NOT_READY
Definition Reactor.hpp:12
@ SENT
Definition Reactor.hpp:12
@ SENDING
Definition Reactor.hpp:12