1+ #include " Server.hpp"
2+
13#include < iostream>
24#include < set>
35#include < vector>
1315
1416#include < simple_lib/common.h>
1517
16- #include " Server.hpp"
17- #include " Session.hpp"
18+ #include " SessionServer.hpp"
1819#include " SessionUdp.hpp"
1920#include " SessionTcp.hpp"
2021
@@ -46,7 +47,7 @@ namespace simpleApp
4647 return modeEpoll (epollfd, EPOLL_CTL_DEL, fd, 0 , 0 );
4748 }
4849
49- inline socket_t createTcpSocket (uint16_t port, int & err)
50+ inline socket_t createTcpSocket (int & err)
5051 {
5152 socket_t newSocket = socket (AF_INET, SOCK_STREAM, 0 );
5253 if (newSocket == -1 )
@@ -72,7 +73,7 @@ namespace simpleApp
7273 sockaddr_in serverTcpAddress;
7374 bzero (&serverTcpAddress, sizeof (serverTcpAddress));
7475 serverTcpAddress.sin_addr .s_addr = htonl (INADDR_ANY);
75- serverTcpAddress.sin_port = htons (port );
76+ serverTcpAddress.sin_port = htons (PUBLIC_PORT );
7677 serverTcpAddress.sin_family = AF_INET;
7778
7879 if (bind (newSocket, (sockaddr *)&serverTcpAddress, sizeof (serverTcpAddress)) == -1 )
@@ -94,7 +95,7 @@ namespace simpleApp
9495 return newSocket;
9596 }
9697
97- inline socket_t createUdpSocket (uint16_t & port, int & err)
98+ inline socket_t createUdpSocket (int & err)
9899 {
99100 socket_t newSocket = socket (AF_INET, SOCK_DGRAM, 0 );
100101
@@ -121,7 +122,7 @@ namespace simpleApp
121122 sockaddr_in serverUdpAddress;
122123 bzero (&serverUdpAddress, sizeof (serverUdpAddress));
123124 serverUdpAddress.sin_addr .s_addr = htonl (INADDR_ANY);
124- serverUdpAddress.sin_port = htons (port );
125+ serverUdpAddress.sin_port = htons (PUBLIC_PORT );
125126 serverUdpAddress.sin_family = AF_INET;
126127
127128 if (bind (newSocket, (sockaddr *)&serverUdpAddress, sizeof (serverUdpAddress)) == -1 )
@@ -146,7 +147,7 @@ namespace simpleApp
146147 close (this ->stopEventFd );
147148 }
148149
149- int Server::serverLoop (uint16_t port )
150+ int Server::serverLoop ()
150151 {
151152 if (this ->stopEventFd == -1 )
152153 {
@@ -157,12 +158,12 @@ namespace simpleApp
157158 std::cout << " Starting server" << std::endl << std::flush;
158159
159160 int err;
160- socket_t masterTcpSocket = createTcpSocket (port, err);
161+ socket_t masterTcpSocket = createTcpSocket (err);
161162
162163 if (masterTcpSocket == -1 )
163164 std::cout << " TCP master socket initialization failed with code " << err << std::endl << std::flush;
164165
165- socket_t masterUdpSocket = createUdpSocket (port, err);
166+ socket_t masterUdpSocket = createUdpSocket (err);
166167
167168 if (masterUdpSocket == -1 )
168169 std::cout << " UDP master socket initialization failed with code " << err << std::endl << std::flush;
@@ -224,24 +225,24 @@ namespace simpleApp
224225 const size_t MAX_EVENTS_BUFFER = 10000 ;
225226 epoll_event * events = static_cast <epoll_event *>(calloc (MAX_EVENTS_BUFFER, sizeof (epoll_event)));
226227
227- std::set<Session *> slaveSocketsMap = std::set<Session *>();
228+ std::set<SessionServer *> slaveSocketsMap = std::set<SessionServer *>();
228229
229230 bool stopEventHappened = false ;
230231
231- auto initSession = [&slaveSocketsMap, &masterTcpSocket, &masterUdpSocket, &epollfd, port ](epoll_event& event)
232+ auto initSession = [&slaveSocketsMap, &masterTcpSocket, &masterUdpSocket, &epollfd](epoll_event& event)
232233 {
233- Session * clientSession;
234+ SessionServer * clientSession;
234235 session_result result;
235236
236237 if (event.data .ptr == &masterTcpSocket)
237238 {
238239 clientSession = new SessionTcp (epollfd);
239- result = clientSession->init (masterTcpSocket, port );
240+ result = clientSession->init (masterTcpSocket);
240241 }
241242 else if (event.data .ptr == &masterUdpSocket)
242243 {
243244 clientSession = new SessionUdp (epollfd);
244- result = clientSession->init (masterUdpSocket, port );
245+ result = clientSession->init (masterUdpSocket);
245246 }
246247 else
247248 return false ;
@@ -310,7 +311,7 @@ namespace simpleApp
310311 };
311312 while (!stopEventHappened)
312313 {
313- std::set<Session *> slavesForRemove = std::set<Session *>();
314+ std::set<SessionServer *> slavesForRemove = std::set<SessionServer *>();
314315 int N = epoll_wait (epollfd, events, MAX_EVENTS_BUFFER, -1 );
315316 for (size_t i = 0 ; static_cast <int >(i) < N; i++)
316317 {
@@ -344,7 +345,7 @@ namespace simpleApp
344345 }
345346 else
346347 {
347- auto clientSession = reinterpret_cast <Session *>(events[i].data .ptr );
348+ auto clientSession = reinterpret_cast <SessionServer *>(events[i].data .ptr );
348349 if (slaveSocketsMap.find (clientSession) == slaveSocketsMap.end ())
349350 {
350351 std::cout << " Unknown event happened" << std::endl;
0 commit comments