GameServer.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef GAMESERVER_H
  2. #define GAMESERVER_H
  3. #include <chrono>
  4. #include <vector>
  5. #include <mutex>
  6. #include "common/utils/Types.h"
  7. #include "server/network/IServerListener.h"
  8. #include "server/commands/CommandManager.h"
  9. #include "commands/ServerCommands.h"
  10. class GameServer : public IServerListener
  11. {
  12. public:
  13. GameServer();
  14. void start(uint16_t port, uint16_t maxClients);
  15. void onFullServerClientConnect(int socket) const override;
  16. void onClientConnect(int socket) const override;
  17. void onClientPackage(int socket, Stream& in) const override;
  18. void onClientDisconnect(int socket) const override;
  19. private:
  20. void readFromConsole();
  21. void handleCommandQueue();
  22. const std::chrono::nanoseconds NANOS_PER_TICK = std::chrono::nanoseconds(50000000);
  23. const std::chrono::nanoseconds MIN_NANO_SLEEP = std::chrono::nanoseconds(300000);
  24. void tick();
  25. CommandManager commandManager;
  26. ServerCommands serverCommands;
  27. std::vector<std::string> commandQueue;
  28. std::mutex comandQueueMutex;
  29. };
  30. #endif