birdbadge/src/server.h

32 lines
655 B
C
Raw Permalink Normal View History

2023-04-13 22:34:06 +00:00
#pragma once
#include <iostream>
#include <string>
#include <optional>
#include <string_view>
#include <vector>
2023-04-13 22:34:06 +00:00
#include <fcgiapp.h>
#include <fcgio.h>
2023-04-18 16:16:36 +00:00
#include "response/response.h"
2023-04-13 22:34:06 +00:00
class Server {
public:
Server();
~Server();
void handleRequest(FCGX_Request& request);
private:
void router(const std::vector<std::string_view>& path);
2023-04-13 22:34:06 +00:00
void printEnv(std::ostream& out, FCGX_Request& request);
void writeHeader(std::ostream& out);
void accountRequest(const FCGX_Request& request);
std::string_view getPath(const FCGX_Request& request);
2023-04-13 22:34:06 +00:00
private:
uint64_t requestCount;
std::optional<std::string> serverName;
2023-04-13 22:34:06 +00:00
};