RType
Server.hpp
Go to the documentation of this file.
1 /*
2 ** EPITECH PROJECT, 2023
3 ** RType
4 ** File description:
5 ** Server.hpp
6 */
7 
8 #pragma once
9 
10 #include "../../networking/server/ServerSocket.hpp"
11 #include "DLLoader.hpp"
12 #include "IGame.hpp"
13 #include <functional>
14 #include <iostream>
15 #include <map>
16 #include <memory>
17 #include <vector>
18 
19 class Server
20 {
21  public:
22 
23  /**
24  * @brief Construct a new Server:: Server object
25  * @param port
26  */
27  Server(int port);
28 
29  /**
30  * @brief Destroy the Server:: Server object
31  */
32  ~Server() = default;
33  void run();
34 
35  private:
36  std::unique_ptr<DLLoader> _gameLoader;
37  std::unique_ptr<IGame> _game;
38  std::shared_ptr<ServerSocket> _serverSocket;
39  std::shared_ptr<Packet> _packet;
40  std::tuple<std::unique_ptr<Packet>, int> _packetClientId;
41  std::unique_ptr<Packet> _packetHeartBeat;
42  timeval _receveidTime{};
43  timeval _currentTime{};
44  timeval _packetHeartBeatData{};
45 };