ft_irc
1.0
読み取り中…
検索中…
一致する文字列を見つけられません
main.cpp
[詳解]
1
8
#include "
Server.hpp
"
9
#include <
csignal
>
10
#include <
cstdlib
>
11
#include <
iostream
>
12
13
volatile
bool
g_running
=
true
;
14
15
void
signalHandler
(
int
signum) {
16
(void)signum;
17
g_running
=
false
;
18
}
19
20
int
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
}
Server.hpp
Core IRC server implementation.
std::atoi
T atoi(T... args)
std::string
std::cerr
Server
Implements the core IRC server functionality as a Singleton.
Definition
Server.hpp:49
Server::getInstance
static Server * getInstance(int port=-1, const std::string &password="")
Gets the single instance of the Server (Singleton pattern).
Definition
Server.cpp:63
Server::run
void run()
Starts the IRC server, setting up the socket and entering the main event loop.
Definition
Server.cpp:101
std::cout
csignal
cstdlib
std::endl
T endl(T... args)
std::exception
std::invalid_argument
iostream
main
int main(int argc, char **argv)
Definition
main.cpp:20
g_running
volatile bool g_running
Definition
main.cpp:13
signalHandler
void signalHandler(int signum)
Definition
main.cpp:15
std::exception::what
T what(T... args)
src
main.cpp
構築:
1.9.8