ft_irc 1.0
読み取り中…
検索中…
一致する文字列を見つけられません
main.cpp
[詳解]
1
8#include "Server.hpp"
9#include <csignal>
10#include <cstdlib>
11#include <iostream>
12
13volatile bool g_running = true;
14
15void signalHandler(int signum) {
16 (void)signum;
17 g_running = false;
18}
19
20int main(int argc, char **argv) {
21 if (argc != 3) {
22 std::cerr << "Usage: " << argv[0] << " <port> <password>" << std::endl;
23 return 1;
24 }
25
26 signal(SIGINT, signalHandler);
27 signal(SIGTERM, signalHandler);
28
29 try {
30 int port = std::atoi(argv[1]);
31 if (port <= 0 || port > 65535) {
32 throw std::invalid_argument("Invalid port number");
33 }
34 std::string password = argv[2];
35
36 Server *server = Server::getInstance(port, password);
37 server->run();
38 delete server; // Clean up the singleton instance
39 } catch (const std::exception &e) {
40 std::cerr << "Error: " << e.what() << std::endl;
41 return 1;
42 }
43
44 std::cout << "Server shutting down." << std::endl;
45 return 0;
46}
Core IRC server implementation.
T atoi(T... args)
Implements the core IRC server functionality as a Singleton.
Definition Server.hpp:49
static Server * getInstance(int port=-1, const std::string &password="")
Gets the single instance of the Server (Singleton pattern).
Definition Server.cpp:63
void run()
Starts the IRC server, setting up the socket and entering the main event loop.
Definition Server.cpp:101
T endl(T... args)
int main(int argc, char **argv)
Definition main.cpp:20
volatile bool g_running
Definition main.cpp:13
void signalHandler(int signum)
Definition main.cpp:15
T what(T... args)