#ifndef SERVER_H #define SERVER_H #include "common/enet/enet.h" #include "gaming-core/utils/Types.h" #include "server/GameServer.h" #include "gaming-core/utils/Array.h" #include "server/network/Client.h" class Server final { public: typedef uint16 Port; Server(Port port); ~Server(); Server(const Server&) = delete; Server& operator=(const Server&) = delete; Server(Server&&) = delete; Server& operator=(Server&&) = delete; bool hasError() const; void consumeEvents(GameServer& gameServer); private: void onConnect(ENetEvent& event, GameServer& gameServer); void onPackage(ENetEvent& event, GameServer& gameServer); void onDisconnect(ENetEvent& event, GameServer& gameServer); int getFreeIndex() const; ENetHost* server; Array clients; }; #endif