Webserv
Loading...
Searching...
No Matches
Server.hpp
Go to the documentation of this file.
1#pragma once
2
4#include "http/MimeTypes.hpp"
5#include "http/Router.hpp"
8#include <signal.h>
9#include <vector>
10
11namespace core {
12
60class Server {
61public:
63 ~Server();
64
65 void start();
66 void stop();
67 void handleSignal(int sig);
68 bool getisRunning() const;
69
70 static void signalHandler(int sig);
71
72private:
73 volatile sig_atomic_t shutdownRequested_;
76 std::vector<network::Acceptor *> acceptors_;
77
82
83 void setupAcceptors();
85 void cleanup();
86 void gracefulShutdown();
87
88 Server(const Server &);
90};
91
92} // namespace core
A strongly-typed data container for a server block's configuration.
Definition ServerConfig.hpp:18
bool getisRunning() const
Definition Server.cpp:106
Server & operator=(const Server &)
config::ServerConfig const & config_
Definition Server.hpp:78
http::Router router_
Definition Server.hpp:81
Server(const Server &)
std::vector< network::Acceptor * > acceptors_
Definition Server.hpp:76
~Server()
Definition Server.cpp:35
void setupAcceptors()
Definition Server.cpp:110
static Server * instance_
Definition Server.hpp:75
void handleSignal(int sig)
network::InitiationDispatcher & dispatcher_
Definition Server.hpp:79
void gracefulShutdown()
Definition Server.cpp:96
static void signalHandler(int sig)
Definition Server.cpp:61
http::MimeTypes mimeTypes_
Definition Server.hpp:80
void stop()
Definition Server.cpp:90
void setupSignalHandlers()
Definition Server.cpp:41
volatile sig_atomic_t shutdownRequested_
Definition Server.hpp:73
bool isRunning_
Definition Server.hpp:74
Server(config::ServerConfig const &)
Definition Server.cpp:24
void cleanup()
Definition Server.cpp:130
void start()
Definition Server.cpp:69
Definition MimeTypes.hpp:11
The central request dispatcher.
Definition Router.hpp:18
Centralised event demultiplexer and dispatcher for managing I/O events.
Definition InitiationDispatcher.hpp:18
Definition Server.hpp:11