36 lines
715 B
C++
36 lines
715 B
C++
#pragma once
|
|
|
|
#include <iostream>
|
|
#include <string>
|
|
#include <sstream>
|
|
#include <optional>
|
|
#include <string_view>
|
|
#include <vector>
|
|
#include <memory>
|
|
|
|
#include <fcgiapp.h>
|
|
#include <fcgio.h>
|
|
#include <stdint.h>
|
|
|
|
#include "request/request.h"
|
|
#include "response/response.h"
|
|
|
|
class Server {
|
|
public:
|
|
Server();
|
|
~Server();
|
|
|
|
void run(int socketDescriptor);
|
|
|
|
private:
|
|
void handleRequest(std::unique_ptr<Request> request);
|
|
void router(const std::vector<std::string_view>& path);
|
|
void printEnv(std::ostream& out, FCGX_Request& request);
|
|
std::string_view getPath(const FCGX_Request& request);
|
|
|
|
private:
|
|
bool terminating;
|
|
uint64_t requestCount;
|
|
std::optional<std::string> serverName;
|
|
};
|