Testing threads with http server

multi_plaform
ambigipathyv ago%!(EXTRA string=1 year)
parent 291c92cc41
commit 27290c54de
  1. 24
      bakanet/src/bakanet/http/http_server.cpp
  2. 8
      bakanet/src/bakanet/http/http_server.h

@ -10,23 +10,23 @@ namespace Bk::Net {
bool running = socket->init() && socket->start(5);
while (running)
{
Connection conn = socket->ack();
if(conn >= 0)
{
route_request(conn, recv_request(conn));
closesocket(conn);
}
auto conn = socket->ack();
threads.emplace_back(std::thread([&](Socket& conn)
{
log("Caca")
route_request(conn, recv_request(conn));
}, std::ref(*conn)));
}
}
HttpRequest HttpServer::recv_request(Connection conn)
HttpRequest HttpServer::recv_request(Socket& conn)
{
Packet req;
bool reading = true;
while(reading)
{
auto data = socket->obtain(conn, 1024);
auto data = conn.obtain(1024);
int size = data.size();
log("SIZE " << data.size())
req.append_data(data);
@ -37,15 +37,15 @@ namespace Bk::Net {
return HttpRequest("", "", "");
}
void HttpServer::send_reponse(Connection conn, HttpReponse res)
void HttpServer::send_reponse(Socket& conn, HttpReponse res)
{
Packet res_packet;
std::string str_res = res.to_string();
res_packet.push<char>(str_res.c_str(), str_res.length());
socket->emit(conn, res_packet.payload);
conn.emit(res_packet.payload);
}
void HttpServer::route_request(Connection conn, HttpRequest req)
void HttpServer::route_request(Socket& conn, HttpRequest req)
{
log("to string")
log(req.to_string())

@ -9,6 +9,7 @@
namespace Bk::Net {
class HttpServer
{
using ThreadPool = std::vector<std::thread>;
using RequestHandler = std::function<HttpReponse(HttpRequest& req)>;
public:
HttpServer(IpAddress ip, int port);
@ -18,9 +19,10 @@ namespace Bk::Net {
private:
std::unique_ptr<Socket> socket;
std::unordered_map<std::string, RequestHandler> req_mapper;
ThreadPool threads;
HttpRequest recv_request(Connection conn);
void send_reponse(Connection conn, HttpReponse res);
void route_request(Connection conn, HttpRequest req);
HttpRequest recv_request(Socket& conn);
void send_reponse(Socket& conn, HttpReponse res);
void route_request(Socket& conn, HttpRequest req);
};
}
Loading…
Cancel
Save