Skip to content

Commit 08e9446

Browse files
committed
wip: client finite state machine
1 parent d7e4b5a commit 08e9446

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/core/client.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,14 @@ class Client {
1414
Client(uint64_t id, int fd, const sockaddr_in& addr);
1515
~Client();
1616

17+
enum State {
18+
kParsingHeaders,
19+
kRoutingRequest,
20+
kSendingData,
21+
kReceivingData,
22+
kClosingConnection
23+
};
24+
1725
// setters
1826
void set_handler(Handler* handler) { handler_ = handler; }
1927
void set_nonblocking();
@@ -24,6 +32,7 @@ class Client {
2432
uint64_t id() const { return id_; }
2533
int fd() const { return fd_; }
2634
const sockaddr_in& addr() const { return addr_; }
35+
State state() const { return state_; }
2736
const HttpRequest& req() const { return req_; }
2837
HttpResponse& res() { return res_; }
2938
std::string& recv_buffer() { return recv_buffer_; }
@@ -39,6 +48,7 @@ class Client {
3948
uint64_t id_;
4049
int fd_;
4150
sockaddr_in addr_;
51+
State state_;
4252
HttpRequest req_;
4353
HttpResponse res_; // TODO: remove
4454
std::string recv_buffer_;

0 commit comments

Comments
 (0)