12345678910111213141516171819202122232425262728293031323334353637383940 |
- #ifndef GAMESERVER_H
- #define GAMESERVER_H
- #include <chrono>
- #include <vector>
- #include <mutex>
- #include "common/utils/Types.h"
- #include "server/network/IServerListener.h"
- #include "server/commands/CommandManager.h"
- #include "commands/ServerCommands.h"
- class GameServer : public IServerListener
- {
- public:
- GameServer();
-
- void start(uint16_t port, uint16_t maxClients);
-
- void onFullServerClientConnect(int socket) const override;
- void onClientConnect(int socket) const override;
- void onClientPackage(int socket, Stream& in) const override;
- void onClientDisconnect(int socket) const override;
-
- private:
- void readFromConsole();
- void handleCommandQueue();
- const std::chrono::nanoseconds NANOS_PER_TICK = std::chrono::nanoseconds(50000000);
- const std::chrono::nanoseconds MIN_NANO_SLEEP = std::chrono::nanoseconds(300000);
- void tick();
-
- CommandManager commandManager;
- ServerCommands serverCommands;
-
- std::vector<std::string> commandQueue;
- std::mutex comandQueueMutex;
- };
- #endif
|