X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fserver%2FServer.hpp;fp=src%2Fserver%2FServer.hpp;h=8bbb778a91b358a51cbb3d836cf64423fd4952a5;hb=8ae45b6555d55f301f83daf8c1337d332d8305ab;hp=0000000000000000000000000000000000000000;hpb=7fd76e64de47f564117b9e6f73f1482d93842108;p=blank.git diff --git a/src/server/Server.hpp b/src/server/Server.hpp new file mode 100644 index 0000000..8bbb778 --- /dev/null +++ b/src/server/Server.hpp @@ -0,0 +1,53 @@ +#ifndef BLANK_SERVER_SERVER_HPP +#define BLANK_SERVER_SERVER_HPP + +#include +#include + + +namespace blank { + +class World; + +namespace server { + +class ClientConnection; + +class Server { + +public: + struct Config { + Uint16 port = 12354; + }; + +public: + Server(const Config &, World &); + ~Server(); + + void Handle(); + + void Update(int dt); + + UDPsocket &GetSocket() noexcept { return serv_sock; } + UDPpacket &GetPacket() noexcept { return serv_pack; } + + World &GetWorld() noexcept { return world; } + +private: + void HandlePacket(const UDPpacket &); + + ClientConnection &GetClient(const IPaddress &); + +private: + UDPsocket serv_sock; + UDPpacket serv_pack; + std::list clients; + + World &world; + +}; + +} +} + +#endif